CentOS 7 Firewalld防火墙管理工具

Posted by Sunday on 2018-08-07

firewalld 简介

firewalld 提供了支持网络 / 防火墙区域 (zone) 定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。以前的 iptables 防火墙是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。现在 firewalld 可以动态管理防火墙,firewalld 把 Netfilter 的过滤功能于一身

安装运行

1
2
3
yum install firewalld firewall-config
systemctl enable firewalld.service
systemctl start firewalld.service

基本命令

1
2
3
4
5
6
7
8
9
10
11
firewall-cmd --state # 显示当前状态
firewall-cmd --zone=public --list-ports # 查看所有打开运行的端口
firewall-cmd --reload # 更新防火墙规则
firewall-cmd --get-default-zone #查看默认区域
firewall-cmd --get-zone-of-interface=eth0 # 查看指定接口所属区域
firewall-cmd --zone=public --list-all # 查看区域所有配置
firewall-cmd --list-all-zones | more # 查看所有区域配置
firewall-cmd --panic-on # 拒绝所有包
firewall-cmd --panic-off # 取消拒绝状态
firewall-cmd --query-panic # 查看是否拒绝
firewall-cmd --list-all # 查看所有配置

允许或拒绝80端口

1
2
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent

--permanent #表示永久生效,没有此参数重启后失效

1
2
3
4
5
firewall-cmd --zone=public --permanent --add-rich-rule='rule family=ipv4 source address="27.155.88.175" drop'
firewall-cmd --zone=public --permanent --remove-rich-rule='rule family=ipv4 source address="27.155.88.175" drop'

firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address=192.168.1.0/24 accept" --permanent
firewall-cmd --zone=public --add-rich-rule="rule family="ipv4" source address=192.168.1.0/24 port port=7900-7905 protocol=tcp accept" --permanent

查看支持的服务,允许服务http

注:http只允许80端口,如虚拟主机81则不允许

1
2
firewall-cmd --get-services
firewall-cmd --zone=public --add-service=http --permanent

端口转发

将本机80端口流量转发81上。使其他主机通过80端口,可以访问本机的81端口
注:本机需开放80端口。

1
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=81

将本机80端口转发其他服务器192.168.10.102:80

1
2
firewall-cmd --zone=public --add-masquerade
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=80:toaddr=192.168.10.102

删除此规则,将两条的add换成remove即可

禁用或启用PING

1
2
firewall-cmd --permanent --remove-icmp-block=echo-request
firewall-cmd --permanent --add-icmp-block=echo-request

参考:
https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/security_guide/sec-using_firewalls
https://www.ibm.com/developerworks/cn/linux/1507_caojh/