firewalld 简介
firewalld 提供了支持网络 / 防火墙区域 (zone) 定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4, IPv6 防火墙设置以及以太网桥接,并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。以前的 iptables 防火墙是静态的,每次修改都要求防火墙完全重启。这个过程包括内核 netfilter 防火墙模块的卸载和新配置所需模块的装载等。而模块的卸载将会破坏状态防火墙和确立的连接。现在 firewalld 可以动态管理防火墙,firewalld 把 Netfilter 的过滤功能于一身
安装运行
1 | yum install firewalld firewall-config |
基本命令
1 | firewall-cmd --state # 显示当前状态 |
允许或拒绝80端口
1 | firewall-cmd --zone=public --add-port=80/tcp --permanent |
--permanent #表示永久生效,没有此参数重启后失效
1 | firewall-cmd --zone=public --permanent --add-rich-rule='rule family=ipv4 source address="27.155.88.175" drop' |
查看支持的服务,允许服务http
注:http只允许80端口,如虚拟主机81则不允许1
2
3
4
5
6
7
8firewall-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端口。1
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=81
将本机80端口转发其他服务器192.168.10.102:801
2firewall-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 | firewall-cmd --permanent --remove-icmp-block=echo-request |
开放白名单
1 | firewall-cmd --permanent --zone=trusted --add-source=192.168.1.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/