CentOS7安装iptables防火墙的方法

2018年3月19日 2452点热度 2人点赞 0条评论

CentOS7默认的防火墙不是iptables,而是firewalle。现在就介绍了CentOS7安装iptables防火墙的方法,以及规则设置方法。

安装iptables


#先检查是否安装了iptables

service iptables status

#安装iptables

yum install -y iptables

#升级iptables

yum update iptables

#安装iptables-services

yum install iptables-services

禁用/停止自带的firewalld服务

#停止firewalld服务

systemctl stop firewalld

#禁用firewalld服务

systemctl mask firewalld

设置现有规则

#查看iptables现有规则

iptables -L -n

#先允许所有,不然有可能会杯具

iptables -P INPUT ACCEPT

#清空所有默认规则

iptables -F

#清空所有自定义规则

iptables -X

#所有计数器归0

iptables -Z

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

iptables -A INPUT -i lo -j ACCEPT

#开放22端口

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

#开放21端口(FTP)

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

#开放80端口(HTTP)

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

#开放443端口(HTTPS)

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

#允许ping

iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

#允许接受本机请求之后的返回数据 RELATED,是为FTP设置的

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

#其他入站一律丢弃

iptables -P INPUT DROP

#所有出站一律绿灯

iptables -P OUTPUT ACCEPT

#所有转发一律丢弃

iptables -P FORWARD DROP

其他规则设定

#如果要添加内网ip信任(接受其所有TCP请求)

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

#过滤所有非以上规则的请求

iptables -P INPUT DROP

#要封停一个IP,使用下面这条命令:

iptables -I INPUT -s ***.***.***.*** -j DROP

#要解封一个IP,使用下面这条命令:

iptables -D INPUT -s ***.***.***.*** -j DROP

删除一条规则

#查找所有规则行号

iptables -L -n --line-number

#删除一条规则(注意,这个11是行号)

iptables -D INPUT 11

保存规则设定

#保存上述规则

service iptables save

开启iptables服务

#注册iptables服务
#相当于以前的chkconfig iptables on

systemctl enable iptables.service

#开启服务

systemctl start iptables.service

#查看状态

systemctl status iptables.service

iptables 配置实践

手动编辑配置机制防火墙白名单策略

vi /etc/sysconfig/iptables
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# 开放本地和 Ping
-A INPUT -i lo -j ACCEPT  
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT
# 配置内网白名单
-A INPUT -s 192.168.0.0/16 -j ACCEPT
# 配置外网白名单
-A INPUT -s 183.221.209.105 -j ACCEPT 
# 控制端口
-A INPUT -p tcp --dport 80 -j ACCEPT 
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 445 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 139 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 445 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 137 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 138 -j ACCEPT
# 拒绝其它
-A INPUT -j DROP 
-A FORWARD -j DROP 
# 开放出口
-A OUTPUT -j ACCEPT 
COMMIT

重启生效
service iptables restart

信仰飘扬

行尽天涯 静默山水间