Linux中國

CentOS 7 上的 FirewallD 簡明指南

FirewallD 是 CentOS 7 伺服器上默認可用的防火牆管理工具。基本上,它是 iptables 的封裝,有圖形配置工具 firewall-config 和命令行工具 firewall-cmd。使用 iptables 服務,每次改動都要求刷新舊規則,並且從 /etc/sysconfig/iptables 讀取新規則,然而 firewalld 只應用改動了的不同部分。

FirewallD 的 區域 zone

FirewallD 使用 服務 service 區域 zone 來代替 iptables 的 規則 rule chain

默認情況下,有以下的 區域 zone 可用:

  • drop – 丟棄所有傳入的網路數據包並且無回應,只有傳出網路連接可用。
  • block — 拒絕所有傳入網路數據包並回應一條主機禁止的 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:

PS. 如果你喜歡這篇文章,請在下面留下一個回復。謝謝。

via: https://www.rosehosting.com/blog/set-up-and-configure-a-firewall-with-firewalld-on-centos-7/

譯者簡介:

Locez 是一個喜歡技術,喜歡折騰的 Linuxer,靠著對 Linux 的興趣自學了很多 Linux 相關的知識,並且志在於為 Linux 在中國普及出一份力。

作者:rosehosting.com 譯者:Locez 校對:jasminepeng

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國