這篇文章只是記錄常用的iptables命令示例(基于CentOS/EulerOS測(cè)試),不深入解釋該命令歉井。
查詢現(xiàn)有防火墻規(guī)則
iptables -nvL INPUT --line-number
結(jié)果示例:
# iptables -nvL INPUT --line-number
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
num pkts bytes target prot opt in out source destination
1 337K 340M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED
2 781 53052 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
3 15366 1896K INPUT_direct all -- * * 0.0.0.0/0 0.0.0.0/0
4 15366 1896K INPUT_ZONES_SOURCE all -- * * 0.0.0.0/0 0.0.0.0/0
5 15366 1896K INPUT_ZONES all -- * * 0.0.0.0/0 0.0.0.0/0
6 59 2360 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate INVALID
7 14801 1865K REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
其中第一列為規(guī)則的序號(hào)(后面刪除的時(shí)候可以用到)柿祈。
一般配置防火墻規(guī)則的套路都是:前面幾條規(guī)則是放行哪幾個(gè)條件,最后幾條規(guī)則是拒絕哪一批條件。規(guī)則序號(hào)小的躏嚎,優(yōu)先級(jí)高蜜自。
向現(xiàn)有防火墻規(guī)則中插入一條規(guī)則
例如:防火墻對(duì)外開放8080端口,以下命令立即生效:
iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
向現(xiàn)有防火墻規(guī)則中追加一條規(guī)則
例如:防火墻對(duì)外開放8080端口卢佣,以下命令立即生效:
iptables -A INPUT -p tcp --dport 1888 -j ACCEPT
深坑警告:
iptables -I
和iptables -A
都是用于添加規(guī)則重荠,區(qū)別在哪呢?
iptables -I
是將規(guī)則直接插入到現(xiàn)有規(guī)則的最上面虚茶,也就是規(guī)則的序號(hào)為1戈鲁,優(yōu)先級(jí)最高。
iptables -A
是將規(guī)則追加到現(xiàn)有規(guī)則的最后面嘹叫,也就是規(guī)則的序號(hào)最大婆殿,優(yōu)先級(jí)最低。
刪除防火墻規(guī)則
例如:刪除前面查詢到的序號(hào)為5的規(guī)則
iptables -D INPUT 5
防火墻配置保存
為了固化防火墻規(guī)則(防止重啟丟失規(guī)則)罩扇,可通過(guò)以下方式保存:
service iptables save
注意:
上述命令可能會(huì)提示The service command supports only basic LSB actions (start***
錯(cuò)誤婆芦,可以通過(guò)安裝iptables-services解決:
systemctl stop firewalld
關(guān)閉防火墻
yum install iptables-services
安裝或更新服務(wù)
systemctl enable iptables
啟動(dòng)iptables
systemctl start iptables
打開iptables
如果是CentOS,也可以通過(guò)如下方式添加固化規(guī)則:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
重啟/關(guān)閉防火墻
重啟防火墻
systemctl restart firewalld
關(guān)閉防火墻:
systemctl stop firewalld