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

  • A+
所属分类:Linux
高性能企业级服务器首台5折

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

连接Linux实例 后,按以下描述安装并设置iptables。

禁用firewalld开机启动

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

  1. 运行命令 
    1
    systemctl status firewalld

     查看服务状态。返回结果里,

    1
    active

     表示服务处于运行状态,

    1
    inactive

     表示服务处于关闭状态,如下图所示。
    查看firewalld服务状态

  2. 如果服务处于 
    1
    active

     状态,运行以下命令关闭firewalld服务。

    1. 1
      <span class="pln">systemctl stop firewalld</span>
  3. 运行以下命令禁用firewalld。
    1. 1
      <span class="pln">systemctl <span class="hljs-built_in">disable</span> firewalld</span>

安装iptables

运行命令安装iptables:

1
yum install -y iptables-services

启动iptables

运行命令启动iptables:

1
systemctl start iptables

运行命令检查iptables是否成功启动:

1
systemctl status iptables

。如果返回如下图所示的结果,说明iptables已经成功启动。
iptables正常启动

查看iptables默认规则

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

1
iptables -L

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

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

  1. (可选)如果之前已经设置过规则策略,建议运行以下命令备份原有的iptables文件,避免之前设置的策略丢失。
    1. 1
      <span class="pln">cp </span><span class="pun">-</span><span class="pln">a </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">sysconfig</span><span class="pun">/</span><span class="pln">iptables </span><span class="pun">/</span><span class="pln">etc</span><span class="pun">/</span><span class="pln">sysconfig</span><span class="pun">/</span><span class="pln">iptables</span><span class="pun">.</span><span class="pln">bak</span>
  2. 运行命令 
    1
    iptables -F

     清空所有规则。

  3. 根据业务需求添加规则,放行或者禁用端口。比如,添加以下规则可以放行80端口和22端口。
    1. 1
      <span class="pln">iptables </span><span class="pun">-</span><span class="pln">I INPUT </span><span class="pun">-</span><span class="pln">p tcp </span><span class="pun">--</span><span class="pln">dport </span><span class="lit">80</span> <span class="pun">-</span><span class="pln">m state </span><span class="pun">--</span><span class="pln">state NEW </span><span class="pun">-</span><span class="pln">j ACCEPT</span>
    2. 1
      <span class="pln">iptables </span><span class="pun">-</span><span class="pln">I INPUT </span><span class="pun">-</span><span class="pln">p tcp </span><span class="pun">--</span><span class="pln">dport </span><span class="lit">22</span> <span class="pun">-</span><span class="pln">m state </span><span class="pun">--</span><span class="pln">state NEW </span><span class="pun">-</span><span class="pln">j ACCEPT</span>

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

    1. 1
      <span class="pln">iptables </span><span class="pun">-</span><span class="pln">P INPUT DROP</span>
  4. 运行命令 
    1
    iptables -L

     查看新规则是否生效。

  5. 运行命令 
    1
    iptables-save &gt; /etc/sysconfig/iptables

     保存添加的规则。

设置iptables开机启动

运行命令 

1
systemctl enable iptables.service

 设置iptables开机自启动。

完成设置后,运行命令 

1
systemctl reboot

 重启实例验证配置。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: