CentOS 7 的防火墙,默认的是 firewalld 程序,如果对此程序配置命令不熟悉,使用 iptables 的程序来控制防火墙。
# systemctl stop firewalld.service
# systemctl disable firewalld.service
安装 iptables 防火墙,开启防火墙,进行配置
# yum install iptables
# yum install iptables-services
# vi /etc/sysconfig/iptables
###########################################
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
################################################
# systemctl restart iptables.service
# systemctl enable iptables.service
为了方便说明,查看序号的规则:
首先说明,默认规则:
INPUT链为DROP
FORWARD链为DROP
OUTPUT链为ACCEPT;
15条规则解释如下:
1:80、8080端口是对外开放的web服务端口,22122为ssh端口;
2:开放本地127.0.0.1回环接口,放行本地主机内部通信;
3:放行icmp即允许ping通本机;
4:放行RELATED:相关联的连接;放行ESTABLISHED:连接踪模板当中存在的记录的连接
如果我们将INPUT的默认策略设置为了 DROP,如果要清空防火墙,不能贸然执行 iptalbes -F ,否则会将ssh连接断开!
如过需要临时清空防火墙测试,请先执行 iptables -P INPUT ACCEPT ,然后执行 iptables -F !