之前在iptables配置时都是直接去修改配置文件,然后重启,这次在命令行添加放行端口发现端口还不通。
# 查看当前iptables netfilter表的INPUT链规则
[root@HKSRV2426 ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5555 state NEW ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
# 比如放行21端口
[root@HKSRV2426 ~]# iptables -A INPUT -p tcp --dport 21 -j ACCEPT
这么添加还是无法访问21端口。
# 查看规则其实是在第8条规则下面新增的。
[root@HKSRV2426 ~]# iptables -L -n --line-number Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 state NEW 2 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 3 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5555 state NEW 4 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 5 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 6 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 7 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 8 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited 9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:21
第8条规则已经REJECT拒绝包了,下面的规则就不需要再继续匹配了。
所以防火墙规则一般是允许的放在拒绝上面,最后为默认规则才是拒绝或者丢弃。
# 可以通过插入规则解决,比如在规则3上面插入一条
[root@HKSRV2426 ~]# iptables -I INPUT 3 -p tcp --dport 3306 -j ACCEPT
分析原因:
# 查看防火墙配置文件
[root@HKSRV2426 ~]# vi /etc/sysconfig/iptables 略· -A INPUT -j REJECT --reject-with icmp-host-prohibited
上面这条规则就是上面查询到的第8条规则。
REJECT和DROP基本一样,区别在于它除了阻塞包之外, 还向发送者返回错误信息。
--reject-with # 设置返回错误信息种类 icmp-host-prohibited # 种类
全部的种类可以通过下面命令查到。
[root@HKSRV2426 ~]# iptables -j REJECT --help Valid reject types: icmp-net-unreachable ICMP network unreachable net-unreach alias icmp-host-unreachable ICMP host unreachable host-unreach alias icmp-proto-unreachable ICMP protocol unreachable proto-unreach alias icmp-port-unreachable ICMP port unreachable (default) port-unreach alias icmp-net-prohibited ICMP network prohibited net-prohib alias icmp-host-prohibited ICMP host prohibited host-prohib alias tcp-reset TCP RST packet tcp-rst alias icmp-admin-prohibited ICMP administratively prohibited (*) admin-prohib alias
原创文章,转载请注明。本文链接地址: https://www.rootop.org/pages/4667.html