FirewallD是CentOS7服务器上默认可用的防火墙管理工具。基本上,它是iptables的包装器,带有图形配置工具firewall-config和命令行工具firewall-cmd。使用iptables服务,每次更改都需要刷新旧规则并从/etc/sysconfig/iptables读取新规则,而firewalld仅应用更改的不同部分。FirewallD的区域(zone)FirewallD用服务(service)和区域(zone)来代替iptables的规则(rule)和链(chain)。默认情况下,以下区域可用:丢弃-丢弃所有没有响应的传入网络数据包,只有传出网络连接可用。block—拒绝所有传入的网络数据包并使用HostForbiddenICMP消息进行响应,仅传出网络连接可用。public-对于公共区域,只接受选择传入的网络连接。外部——对于启用了地址伪装的外部网络,只接受选定的传入网络连接。dmz—DMZ隔离区,限制外部访问内部网络,只接受选定的传入网络连接。工作—仅接受来自您工作区计算机的选定传入网络连接。家庭—只接受来自您家庭区域的计算机的选定传入网络连接。internal—对于内部网络上的计算机,只接受选择的传入网络连接。trusted—接受所有网络连接。要列出所有可用区域,请运行:#firewall-cmd--get-zonesworkdropinternalexternaltrustedhomedmzpublicblock列出默认区域:#firewall-cmd--get-default-zonepublic更改默认区域:#firewall-cmd--set-default-zone=dmz#firewall-cmd--get-default-zonedmzFirewallDserviceFirewallD服务使用XML配置文件记录firewalld服务信息。列出所有可用的服务:#firewall-cmd--get-servicesamanda-clientamanda-k5-clientbaculabacula-clientcephceph-mondhcpdhcpv6dhcpv6-clientdnsdocker-registrydropbox-lansyncfreeipa-ldapfreeipa-ldapsfreeipa-replicationftphigh-availabilityhttphttpsimapimapsippipp-clientipseciscsi-targetkadminkerberoskpasswdldapldapslibvirtlibvirt-tlsmdnsmoshmountdms-wbtmysqlnfsntpopenvpnpmcdpmproxypmwebapipmwebapispop3pop3spostgresqlprivoxyproxy-dhcpptppulseaudiopuppetmasterradiusrpc-bindrsyncdsambasamba-clientsanesmtpsmtpssnmpsnmptrapsquidsshsynergysyslogsyslog-tlstelnettftptftp-clienttinctor-sockstransmission-clientvdsmvnc-serverwbem-httpsxmpp-boshxmpp-clientxmpp-localxmpp-serverXML配置文件存储在/usr/lib/servicesfirewalld/etc.使用FirewallD配置您的防火墙例如,假设您正在运行一个带有SSH服务端口7022和邮件服务的Web服务器,您可以使用FirewallD来配置您的服务器,如下所示:首先将默认区域设置为dmz。#firewall-cmd--set-default-zone=dmz#firewall-cmd--get-default-zonedmz为dmz区域添加持久的HTTP和HTTPS规则:#firewall-cmd--zone=dmz--add-service=http--permanent#firewall-cmd--zone=dmz--add-service=https--永久开放端口25(SMTP)和端口465(SMTPS):firewall-cmd--zone=dmz--add-service=smtp--permanentfirewall-cmd--zone=dmz--add-service=smtps--permanent打开IMAP、IMAPS、POP3和POP3S端口:firewall-cmd--zone=dmz--add-service=imap--permanentfirewall-cmd--zone=dmz--add-service=imaps--permanentfirewall-cmd--zone=dmz--add-service=pop3--permanentfirewall-cmd--zone=dmz--add-service=pop3s--永久更改SSH端口为7022,因此删除ssh服务(端口22)并打开端口7022:firewall-cmd--remove-service=ssh--permanentfirewall-cmd--add-port=7022/tcp--permanent要应用这些更改,我们需要重新加载防火墙:firewall-cmd--reload最后可以列出这些规则:#firewall-cmd–list-alldmztarget:defaulticmp-block-inversion:nointerfaces:sources:services:httphttpsimapimapspop3pop3ssmtpsmtpsports:7022/tcpprotocols:masquerade:noforward-ports:sourceports:icmp-blocks:richrules:译者简介:Locez是一个热爱技术,爱折腾的Linuxer。基于对Linux的兴趣,他自学了很多Linux相关知识,旨在为Linux在中国的普及贡献一份力量。
