防火墙规则应用:iptables命令

这篇文章只是记录常用的iptables命令示例(基于CentOS/EulerOS测试),不深入解释该命令。

查询现有防火墙规则

iptables -nvL INPUT --line-number

结果示例:

# 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

其中第一列为规则的序号(后面删除的时候可以用到)。
一般配置防火墙规则的套路都是:前面几条规则是放行哪几个条件,最后几条规则是拒绝哪一批条件。规则序号小的,优先级高。

向现有防火墙规则中插入一条规则

例如:防火墙对外开放8080端口,以下命令立即生效:

iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

向现有防火墙规则中追加一条规则

例如:防火墙对外开放8080端口,以下命令立即生效:

iptables -A INPUT -p tcp --dport 1888 -j ACCEPT

深坑警告:
iptables -Iiptables -A都是用于添加规则,区别在哪呢?
iptables -I是将规则直接插入到现有规则的最上面,也就是规则的序号为1,优先级最高。
iptables -A是将规则追加到现有规则的最后面,也就是规则的序号最大,优先级最低。

删除防火墙规则

例如:删除前面查询到的序号为5的规则

iptables -D INPUT 5

防火墙配置保存

为了固化防火墙规则(防止重启丢失规则),可通过以下方式保存:

service iptables save

注意:
上述命令可能会提示The service command supports only basic LSB actions (start***错误,可以通过安装iptables-services解决:
systemctl stop firewalld关闭防火墙
yum install iptables-services 安装或更新服务
systemctl enable iptables 启动iptables
systemctl start iptables 打开iptables

如果是CentOS,也可以通过如下方式添加固化规则:

firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload

重启/关闭防火墙

重启防火墙

systemctl restart firewalld

关闭防火墙:

systemctl stop firewalld

你可能感兴趣的:(防火墙规则应用:iptables命令)