当前位置: 首页 > Linux

FirewalldFirewall

时间:2023-04-06 23:54:53 Linux

Firewalld服务是RedHatRHEL7系统默认的防火墙管理工具。它的特点是运行时配置和永久配置选项,可以支持动态更新和“区域”区域功能的概念。它使用图形化工具firewall-config或者文本管理工具firewall-cmd,下面的实验会讲到区域的概念和作用。防火墙的网络区域定义了网络连接的可信级别。我们可以根据不同的场景调用不同的firewalld区域。区域规则是:areadefaultrulepolicytrusted允许所有数据包。主页拒绝传入数据包,除非它们与传出流量数据包相关或被ssh、mdns、ipp-client、samba-client和dhcpv6-client服务允许。internal等同于homezonework拒绝传入数据包,除非它与传出流量数据包相关或被ssh、ipp-client和dhcpv6-client服务允许。public拒绝传入数据包,除非与传出流量数据包相关或ssh、dhcpv6-client服务允许。external拒绝传入数据包,除非与传出流量数据包相关或ssh服务允许。dmz拒绝传入数据包,除非与传出流量数据包相关或ssh服务允许。块拒绝传入数据包,除非与传出流量数据包相关。drop拒绝传入数据包,除非与传出流量数据包相关。简单来说,就是为用户预先准备好几套规则集。我们可以根据不同的场景选择合适的规则集,默认区域是public。字符管理工具如果你想更有效地配置一个合适的防火墙,你必须学习字符管理工具firewall-cmd命令,命令参数为:参数功能--get-default-zone查询默认区域名称。--set-default-zone=<区域名称>设置默认区域,永久区域。--get-zones显示可用区域。--get-services显示预定义的服务。--get-active-zones显示当前使用的区域和网卡名称。--add-source=将源自此IP或子网的流量定向到指定区域。--remove-source=不再将来自该IP或子网的流量定向到指定区域。--add-interface=<网卡名称>将来自该网卡的所有流量定向到指定区域。--change-interface=<网卡名称>将某个网卡与区域相关联。--list-all显示当前区域的网卡配置参数、资源、端口、服务等信息。--list-all-zones显示所有区域中的网卡配置参数、资源、端口和服务。--add-service=<服务名称>设置默认区域以允许此服务的流量。--add-port=<端口号/协议>允许默认区域允许此端口上的流量。--remove-service=<服务名称>将默认区域设置为不再允许此服务的流量。--remove-port=<端口号/协议>允许默认区域中不再允许的此端口上的流量。--reload使“永久”配置规则立即生效,覆盖当前的。特别需要注意的是,firewalld服务有两条规则和策略配置记录,必须能够区分:RunTime:当前生效。永久:永久有效。下面实验修改永久策略记录时,必须执行“--reload”参数才能立即生效,否则重启后生效。查看当前区域:$firewall-cmd--get-default-zonepublic查询eno16777728网卡的区域:$firewall-cmd--get-zone-of-interface=eno16777728public查询是否允许ssh和http服务公共:$firewall-cmd--zone=public--query-service=sshyes$firewall-cmd--zone=public--query-service=httpno将默认规则设置为dmz:$firewall-cmd--set-default-zone=dmz使“永久”配置文件立即生效:$firewall-cmd--reloadsuccess打开/关闭紧急模式并阻止所有网络连接:紧急模式激活后,将禁止所有网络连接,并且所有的服务请求也会被拦截拒绝,小心谨慎使用。$firewall-cmd--panic-onsuccess$firewall-cmd--panic-offsuccess如果你已经完全理解了上面练习中firewall-cmd命令的参数的作用,不妨尝试完成下面的模拟训练:模拟训练1允许https服务流量通过公共区域,需要立即生效和永久生效:方法一:分别设置当前和永久规则记录:$firewall-cmd--zone=public--add-service=https$firewall-cmd--permanent--zone=public--add-service=https方法二:设置永久规则记录后读取记录:$firewall-cmd--permanent--zone=public--add-service=https$firewall-cmd--reloadsimulationtraining2不再允许http服务流量通过公共区域,要求立即永久生效:$firewall-cmd--permanent--zone=public--remove-service=httpsuccess使用参数“--reload”让永久配置文件立即生效:$firewall-cmd--reloadsuccesssimulationtraining3允许8080和8081端口的流量通过public区,立即永久生效:$firewall-cmd--permanent--zone=public--add-port=8080-8081/tcp$firewall-cmd--reloadsimulationtraining4查看模拟实验C中需要添加的端口的操作是否为成功:$firewall-cmd--zone=public--list-ports8080-8081/tcp$firewall-cmd--permanent--zone=public--list-ports8080-8081/tcp模拟实验5改变区域把eno16777728网卡改成external,重启后生效:$firewall-cmd--permanent--zone=external--change-ininterface=eno16777728success$firewall-cmd--get-zone-of-interface=eno16777728公共端口转发功能可以将原本发往某个端口的数据包转发到其他端口:firewall-cmd--permanent--zone=--add-forward-port=port=<源端口号>:proto=<协议>:toport=<目的端口号>:toaddr=<目标IP地址>将访问主机192.168.10.10的888端口的请求转发到22端口:$firewall-cmd--permanent--zone=public--add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10success使用客户端ssh命令访问192.168.10.10hostPort888:$ssh-p888192.168.10.10无法建立主机'[192.168.10.10]:888([192.168.10.10]:888)'的认证。ECDSA密钥指纹为b8:25:88:89:5c:05:b6:dd:ef:76:63:ff:1a:54:02:1a。您确定要继续连接吗(是/否)?yesWarning:Permanentlyadded'[192.168.10.10]:888'(ECDSA)tothelistofknownhosts.root@192.168.10.10'spassword:Lastlogin:SunJul1921:43:482015from192.168.10.10再次提示:注意立即生效和重启的区别,不要出错模拟实验6设置丰富规则拒绝192.168.10.0/24网段用户访问ssh服务:firewalld服务的丰富规则用于更详细的配置服务、端口、协议,规则有最高优先级。$firewall-cmd--permanent--zone=public--add-rich-rule="rulefamily="ipv4"sourceaddress="192.168.10.0/24"servicename="ssh"reject"成功图形化工具防火墙-配置...