firewalld 简介
firewalld 提供了支持网络 / 防火墙区域 (zone) 定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。以前的 iptables 防火墙是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。现在 firewalld 可以动态管理防火墙,firewalld 把 Netfilter 的过滤功能于一身
安装运行
yum install firewalld firewall-config
systemctl enable firewalld.service
systemctl start firewalld.service
基本命令
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端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --remove-port=80/tcp --permanent
–permanent #表示永久生效,没有此参数重启后失效
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则不允许
firewall-cmd --get-services
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --remove-service=ssh --permanent
firewall-cmd --remove-service=dhcpv6-client --permanent
firewall-cmd --zone=public --remove-port=22/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
端口转发
将本机80端口流量转发81上。使其他主机通过80端口,可以访问本机的81端口 注:本机需开放80端口。
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=81
将本机80端口转发其他服务器192.168.10.102:80
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
firewall-cmd --permanent --remove-icmp-block=echo-request
firewall-cmd --add-rich-rule='rule protocol value="icmp" drop'
firewall-cmd --permanent --add-icmp-block=echo-request
firewall-cmd --remove-rich-rule='rule protocol value="icmp" drop'
开放白名单
firewall-cmd --permanent --zone=trusted --add-source=192.168.1.0/24
firewall-cmd --permanent --zone=trusted --add-source=192.168.10.0/24
参考
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/