13.3防火墙策略#

防火墙策略定义了网络通信方向(IN或OUT)和处理动作(ACCEPT,DENY,REJECT)。你也可以定义一个宏来预定义的策略和配置项,还可以在策略前插入字符“|”来禁用策略。 防火墙策略语法

[RULES]

DIRECTION ACTION [OPTIONS]
|DIRECTION ACTION [OPTIONS] # disabled rule

DIRECTION MACRO(ACTION) [OPTIONS] # use predefined macro

如下参数可用于完善策略匹配规则。

--dest <string>
设置数据包目的地址。可以设置为一个IP地址,一个IP集合(IP集合名称)或IP别名。也可以设置为一个IP地址范围如20.34.101.207-201.3.9.99,或一组IP地址和网络地址列表(使用逗号分隔开)。注意不要在列表中同时混合配置IPv4地址和IPv6地址。

--dport <string>
设置TCP/UDP目的端口。可像/etc/services一样设置为服务名称或端口号(0-65535),也可按照“\d+:\d+”格式设置为端口范围,如80:85,也可以设置为由逗号分隔开的端口和端口范围列表。

--iface <string>
设置网卡名称。可以设置为网络配置中的虚拟机和容器网卡名称(net\d+)。主机级别的防火墙策略可使用任意字符串。

--log <alert | crit | debug | emerg | err | info | nolog | notice | warning>
防火墙策略的日志级别。

--proto <string>
设置IP协议。你可以设置为协议名称(tcp/udp)或/etc/protocols中定义的协议编号。

--source <string>
设置数据包源地址。可以设置为一个IP地址,一个IP集合(IP集合名称)或IP别名。也可以设置为一个IP地址范围如20.34.101.207-201.3.9.99,或一组IP地址和网络地址列表(使用逗号分隔开)。注意不要在列表中同时混合配置IPv4地址和IPv6地址。

--sport <string>
设置TCP/UDP目的端口。可像/etc/services一样设置为服务名称或端口号(0-65535),也可按照“\d+:\d+”格式设置为端口范围,如80:85,也可以设置为由逗号分隔开的端口和端口范围列表。

以下是一些防火墙策略示例

[RULES]
IN SSH(ACCEPT) -i net0
IN SSH(ACCEPT) -i net0 # a comment
IN SSH(ACCEPT) -i net0 -source 192.168.2.192 # only allow SSH from 192.168.2.192
IN SSH(ACCEPT) -i net0 -source 10.0.0.1-10.0.0.10 # accept SSH for ip range
IN SSH(ACCEPT) -i net0 -source 10.0.0.1,10.0.0.2,10.0.0.3 #accept ssh for ip list
IN SSH(ACCEPT) -i net0 -source +mynetgroup # accept ssh for ipset mynetgroup
IN SSH(ACCEPT) -i net0 -source myserveralias #accept ssh for alias myserveralias

|IN SSH(ACCEPT) -i net0 # disabled rule

IN DROP # drop all incoming packages
OUT ACCEPT # accept all outgoing packages