FirewallD 是 CentOS 7 服务器上默认可用的防火墙管理工具。基本上,它是 iptables 的封装,有图形配置工具 firewall-config 和命令行工具 firewall-cmd。使用 iptables 服务,每次改动都要求刷新旧规则,并且从 /etc/sysconfig/iptables 读取新规则,然而 firewalld 只应用改动了的不同部分。
FirewallD 的区域
FirewallD 使用服务 和zone来代替 iptables 的规则和链。
默认情况下,有以下的zone可用:
@H_502_42@drop – 丢弃所有传入的网络数据包并且无回应,只有传出网络连接可用。
block — 拒绝所有传入网络数据包并回应一条主机禁止的 ICMP 消息,只有传出网络连接可用。
public — 只接受被选择的传入网络连接,用于公共区域。
external — 用于启用了地址伪装的外部网络,只接受选定的传入网络连接。
dmz — DMZ 隔离区,外部受限地访问内部网络,只接受选定的传入网络连接。
work — 对于处在你工作区域内的计算机,只接受被选择的传入网络连接。
home — 对于处在你家庭区域内的计算机,只接受被选择的传入网络连接。
internal — 对于处在你内部网络的计算机,只接受被选择的传入网络连接。
trusted — 所有网络连接都接受。
要列出所有可用的区域,运行:
# firewall-cmd --getzones
work drop internal external trusted home dmz public block
列出默认的区域 :
-defaultzone
public
改变默认的区域 :
setzone=dmz
dmz
FirewallD 服务
FirewallD 服务使用 XML 配置文件,记录了 firewalld 服务信息。
列出所有可用的服务:
services
amandaclient amandak5client bacula baculaclient ceph cephmon dhcp dhcpv6 dhcpv6client dns dockerregistry dropBoxlansync freeipaldap freeipaldaps freeipareplication ftp highavailability http https imap imaps ipp ippclient ipsec iscsitarget kadmin kerberos kpasswd ldap ldaps libvirt libvirttls mdns mosh mountd mswbt MysqL nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxydhcp ptp pulseaudio puppetmaster radius rpcbind rsyncd samba sambaclient sane smtp smtps snmp snmptrap squid ssh synergy syslog syslogtls telnet tftp tftpclient tinc torsocks transmissionclient vdsm vncserver wbemhttps xmppbosh xmppclient xmpplocal xmppserver
XML 配置文件存储在 /usr/lib/firewalld/services/ 和 /etc/firewalld/services/ 目录下。
用 FirewallD 配置你的防火墙
作为一个例子,假设你正在运行一个 web 服务器,SSH 服务端口为 7022 ,以及邮件服务,你可以利用 FirewallD 这样配置你的服务器:
首先设置默认区为 dmz。
dmz
为 dmz 区添加持久性的 HTTP 和 HTTPS 规则:
--dmz addservicehttp permanent
https permanent
开启端口 25 (SMTP) 和端口 465 (SMTPS) :
firewallsmtp smtps 开启 IMAP、IMAPS、POP3 和 POP3S 端口:
imap imaps pop3 pop3s 因为将 SSH 端口改到了 7022,所以要移除 ssh 服务(端口 22),开启端口 7022:
remove= port=7022/tcp 要应用这些更改,我们需要重新加载防火墙:
reload
最后可以列出这些规则:
–listall
target: default
icmpblockinversionno
interfaces:
sourcesservices http https imap imaps pop3 pop3s smtp smtps
ports tcp
protocolsmasqueradeforwardsourceportsblocksrich rules: