Ubuntu下Iptables的簡單運用,開放/關閉端口,禁止/允許IP或IP段訪問...


首先添加規則有兩個參數:-A和-I,其中-A是添加到規則的末尾;-I可以插入到指定位置,沒有指定位置的話默認插入到規則的首部,由於匹配規則是從上往下,依次查找的,可能出現配置的規則沖突導致后續的規則不起效

保存iptables規則

sudo iptables-save

保存ipv6 的iptables規則

sudo ip6tables-save

查看iptables規則

sudo iptables -L

查看iptables規則,以數字形式

sudo iptables -L -n

查看iptables規則的序號,用於刪除規則參考

sudo iptables -L -n --line-numbers

清除所有iptables預設表filter里的所有規則

sudo iptabels -F

清除預設表filter中使用者自定鏈中的規則

sudo iptables -X

清除單條iptables規則

sudo iptables -D INPUT(鏈) 3(規則對應的序號)

修改單條iptables規則,使用 -R,修改INPUT鏈序號為3的規則為允許,第4條規則為拒絕,丟棄

sudo iptables -R INPUT 3 -j ACCEPT
sudo iptables -R INPUT 4 -j DROP

允許已經建立的連接發送和接收數據,以免設置鏈為DROP時遠程ssh斷開

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

保證VPS可以運行的時候,可以為loopback網卡添加運行規則,插到第一行

sudo iptables -I INPUT 1 -i lo -j ACCEPT

允許某段IP訪問本機的所有類型的所有端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p all -j ACCEPT
sudo iptables -I INPUT -s 192.168.0.0/16 -p all -j ACCEPT

允許本機127.0.0.1訪問自身所有端口

sudo iptables -I INPUT -s 127.0.0.1 -p all -j ACCEPT

允許某段IP訪問本機的TCP 3306端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p tcp --dport 3306 -j ACCEPT

允許某段IP訪問本機的某段TCP端口

sudo iptables -I INPUT -s 192.168.2.0/24 -p tcp --dport 3306:65525 -j ACCEPT

向所有IP開放ssh的遠程連接,這里是已經更改了的19515端口,默認為22端口

sudo iptables -A INPUT -p tcp --dport 19515 -j ACCEPT

默認INPUT OUTPUT FORWORD 鏈都是全部接受,需要改為拒絕
確保ssh遠程連接端口已經添加進 IPUNT 允許規則中,否則執行以下命令將可能會斷開遠程

sudo iptables -A INPUT -p tcp --dport 19515 -j ACCEPT #這里ssh端口為19515
sudo iptables -P INPUT DROP

可選項,需保證SSH端口已經添加各鏈的允許規則,否則會斷開SSH連接並無法遠程連接

sudo iptables -P OUTPUT DROP
sudo iptables -P FORWORD DROP

iptables規則配置后,無法訪問外網,無法接收返回的數據,進行以下配置,並保證OUTPUT狀態為ACCEPT,會使iptables允許由服務器本身請求的數據通過

sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables 的持久化,由於重啟ubuntu會導致iptables規則消失,需要持久化
1.安裝iptables-persistent工具幫助我們持久化

sudo apt-get update
sudo apt-get install iptables-persistent -y

執行命令持久化

sudo netfilter-persistent save
sudo netfilter-persistent reload

2.將iptables規則存入文件,隨網卡狀態進行加載,保存
將iptables保存的規則保存入當前用戶的文件

sudo iptables-save > /home/user/iptables.rules

在/etc/network/interfaces 網卡配置文件里加入相應內容

vim /etc/network/interfaces
添加內容
pre-up iptables-restore < /home/user/iptables.rules
post-down iptables-save > /home/user/iptables.rules

用到的參數解釋:
pre-up: 網卡啟用前的動作
up: 啟用時候的動作
post-up: 啟用后的動作
pre-down: 關閉前的動作
down: 關閉時動作
post-down: 關閉后動作

iptables的關閉,使用清除規則來實現

sudo iptables-save > /home/user/iptables.rules
sudo iptables -X  清除默認filter表里的自定義規則
sudo iptables -t nat -F   清除nat表里的規則
sudo iptables -t nat -X
sudo iptables -t mangle -F  清除nat表里的規則
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT   將INPUT鏈默認更改為全部接受
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P  FORWORD ACCEPT

如果想了解深入一些,我個人覺得這個博主寫的挺不錯的朱雙印的個人博客-Iptables詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM