Linux IPTABLES 防火牆規則備忘錄
以下資料參考自 鳥哥的 Linux 私房菜。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
iptables [-AI 鏈名] [-io 網路介面] [-p 協定] [-s 來源IP/網域] [-d 目標IP/網域] -j [ACCEPT|DROP|REJECT|LOG] 選項與參數: -AI 鏈名:針對某的鏈進行規則的 "插入" 或 "累加" -A :新增加一條規則,該規則增加在原本規則的最後面。例如原本已經有四條規則, 使用 -A 就可以加上第五條規則! -I :插入一條規則。如果沒有指定此規則的順序,預設是插入變成第一條規則。 例如原本有四條規則,使用 -I 則該規則變成第一條,而原本四條變成 2~5 號 鏈 :有 INPUT, OUTPUT, FORWARD 等,此鏈名稱又與 -io 有關,請看底下。 -io 網路介面:設定封包進出的介面規範 -i :封包所進入的那個網路介面,例如 eth0, lo 等介面。需與 INPUT 鏈配合; -o :封包所傳出的那個網路介面,需與 OUTPUT 鏈配合; -p 協定:設定此規則適用於哪種封包格式 主要的封包格式有: tcp, udp, icmp 及 all 。 -s 來源 IP/網域:設定此規則之封包的來源項目,可指定單純的 IP 或包括網域,例如: IP :192.168.0.100 網域:192.168.0.0/24, 192.168.0.0/255.255.255.0 均可。 若規範為『不許』時,則加上 ! 即可,例如: -s ! 192.168.100.0/24 表示不許 192.168.100.0/24 之封包來源; -d 目標 IP/網域:同 -s ,只不過這裡指的是目標的 IP 或網域。 -j :後面接動作,主要的動作有接受(ACCEPT)、丟棄(DROP)、拒絕(REJECT)及記錄(LOG) |
–[ 常用指令應用速記 ]–
* 查詢防火牆目前設定
1 |
sudo service iptables status |
* 重設iptables
1 2 3 4 5 |
# 清除預設表filter中的規則 iptables -F # 清除預設表filter中的自訂規則 iptables -X |
* 封鎖或解除封鎖IP
1 2 3 4 5 6 7 8 |
# 封鎖 [IP Address] 所有的 ports sudo iptables -A INPUT -s [IP Address] -j DROP # 封鎖 [IP Address] 的 TCP 80 port sudo iptables -A INPUT -s [IP Address] -p tcp --destination-port 80 -j DROP # 解除 [IP Address] 的封鎖 # sudo iptables -D INPUT -s [IP Address] -j DROP |
* 將目前的防火牆設定備份為自訂檔案 /etc/iptables-custom
1 |
sudo iptables-save >/etc/iptables-custom |
* 使用自訂檔案 /etc/iptables-custom 覆蓋防火牆設定
1 |
sudo iptables-restore /etc/iptables-custom |
* 套用防火牆設定,保存並重新啟動
1 2 3 |
sudo chkconfig iptables on sudo service iptables save sudo service iptables restart |
* 將iptables設定寫入rc.local,下次重啟時將自動載入 /etc/iptables-custom
1 |
echo '/sbin/iptables-restore /etc/iptables-custom' >>/etc/rc.d/rc.local |