CentOS 7 下使用 iptables


系统升级到CentOS 7后总感受iptables怪怪的,好比无论怎么保存重启后都被初始化一下,即使我最后发大绝招启动时候加命令:
首先iptables-save > /etc/iptables.rules保存当前状态。
而后再在/etc/rc.local中强制加上linux

/etc/rc.local
 

iptables-restore /etc/iptables .rules

重启后虽然规则生效但仔细看规则仍是一些被莫名添加的额外的内容,让人非常不爽。
web

仔细一google,发现问题之所在了。RedHat在7中更改了系统软件,再也不使用iptables做为系统的防火墙,而是使用了FirewallD,可是为了兼容过去的命令也可使用iptables来设置防御规则,但启动的时候自搞了一套。c#

解决方法也很简单。google

首先,能够考虑follow官方的想法转用FirewallD。其实查看一些官方文档也能用。
可是,我的以为若没有显著的提高也能够继续使用原来的iptables。若打算继续使用iptables, 能够继续作以下:spa

备份当前规则rest

1
iptables-save > iptables.rules

禁用FireWallD,安装&启用iptables-services
systemctl stop firewalld
systemctl mask firewalld
yum install  iptables-services -y 
systemctl enable  iptables
  

这时候检查iptables发现规则被清空了code

1
iptables -L -x -n

将备份的规则还原orm

1
iptables-restore iptables.rules

保存当前规则ip

1
/usr/libexec/iptables/iptables .init save

若使用minimize版本的安装,可能会出现提示ci

iptables: Saving firewall rules to /etc/sysconfig/iptables: /etc/init.d/iptables: line 274: restorecon: command not found

这是由于selinux没有安装的缘故,缺乏一个组件。安装policycoreutils便可。

1
yum install policycoreutils -y
相关文章
相关标签/搜索