Centos7 默认预装了 firewalld 服务,采用 firewall-cmd 命令或者 firewall-config 图形界面,可以动态管理 kernel netfilter 的临时或永久接口规则,规则更新实时生效,不需要重启 firewalld 服务。
开启 firewalld 服务
systemctl start firewalld
设置firewalld 开机启动
systemctl enable firewalld
查看服务状态
systemctl status firewalld
常用命令
- 查看运行状态
firewall-cmd --state
- 查看激活的zone
firewall-cmd --get-active-zones
- 查看指定zone的所有信息
firewall-cmd --zone=public --list-all
- 查看永久放行的服务
firewall-cmd --get-service —permanent
- 拒绝所有包
# firewall-cmd --panic-ond
- 取消拒绝状态
# firewall-cmd --panic-off
- 查看是否拒绝
$ firewall-cmd --query-panic
- 更新防火墙规则,不需要重启服务
# firewall-cmd --reload
- 更新防火墙规则,并且重启服务
# firewall-cmd --complete-reload
- 添加接口到指定zone,默认都在public zone
# firewall-cmd --zone=public --add-interface=eth0
如果不加--permanent参数,则该规则仅仅是运行时规则,firewall-cmd --reload 后该规则消失。
- 设置默认zone,如果不设置,默认为public,本命令立即生效无需重启
# firewall-cmd --set-default-zone=myzone
- 查看给定zone所有打开的端口:
# firewall-cmd --zone=myzone --list-ports
- 添加一个端口到区域
# firewall-cmd --zone=myzone --add-port=8080/tcp
如果不加--permanent参数,则该规则仅仅是运行时规则,firewall-cmd --reload 后该规则消失。
- 打开一个服务
# firewall-cmd --zone=work --add-service=ssh
- 移除服务
# firewall-cmd --zone=work --remove-service=ssh
您还可以访问 firewalld 官方文档查询相关命令:http://www.firewalld.org/documentation/

评论