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