美文网首页
CentOS7安装和配置iptables防火墙

CentOS7安装和配置iptables防火墙

作者: 我是哈斯 | 来源:发表于2019-08-07 16:29 被阅读0次

    从CentOS7(RHEL7)开始,官方的标准防火墙设置软件从iptables变更为firewalld。需禁用自带的firewalld服务,同时安装iptables服务。
    在使用Docker时,启用centos7默认的firewall,启动端口映射时,防火墙规则不生效。docker默认使用了iptables防火墙机制。所以需要关闭firewall使用iptables解决。

    1.关闭默认的firewall防火墙

        systemctl stop firewalld.service 关闭防火墙
        systemctl disable firewalld.service 关闭开机启动
    

    2.开启iptables

        yum install iptables (根据centOS7的版本和内核,有些版本已经装过,可以跳过此命令)
        yum install iptables-services
    

    3.基本操作

    查看防火墙状态

        service iptables status  
    

    停止防火墙

        service iptables stop  
    

    启动防火墙

        service iptables start  
    

    重启防火墙

        service iptables restart  
    

    永久关闭防火墙

        chkconfig iptables off  
    

    永久关闭后重启

        chkconfig iptables on  
    

    开机自启

        systemctl enable iptables.service
    

    3.编辑防火墙文件(开启了21,22,80,3306端口)

    vim /etc/sysconfig/iptables
     
    # sampleconfiguration for iptables service 
    # # you can edit thismanually or use system-config-firewall 
    # # please do not askus to add additional ports/services to this default configuration 
    *filter 
    :INPUT ACCEPT [0:0] 
    :FORWARD ACCEPT [0:0] 
    :OUTPUT ACCEPT [0:0] 
    -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
    -A INPUT -p icmp -j ACCEPT 
    -A INPUT -i lo -j ACCEPT 
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT 
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT 
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT 
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT 
    -A INPUT -j REJECT --reject-with icmp-host-prohibited 
    -A FORWARD -j REJECT --reject-with icmp-host-prohibited 
    COMMIT 
    

    添加防火墙命令

        /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
    

    查看本机关于IPTABLES的设置情况

        iptables -L -n
    

    脚本说明

    表示先允许所有的输入通过防火墙,以防远程连接断开。

        iptables -P INPUT ACCEPT
    

    表示清空所有默认规则。

        iptables -F
    

    表示清空所有自定义规则。

        iptables -X
    

    表示将所有计数器归0。

        iptables -Z
    

    表示允许来自于lo接口(本地访问)的数据包

        iptables -A INPUT -i lo -j ACCEPT
    

    表示开放22端口(SSH)。

        iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    

    表示开放80端口(HTTP)

        iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    

    表示开放443端口(HTTPS)

        iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    

    表示允许接受本机请求之后的返回数据。

        iptables -A INPUT -m state --state  RELATED,ESTABLISHED -j ACCEPT
    

    表示所有被丢弃的包都会被记录到/var/log/iptables.log文件中,且每条记录会以”iptables denied”作为前缀。

        iptables -A INPUT  -p tcp -j LOG --log-prefix "iptables denied"
    

    表示其他入站一律丢弃

        iptables -P INPUT DROP
    

    表示所有出站一律通过

        iptables -P OUTPUT ACCEPT
    

    表示所有转发一律通过

        iptables -P FORWARD DROP
    

    设定其他规则

    如果要添加可信任网段:192.168.0.1/24,接受其所有请求。

        iptables -A INPUT -s 192.168.0.1/24 -j ACCEPT
    

    如果要添加可信任ip:192.168.0.1,接受其所有TCP请求。

        iptables -A INPUT -p tcp -s 192.168.0.1 -j ACCEPT
    

    如果要添加可信任ip:192.168.0.1,接受其对某个端口:3306的所有TCP请求。

        iptables -I INPUT -p tcp -s 192.168.0.1 --dport 3306 -j ACCEPT
    

    如果要封停一个IP:192.168.0.1。

        iptables -I INPUT -s 192.168.0.1 -j DROP

    相关文章

      网友评论

          本文标题:CentOS7安装和配置iptables防火墙

          本文链接:https://www.haomeiwen.com/subject/uftadctx.html