Centos 升级到 7 之后,内置的防火墙已经从 iptables 变成了 firewalld

firewalld

systemctl 是 CentOS 7 的服务管理工具中主要的工具,它融合之前 service 和 chkconfig 的功能于一体

1. 安装防火墙

yum install firewalld firewalld-config

2. 安装防火墙

systemctl start firewalld

3. 禁用防火墙

systemctl stop firewalld

4. 设置开机启动

systemctl enable firewalld

5. 停止并禁用开机启动

sytemctl disable firewalld

6. 重启防火墙

firewall-cmd --reload

7. 查看状态

systemctl status firewalld

或者

firewall-cmd --state

8. 查看版本

firewall-cmd --version

9. 查看帮助

firewall-cmd --help

10. 查看区域信息

firewall-cmd --get-active-zones

11. 查看指定接口所属区域信息

firewall-cmd --get-zone-of-interface=eth0

12. 拒绝所有包

firewall-cmd --panic-on

13. 取消拒绝状态

firewall-cmd --panic-off

14. 查看是否拒绝

firewall-cmd --query-panic

15. 将接口添加到区域(默认接口都在 public)

firewall-cmd --zone=public --add-interface=eth0

# 永久生效再加上 --permanent 然后reload防火墙
firewall-cmd --zone=public --add-interface=eth0 --permanent
firewall-cmd --reload

16. 设置默认接口区域

# 立即生效,无需重启
firewall-cmd --set-default-zone=public

17. 更新防火墙规则

firewall-cmd --reload

或者

firewall-cmd --complete-reload

# 区别在于第一个无需断开连接,就是 firewalld 特性之一动态添加规则
# 第二个需要断开连接,类似重启服务

18. 查看指定区域所有打开的端口

firewall-cmd --zone=public --list-ports

19. 查看指定的打开端口信息

firewall-cmd --zone= public --query-port=80/tcp

20. 在指定区域打开端口

# 重启后会失效
firewall-cmd --zone=public --add-port=80/tcp

# 永久生效
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

21. 在指定区域关闭已打开的端口

# 重启后会失效
firewall-cmd --zone=public --remove-port=80/tcp

# 永久生效
firewall-cmd --zone=public --remove-port=80/tcp --permanent
firewall-cmd --reload