首先添加規則有兩個參數:-A和-I,其中-A是添加到規則的末尾;-I能夠插入到指定位置,沒有指定位置的話默認插入到規則的首部,因爲匹配規則是從上往下,依次查找的,可能出現配置的規則衝突致使後續的規則不起效ubuntu
保存iptables規則vim
sudo iptables-save
保存ipv6 的iptables規則服務器
sudo ip6tables-save
查看iptables規則ssh
sudo iptables -L
查看iptables規則,以數字形式tcp
sudo iptables -L -n
查看iptables規則的序號,用於刪除規則參考工具
sudo iptables -L -n --line-numbers
清除全部iptables預設表filter裏的全部規則oop
sudo iptabels -F
清除預設表filter中使用者自定鏈中的規則post
sudo iptables -X
清除單條iptables規則.net
sudo iptables -D INPUT(鏈) 3(規則對應的序號)
修改單條iptables規則,使用 -R,修改INPUT鏈序號爲3的規則爲容許,第4條規則爲拒絕,丟棄rest
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詳解