CentOS7系统默认的防火墙是Filewalld。但是,仍有大量用户习惯于在CentOS7系统中使用iptables。本文以CentOS7.4为例,说明在CentOS7系统中如何安装并使用iptables。
为了防止与iptables冲突,您必须先禁止Filewalld开机启动。
systemctl status firewalld系统显示类似如下,active字段表示服务处于运行状态,inactive字段表示服务处于关闭状态。
systemctl stop firewalld
systemctl disable firewalld
执行如下命令,安装iptables。
yum install -y iptables-services
执行如下命令,启动iptables。
systemctl start iptables
执行如下命令,查看iptables是否成功启动。
systemctl status iptables系统显示类似如下,说明iptables已经成功启动。
systemctl enable iptables.service
systemctl reboot
执行iptables -L
命令,查看iptables默认规则,发现在默认规则下,INTPUT链允许来自任何主机的访问。可以参考如下步骤修改默认规则。
如果之前已经设置过规则,建议执行如下命令,备份原有的iptables文件,避免之前设置的规则丢失。
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
iptables -F
根据业务需求添加规则,放行或者禁用端口。示例:依次执行如下命令,放行80端口和22端口。
iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT示例:依次执行如下命令,添加规则,使INPUT链拒绝所有请求,即ECS实例会拒绝所有请求。如果是线上业务请勿直接操作,会直接中断业务。
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -P INPUT DROP
iptables -L
执行如下命令,保存添加的规则。
iptables-save > /etc/sysconfig/iptables