Firewalld command

允许(永久生效)

// 允许 1.1.1.1 访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.1.1.1" accept'

// 允许 2.2.0.0/16 网段访问
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="2.2.0.0/16" accept'

// 允许 3.3.3.0/16 网段访问80端口
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="3.3.3.3.0/16" port protocol="tcp" port="80" reject'

// 动态加载生效
firewall-cmd --reload

// 查看所有规则        
firewall-cmd --list-all

// 查看指定规则     
firewall-cmd --list-rich-rules

拒绝(永久生效)

// 拒绝 1.1.1.1 访问机器
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="1.1.1.1" drop'

// 动态加载生效
firewall-cmd --reload

// 拒绝动作
REJECT:返回一个拒绝(终止)数据包(TCP FIN或UDP-ICMP-PORT-UNREACHABLE),明确的拒绝对方的连接动作

DROP:直接丢弃数据,并不反馈任何回应。需要Client等待超时

删除规则

firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="1.1.0.0/16"  dropt'
firewall-cmd --reload

临时添加规则

 // 立即生效
firewall-cmd --add-rich-rule='rule family="ipv4" source address="1.1.1.2" reject'

// 加载后以上规则消失
firewall-cmd --reload

补充

// 允许http服务(对应服务策略目录:/usr/lib/firewalld/services/)
firewall-cmd --permanent --add-service=http

// 关闭http服务(对应服务策略目录:/usr/lib/firewalld/services/)
firewall-cmd --permanent --remove-service=http

// 开放端口:80
firewall-cmd --permanent --add-port=80/tcp
// 允许端口:3389
firewall-cmd --permanent --add-port=3389/tcp
// 允许范围端口:1-3389
firewall-cmd --permanent --add-port=1-3389/tcp
// 关闭放行的端口:3389
firewall-cmd --permanent --remove-port=3389/tcp

// 临时开放 UDP 233 端口
firewall-cmd --add-port="233/udp"

// 禁止 Ping
firewall-cmd --permanent --add-icmp-block=echo-request

// 删除禁止 ping
firewall-cmd --permanent --remove-icmp-block=echo-request 

// 查看某端口是否放通
firewall-cmd --query-port=80/tcp
// 查看firewall的状态
firewall-cmd --state      
// 查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略,在配置策略前建议 cp -a 备份,方便回滚)
firewall-cmd --list-all 
// 查看所有区域的规则情况(显示/etc/firewalld/zones/下的所有策略)
firewall-cmd --list-all-zones

// 重新加载配置文件
firewall-cmd --reload    // 动态加载,无需断开连接
firewall-cmd --complete-reload    // 类似重启服务,状态信息将会丢失,此选项应当用于处理防火墙问题时.

官方文档

https://fedoraproject.org/wiki/FirewallD/zh-cn