1、关闭 CentOS 7 自带的 firewall 防火墙
# 关闭防火墙
systemctl stop firewalld
# 取消开机启动
systemctl disable firewalld
2、安装 iptables-services
iptables 是基于内核的,和 iptables.service 没有关系,不用安装任何工具包就可以使用 iptable 命令添加的防火墙规则,只是添加的规则是临时的,基于内存的,会在系统重启前消失,所以需要 iptables.service 来对添加的规则进行保存,这样在系统重启后重载对应的防火墙规则
# Cetnos 7 默认已经装了 iptables, 只需装 services
yum install iptables-services -y
3、添加 80 端口
# 打开配置文件
vim /etc/sysconfig/iptables
# 内容
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us 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 22 -j ACCEPT
# 添加一条规则,放行80端口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
4、重启生效
# 方法1:因为前面装了 iptables.service, 所以可执行 service 方式重启
service iptables restart
# 方法2:也可以执行centos7自带的 systemctl 方式重启
systemctl restart iptables
5、设置开机启动
# 设置防火墙开机启动
systemctl enable iptables