Linux -- firewalld的富语言规则

  1. Firewalld支持两种类型的NAT:IP地址伪装端口转发。

(1)IP地址伪装

地址伪装(masquerade): 通过地址伪装,NAT 设备将经过设备的包转发到指定接收方,同时将通过的数据包的源地址更改为其自己的接口地址,当返回的数据包到达时,会将目的地址修改为原 始主机的地址并做路由。地址伪装可以实现局域网多个地址共享单一公网地址上网,类似于NAT技术中的端口多路复用(PAT) IP地址伪装仅支持 IPv4,不支持 IPv6。

(2)端口转发

端口转发(Forward-port): 也称为目的地址转换或端口映射。通过端口转发,将指定IP地址及端口的流量转发到相同计算机上的不同端口,或不同计算机上的端口。企业内网的服务器一般都采用私网地址,可以通过端口转发将使用私网地址的服务器发布到公网,以便让互联网用户访问。例如,当接收互联网用户的HTTP请求时,网关服务器判断数据包的目标地址与目标端口,一旦匹配指定规则,则将其目标地址修改为内网真正的服务器地址,从而建立有效连接。

2.使用富语言

firewalld的富语言(rich language)提供了一种不需要了解 iptables 语法的通过高级语言配置复杂 IPv4和IPv6 防火墙规则的机制,为管理员提供了一种表达性语言,通过这种语言可以表达firewalld 的基本语法中未涵盖的自定义防火墙规则。例如,仅允许从单个IP地址(而非通过某个区域路由的所有IP地址)连接到服务。

富规则可用于表达基本的允许/拒绝规则,也可以用于配置记录(面向syslog和aditd),以及端口转发、伪装和速率限制。

3.理解富规则命令

firewall-cmd 有四个选项可以用于处理富规则,所有这些选项都可以同常规的--permanent 或 --zone=<ZONE>选项组合使用,具体选项见表3-1。

任何已配置的富规则都会显示在firewall-cmd--list-all 和firewall-cmd----list-all-zones的输出结果中。具体语法解释可参考电子档。

  1. 规则配置举例

(1)为认证报头协议AH使用新的IPv4和IPv6连接。

复制代码
[root@gateway-server ~]# firewall-cmd --add-rich-rule='rule protocol value=ah accept'

(2)允许新的Pv4和Pv6连接 FTP,并使用审核每分钟记录一次。

复制代码
[root@gateway-server ~]# firewall-cmd --add-rich-rule='rule service name=ftp log limit value=1/m audit accept'

(3)允许来自192.168.0.0/24地址的TFTP协议的IPv4连接,并且使用系统日志每分钟记录 一次。

复制代码
[root@gateway-server ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log prefix="tftp" level="info" limit value="1/m" accept'

(4)为RADIUS协议拒绝所有来自1:2:3:4:6::的新IPv6连接,日志前缀为"dns",级别 为"info",并每分钟最多记录3次。接受来自其他发起端新的IPv6 连接。

复制代码
[root@gateway-server ~]# firewall-cmd --add-rich-rule='rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log prefix="dns" level="info" limit value="3/m" reject'

[root@gateway-server ~]# firewall-cmd --add-rich-rule='rule family="ipv6" service name="radius" accept'

(5)将源192.168.2.2地址加入白名单,以允许来自这个源地址的所有连接。

复制代码
[root@gateway-server ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.2.2" accept'

(6)拒绝来自public区域中IP地址192.168.0.11的所有流量。

复制代码
[root@gateway-server ~]# firewall-cmd --zone=public --add-rich-rule='rule family=ipv4 source address=192.168.0.11/32 reject'

(7)丢弃来自默认区域中任何位置的所有传入的ipsec esp协议包。

复制代码
[root@gateway-server ~]# firewall-cmd --add-rich-rule='rule protocol value="esp" drop'

(8)在192.168.1.0/24子网的dmz区域中,接收端口7900~7905的所有TCP包。

复制代码
[root@gateway-server ~]# firewall-cmd --zone=dmz --add-rich-rule='rule family=ipv4 source address=192.168.1.0/24 port port=7900-7905 protocol=tcp accept'

(9)接收从 work 区域到 SSH 的新连接,以notice级别且每分钟最多三条消息的方式将新连接记录到syslog。

复制代码
[root@gateway-server ~]# firewall-cmd --zone=work --add-rich-rule='rule service name=ssh log prefix="ssh" level="notice" limit value="3/m" accept'

(10)在接下来的5min内,拒绝从默认区域中的子网192.168.2.0/24到DNS的新连接,并且拒绝的连接将记录到 audit系统,且每小时最多一条消息。

复制代码
[root@gateway-server ~]# firewall-cmd --add-rich-rule='rule family=ipv4 source address=192.168.2.0/24 service name=dns audit limit value="1/h" reject' --timeout=300
相关推荐
大树889 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠9 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质9 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush49 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行52010 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz10 小时前
Maven依赖冲突
java·服务器·maven
Inhand陈工10 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智11 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩11 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_11 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化