現(xiàn)在你將看到如何“添加”、“刪除”和“列出”服務(wù)、協(xié)議和端口,以便“阻止”或“允許”它們。
- 來(lái)源:https://linux.cn/article-12276-1.html
- 作者:Dan01
- 譯者:geekpi
在上一篇文章中,我們探討了如何在 Fedora 中 用命令行控制防火墻 。
現(xiàn)在你將看到如何“添加”、“刪除”和“列出”服務(wù)、協(xié)議和端口,以便“阻止”或“允許”它們。
簡(jiǎn)短回顧
首先,最好檢查一下防火墻的狀態(tài),看它是否正在運(yùn)行。如我們先前所學(xué),你可以使用狀態(tài)選項(xiàng)(firewall-cmd ‐‐state)來(lái)得到。
下一步是獲取網(wǎng)絡(luò)接口適用的 域(zone)。例如,我使用的桌面有兩個(gè)網(wǎng)絡(luò)接口:一個(gè)物理接口(enp0s3),代表我實(shí)際的網(wǎng)卡,和虛擬接口(virbr0),它由 KVM 等虛擬化軟件使用。要查看哪些域處于活動(dòng)狀態(tài),請(qǐng)運(yùn)行 firewall-cmd ‐‐get-active-zones。
現(xiàn)在,你知道了你感興趣的域,可以使用 firewall-cmd ‐‐info-zone=FedoraWorkstation 這樣的命令列出該域的規(guī)則。
讀取區(qū)域信息
要顯示特定域的信息,請(qǐng)運(yùn)行 firewall-cmd ‐‐zone=ZoneName ‐‐list-all,或使用以下命令顯示默認(rèn)域的信息:
[dan@localhost ~]$ firewall-cmd --list-all
FedoraWorkstation (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client mDNS samba-client ssh
ports: 1025-65535/udp 1025-65535/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
現(xiàn)在,讓我們查看輸出。第一行表明以下信息關(guān)聯(lián)的域以及該域當(dāng)前是否在使用中。
target: default:告訴我們這是默認(rèn)域??梢酝ㄟ^(guò) ‐‐set-default-zone=ZoneName 和 ‐‐get-default-zone 設(shè)置或獲取。
icmp-block-inversion 表明是否阻止 ICMP 請(qǐng)求。例如,如果機(jī)器響應(yīng)來(lái)自網(wǎng)絡(luò)上其他機(jī)器的 ping 請(qǐng)求。
interfaces 字段顯示接受此域的所有接口。
處理服務(wù)、端口和協(xié)議
現(xiàn)在,重點(diǎn)關(guān)注 services、ports 和 protocols 所在行。默認(rèn)情況下,防火墻將阻止所有端口、服務(wù)和協(xié)議,而只允許列出的。
在這里,你可以看到允許的服務(wù)是非?;镜目蛻舳朔?wù)。例如,訪問(wèn)網(wǎng)絡(luò)上的共享文件夾(samba-client)、與 DNS 服務(wù)器通信或通過(guò) SSH(ssh 服務(wù))連接到計(jì)算機(jī)。你可以將 service 視為與端口組合的協(xié)議,例如 ssh 服務(wù)使用 SSH 協(xié)議,并且按照慣例使用 22 端口。通過(guò)允許 ssh 服務(wù),你實(shí)際上所做的就是允許傳入的連接在默認(rèn) 22 端口上使用 SSH 協(xié)議。
請(qǐng)注意,根據(jù)經(jīng)驗(yàn),名稱中帶有 client 字樣的服務(wù)是指?jìng)鞒鲞B接,也就是你使用你的 IP 作為源對(duì)外部的連接,與之相反的是 ssh 服務(wù),比如,它將接受傳入連接(監(jiān)聽(tīng)來(lái)自外部的連接)。
你可以在文件 /etc/services 中查找服務(wù)。例如,如果你想知道這些服務(wù)使用什么端口和協(xié)議:
[dan@localhost ~]$ cat /etc/services | grep ssh
ssh 22/tcp # The Secure Shell (SSH) Protocol
ssh 22/udp # The Secure Shell (SSH) Protocol
你可以看到 SSH 同時(shí)使用 TCP 和 UDP 的 22 端口。此外,如果你希望查看所有可用的服務(wù),只需使用 firewall-cmd --get-services。
打開(kāi)端口
如果要阻止端口、服務(wù)或協(xié)議,請(qǐng)確保在此處未列出它們。展開(kāi)來(lái)說(shuō),如果要允許服務(wù),那么需要將它添加到列表中。
假設(shè)你要打開(kāi) 5000 端口用于 TCP 連接。為此,請(qǐng)運(yùn)行:
sudo firewall-cmd --zone=FedorwaWorkstation --permanent --add-port=5000/tcp
請(qǐng)注意,你需要指定規(guī)則適用的域。添加規(guī)則時(shí),還需要如上指定它是 tcp 還是 udp 端口。--permanent 參數(shù)將規(guī)則設(shè)置為即使系統(tǒng)重啟后也可以保留。
再次查看你所在區(qū)域的信息:
[dan@localhost ~]$ firewall-cmd --list-all
FedoraWorkstation (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: dhcpv6-client mdns samba-client ssh
ports: 1025-65535/udp 1025-65535/tcp 5000/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
類似地,如果你想從列表刪除該端口,請(qǐng)運(yùn)行:
sudo firewall-cmd --zone=FedorwaWorkstation --permanent --remove-port=5000/tcp
相同的 remove (‐‐remove-protocol、‐‐remove-service) 和 add(‐‐add-protocol、‐‐add-service)選項(xiàng)同樣適用于服務(wù)和協(xié)議。
via: https://fedoramagazine.org/how-to-manage-network-services-with-firewall-cmd/
作者: dan01 選題: lujun9972 譯者: geekpi 校對(duì): wxy
本文由 LCTT 原創(chuàng)編譯, Linux中國(guó) 榮譽(yù)推出