CentOS7安装和配置iptables防火墙

2019-08-07  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读