FirewallD 是 CentOS 7 站群服务器上预设可用的防火墙管理工具。基本上,它是 iptables 的封装,有图形配置工具 firewall-config 和命令列工具 firewall-cmd 。使用 iptables 服务,每次改动都要求重新整理旧规则,并且从 /etc/sysconfig/iptables 读取新规则,然而 firewalld 只应用改动了的不同部分。
FirewallD 的区域(zone)
FirewallD 使用服务(service)和区域(zone)来代替 iptables 的规则(rule)和链(chain)。
预设情况下,有以下的区域(zone)可用:
drop – 丢弃所有传入的互联网资料包并且无回应,只有传出互联网连线可用。
block — 拒绝所有传入互联网资料包并回应一条 WordPress 主机禁止的 ICMP 讯息,只有传出互联网连线可用。
public — 只接受被选择的传入互联网连线,用于公共区域。
external — 用于启用了地址伪装的外部互联网,只接受选定的传入互联网连线。
dmz — DMZ 隔离区,外部受限地访问内部互联网,只接受选定的传入互联网连线。
work — 对于处在你工作区域内的计算机,只接受被选择的传入互联网连线。
home — 对于处在你家庭区域内的计算机,只接受被选择的传入互联网连线。
internal — 对于处在你内部互联网的计算机,只接受被选择的传入互联网连线。
trusted — 所有互联网连线都接受。
要列出所有可用的区域,执行:
# firewall-cmd –get-zones
work drop internal external trusted home dmz public block
列出预设的区域 :
# firewall-cmd –get-default-zone
public
改变预设的区域 :
# firewall-cmd –set-default-zone=dmz
# firewall-cmd –get-default-zone
dmz
FirewallD 服务
FirewallD 服务使用 XML 配置档案,记录了 firewalld 服务资讯。
列出所有可用的服务:
# firewall-cmd –get-services
amanda-client amanda-k5-client bacula bacula-client ceph ceph-mon dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync freeipa-ldap freeipa-ldaps freeipa-replication ftp high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kpasswd ldap ldaps libvirt libvirt-tls mdns mosh mountd ms-wbt mysql nfs ntp openvpn pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster radius rpc-bind rsyncd samba samba-client sane smtp smtps snmp snmptrap squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server
XML 配置档案储存在 /usr/lib/firewalld/services/ 和 /etc/firewalld/services/ 目录下。
用 FirewallD 配置你的防火墙
作为一个例子,假设你正在执行一个 web 站群服务器,SSH 服务埠为 7022 ,以及邮件服务,你可以利用 FirewallD 这样配置你的站群服务器:
首先设定预设区为 dmz 。
# firewall-cmd –set-default-zone=dmz
# firewall-cmd –get-default-zone
dmz
为 dmz 区新增永续性的 HTTP 和 HTTPS 规则:
# firewall-cmd –zone=dmz –add-service=http –permanent
# firewall-cmd –zone=dmz –add-service=https –permanent
开启埠 25 (SMTP) 和埠 465 (SMTPS) :
firewall-cmd –zone=dmz –add-service=smtp –permanent
firewall-cmd –zone=dmz –add-service=smtps –permanent
开启 IMAP 、 IMAPS 、 POP3 和 POP3S 埠:
firewall-cmd –zone=dmz –add-service=imap –permanent
firewall-cmd –zone=dmz –add-service=imaps –permanent
firewall-cmd –zone=dmz –add-service=pop3 –permanent
firewall-cmd –zone=dmz –add-service=pop3s –permanent
因为将 SSH 埠改到了 7022,所以要移除 ssh 服务(埠 22),开启埠 7022:
firewall-cmd –remove-service=ssh –permanent
firewall-cmd –add-port=7022/tcp –permanent
要应用这些更改,我们需要重新载入防火墙:
firewall-cmd –reload
最后可以列出这些规则:
# firewall-cmd –list-all
dmz
target: default
icmp-block-inversion: no
interfaces:
sources:
services: http https imap imaps pop3 pop3s smtp smtps
ports: 7022/tcp
protocols:
masquerade: no
forward-ports:
sourceports:
icmp-blocks:
rich rules:
原文连结:https://linux.cn/article-8323-1.html