帮助与文档

当前位置: 首页帮助中心云服务器 ECS > 

云服务器 ECS Linux CentOS 7 下使用iptables服务

云服务器 ECS Linux CentOS 7 下使用iptables服务
发布时间:2018-09-07

CentOS 7默认的防火墙是firewalld。但是,仍有大量用户想在CentOS 7里使用iptables。本文以CentOS 7.4为例,说明如何在CentOS 7以上系统里安装并使用iptables。

安装并设置iptables。

禁用firewalld开机启动

为了防止与iptables服务冲突,您必须先禁用firewalld开机启动。按以下步骤操作:

  • 运行命令 systemctl status firewalld 查看服务状态。返回结果里,active 表示服务处于运行状态,inactive 表示服务处于关闭状态,如下图所示。

  • 如果服务处于 active 状态,运行以下命令关闭firewalld服务。

    • systemctl stop firewalld

  • 运行以下命令禁用firewalld。


    • systemctl disable firewalld

安装iptables

运行命令安装iptables:yum install -y iptables-services。

启动iptables

运行命令启动iptables:systemctl start iptables

运行命令检查iptables是否成功启动:systemctl status iptables。如果返回如下图所示的结果,说明iptables已经成功启动。

查看iptables默认规则

运行命令查看iptables默认规则:iptables -L。

在默认规则下,INTPUT链中ACCEPT来自任何主机的访问。

您可以按以下步骤修改规则:

  • (可选)如果之前已经设置过规则策略,建议运行以下命令备份原有的iptables文件,避免之前设置的策略丢失。

    • cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak

  • 运行命令 iptables -F 清空所有规则。

  • 根据业务需求添加规则,放行或者禁用端口。比如,添加以下规则可以放行80端口和22端口。

    说明:您可以添加如下规则,拒绝(DROP)INPUT方向所有请求。添加这条策略后,ECS实例会拒绝所有访问请求。如果是线上业务请勿直接操作,会直接中断业务。

    • iptables -P INPUT DROP

    • iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

    • iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT

  • 运行命令 iptables -L 查看新规则是否生效。

  • 运行命令 iptables-save > /etc/sysconfig/iptables 保存添加的规则。


设置iptables开机启动

运行命令 systemctl enable iptables.service 设置iptables开机自启动。

完成设置后,运行命令 systemctl reboot 重启实例验证配置。

以上内容是否对您有帮助?