1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

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

本帖由 十秒记忆2020-04-11 发布。版面名称:谈天说地

  1. 十秒记忆

    十秒记忆 Member

    注册:
    2019-07-16
    帖子:
    66
    赞:
    0
    CentOS 7默认的防火墙是firewalld。但是,仍有大量用户想在CentOS 7里使用iptables。本文以CentOS 7.4为例,说明如何在CentOS 7以上系统里安装并使用iptables。

    安装并设置iptables。

    禁用firewalld开机启动

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

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



    [​IMG]


    如果服务处于 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已经成功启动。

    [​IMG]


    查看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 重启实例验证配置。

    买主机找松松小马,有折扣有返现QQ/VX:1002108404