例子表示
使mysql服务的3306端口只允许192.168.1.1/24网段的服务器能访问
#添加规则
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.1.1/24" port protocol="tcp" port="3306" accept"
#reload使生效
firewall-cmd --reload
IP 列表逐一加入 trusted 区域,使用命令如下:
$ firewall-cmd --permanent --zone=trusted --add-source=173.245.48.0/20
$ firewall-cmd --permanent --zone=trusted --add-source=131.0.72.0/22
使 trusted 区域设置生效,使用命令如下:
$ firewall-cmd --reload
确认 trusted 区域是否设置正确,使用命令如下:
$ firewall-cmd --zone=trusted --list-all
返回:
trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces:
sources: 173.245.48.0/20 …… 131.0.72.0/22
services:
ports:
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
因为此时已经设置了 trusted 区域,所以还需要切换默认区域从 public 到 drop,以达到无视所有接入连接的目的。使用命令如下:
$ firewall-cmd --set-default-zone=drop
再将默认网卡 eth0 分配给 drop 区域,使用命令如下:
$ firewall-cmd --permanent --zone=drop --change-interface=eth0
使白名单最终生效,使用命令如下(注意:请再次确认你的所有 IP 都加入了 trusted 区域):
$ firewall-cmd --reload
至此,白名单设置正式生效。
网段表示规则
10.0.0.0/8 10.0.0.0-10.255.255.255
172.16.0.0/16 172.16.0.0-172.16.255.255
192.168.0.0/16 192.168.0.0-192.168.255.255
176.1.1.0/24 176.1.1.1-176.1.1.254
180.166.0.0/16 180.166.0.0-180.166.255.255
187.187.0.0/16 180.187.0.0-180.187.255.255
188.188.0.0/16 188.188.0.0-188.188.255.255
188.189.0.0/16 188.189.0.0-188.189.255.255
188.190.0.0/16 188.190.0.0-188.190.255.255
190.190.0.0/24 190.190.0.0.1-190.190.0.254
193.0.0.0/8 193.0.0.0-193.255.255.255
194.0.0.0/8 194.0.0.0-194.255.255.255
200.188.0.0/16 200.188.0.0-200.188.255.255
200.190.0.0/16 200.190.0.0-200.190.255.255