一.常规查询
firewall-cmd --version
firewall-cmd --help
firewall-cmd --state
firewall-cmd --list-all #查看所有配置
firewall-cmd --get-active-zones #查看区域信息
firewall-cmd --query-panic #查看是否拒绝
firewall-cmd --get-zones #显示支持的区域列表
firewall-cmd --zone=public --add-interface=eth0 #添加接口到区域
永久生效再加上 --permanent
firewall-cmd --zone=dmz --list-ports #查看所有打开的端口
firewall-cmd --zone=public --list-all #显示所有公共区域
firewall-cmd --query-masquerade #检查是否允许伪装IP
二.添加配置
firewall-cmd --add-port=443/tcp #打开tcp 443端口
firewall-cmd --remove-port 58120/tcp #移除tcp 58120端口
firewall-cmd --zone=dmz --add-port=8080/tcp #加入一个端口到区域
firewall-cmd --zone=internal --change-interface=enp03s #修改网络接口enp03s为内部区域
firewall-cmd --runtime-to-permanent #将运行时配置保存
firewall-cmd --reload #更新防火墙规则
firewall-cmd --complete-reload #类似重启,需要断开连接
三.端口转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
firewall-cmd --add-masquerade --zone=public --permanent
先检查本地的 80 端口和目标的 8080 端口是否开放监听
检查是否允许伪装 IP
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toport=8080 # 将访问本机80端口的流量转发至8080
备注:本地访问80会出现异常,需要执行:
firewall-cmd --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p tcp -o lo --dport 80 -j REDIRECT --to-ports 8080
firewall-cmd --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1 # 将80端口的流量转发至192.168.0.1
firewall-cmd --zone=public --add-forward-port=port=80:proto=tcp:toaddr=192.168.0.1:toport=8080 # 将80端口的流量转发至192.168.0.1的8080端口
四.富规则
参考:https://www.cnblogs.com/wangshuyang/p/11941547.html