FirewallD提供了一种在linux中配置动态防火墙规则的方法,这个规则可以直接应用,无需启动防火墙且还支持D-BUS和区域概念简化了配置。
在执行FirewallD规则前必须检查FirewallD服务是否已启用且运行中:
# systemctl status firewalld
如显示结果是FirewallD已启动,建议检查全部活动区域和活动服务:
# firewall-cmd --get-active-zones
# firewall-cmd --get-services
如还不大熟悉用法,可以从GUI管理FirewallD。只需要在系统上安装GUI包:
# yum install firewalld firewall-config
先确保确认要在哪个公共区域配置 Linux 防火墙,并使用以下命令列出公共区域的所有活动服务、端口和丰富规则:
# firewall-cmd --zone=public --list-all
要为公共区域打开任何端口,请使用以下命令。例如,以下命令将为公共区域打开端口 80:
# firewall-cmd --permanent --zone=public --add-port=80/tcp
要删除添加的端口,只需使用firewalld命令中的“ -remove ”选项,如下所示:
# firewall-cmd --zone=public --remove-port=80/tcp
添加或删除特定端口后,需要使用“ -list-ports ”选项确认该端口是否被添加或删除:
# firewall-cmd --zone=public --list-ports
默认情况下,FirewallD带有预定义服务,添加特定服务列表需要创建一个新的xml文件并在文件中包含全部服务,否则要通过手动定义或删除每个服务。
#firewall-cmd --zone=public --add-service=ftp
#firewall-cmd --zone=public --remove-service=ftp
#firewall-cmd --zone=public --list-services
如果想阻止任何传入或传出连接,需要使用“ panic-on ”模式来阻止此类请求。如可以删除系统上任何现有的已建立连接:
# firewall-cmd --panic-on
在尝试ping任何区域,使用“ -query-panic ”选项检查恐慌模式是否开启,如下所示。
# ping google.com -c 1
# firewall-cmd --query-panic
您是否在上图中看到,恐慌查询显示“未知主机 google.com ”。现在尝试禁用恐慌模式,然后再次 ping 并检查。
# firewall-cmd --query-panic
# firewall-cmd --panic-off
# ping google.com -c 1
现在这一次,将会有来自谷歌的 ping 请求。
伪装IP地址也是一种网络地址转换,允许服务器借助基础机器连接到互联网。如想从任何地方用SSH连接到家庭虚拟机,只需要把SSH端口22转发到不同端口。进行端口转发前,要先检查外部区域是否启用Masquerade,因为我们要从外部网络访问机器。
# firewall-cmd --zone=external --query-masquerade
如果尚未启用需先启用:
# firewall-cmd --zone=external --add-masquerade
再把全部SSH端口22连接转发到IP地址192.168.0.132的端口2222。
#firewall-cmd--zone=external--add-forward-port=port=22:proto=tcp:toport=2222:toaddr=192.168.0.132
# firewall-cmd --zone=external --list-all