centos下配置防火墙端口失败

问题:将规则添加到防火墙中,总是端口无法开启

(1)修改文件

首先vim /etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp --dport 5001:5009 -j ACCEPT(允许5001到5009的端口通过防火墙)

接着执行/etc/init.d/iptables restart (重启防火墙使配置生效)。

因将该句加在文件末尾,导致防火墙重启后端口仍然无法使用

(2)解决方法

应该在默认的22端口这条规则的下面添加端口新规则,然后重启防火墙才能生效。如下:

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5001:5009 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

其中

:INPUT ACCEPT [0:0]
# 该规则表示INPUT表默认策略是ACCEPT

:FORWARD ACCEPT [0:0]
# 该规则表示FORWARD表默认策略是ACCEPT

:OUTPUT ACCEPT [0:0]
# 该规则表示OUTPUT表默认策略是ACCEPT

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 意思是允许进入的数据包只能是刚刚我发出去的数据包的回应,ESTABLISHED:已建立的链接状态。RELATED:该数据包与本机发出的数据包有关。

-A INPUT -i lo -j ACCEPT
# 意思就允许本地环回接口在INPUT表的所有数据通信,-i 参数是指定接口,接口是lo,lo就是Loopback(本地环回接口)
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
# 这两条的意思是在INPUT表和FORWARD表中拒绝所有其他不符合上述任何一条规则的数据包。并且发送一条host prohibited的消息给被拒绝的主机。
这个是iptables的默认策略,你也可以删除这些,另外建立符合自己需求的策略。

因此把-A INPUT -m state --state NEW -m tcp -p tcp --dport 5001:5009 -j ACCEPT放在首行(INPUT ACCEPT前),因默认策略没有设置不会生效.

而把-A INPUT -m state --state NEW -m tcp -p tcp --dport 5001:5009 -j ACCEPT放在最后,执行-A INPUT -j REJECT --reject-with icmp-host-prohibited时INPUT表和FORWARD表只有22,后加的端口5001到5009都会被拒绝。

(3)其他方法(root用户)

       使用命令iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 5001:5009 -j ACCEPT跟上述问题一样,无法开启端口,-A是添加在后行。可以使用iptables -I INPUT -m state --state NEW -m tcp -p tcp --dport 5001:5009 -j ACCEPT能成功,-I是插入在前排。

       也可以使用shell命令修改文件,sed -i '/--dport/a\ -A INPUT -m state --state NEW -m tcp -p tcp --dport 5001:5009 -j ACCEPT' /etc/sysconfig/iptables或者sed -i '/-A INPUT -j REJECT --reject-with icmp-host-prohibited/i\ -A INPUT -m state --state NEW -m tcp -p tcp --dport 5001:5009 -j ACCEPT' /etc/sysconfig/iptables。

       还可以使用命令system-config-firewall启动图形化界面添加端口,如下图:

       还有一种不提倡的方法:

注释掉最后两行,或iptables -F或service iptables stop

#-A INPUT -j REJECT --reject-with icmp-host-prohibited
#-A FORWARD -j REJECT --reject-with icmp-host-prohibited)
 (4)关闭防火墙和selinux的脚本

sed -i s/^SELINUX=.*/SELINUX=disabled/g /etc/selinux/config
service iptables stop && chkconfig iptables off

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乌托邦2号

博文不易,支持的请给予小小打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值