记录一些常用的firewall操作。

介绍

firewalld: 动态防火墙后台程序
firewall-config: 图形化的配置工具 firewall-cmd: 命令行客户端

日常使用中,常用firewall-cmd来进行配置

使用

1. firewalld

// 安装服务
# yum install firewalld -y

// 查看当前防火墙状态
# systemctl status firewalld

// 启用
# systemctl start firewalld

// 关闭
# systemctl stop firewalld

// 开机自启
# systemctl enable firewalld

// 关闭开机自启
# systemctl disable firewalld

2. permanent

需要注意的是,如果要使更改永久生效,需要加上--permanent。这里的永久生效是有一定的条件的,在命令执行完成后,需要执行防火墙重载或系统重启。若没有加该参数,是立即生效的,但在防火墙重载或系统重启后即失效。

// 重载配置
# firewall-cmd --reload

3. 查看配置

// 当前运行状态
$ firewall-cmd --state

// 当前活动的网络区(zone)
$ firewall-cmd --get-active-zones

// 查看指定zone的当前所有设置信息
$ firewall-cmd --zone=public --list-all

4. 设置

// 设置默认zone (立即生效 无需重载)
# firewall-cmd --set-default-zone=public

// 添加接口到网络区
# firewall-cmd --zone=public --add-interface=eth0 --permanent

5. 增加开放端口/服务

// 打开TCP 80端口 (需重载 永久生效)
# firewall-cmd --zone=public --add-port=80/tcp --permanent

// 打开UDP 5000-5005端口 (立即生效)
# firewall-cmd --zone=public --add-port=5000-5005/udp

// SMTP服务加入 (需重载 永久生效)
# firewall-cmd --zone=public --add-service=smtp --permanent

6. 关闭开放的端口/服务

// 关闭已开放的80端口
# firewall-cmd --zone=public --remove-port=80/tcp --permanent

// 关闭已开放的5000-5005端口
# firewall-cmd --zone=public --remove-port=5000-5005/udp

// 移除SMTP服务
# firewall-cmd --zone=public --remove-service=smtp --permanent

参考

  1. https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls
  2. https://havee.me/linux/2015-01/using-firewalls-on-centos-7.html