在 CentOS7 中,防火墻是保護(hù)服務(wù)器免受外部攻擊的重要工具。CentOS7 默認(rèn)使用了名為 firewalld 的防火墻管理工具,旨在提供更加靈活和易于管理的防火墻配置方案。在本篇文章中,我們將詳細(xì)介紹如何在 CentOS7 中查看防火墻的配置,幫助你全面了解防火墻的狀態(tài)、規(guī)則和配置方法。
一、查看防火墻狀態(tài)
在 CentOS7 中,firewalld 是默認(rèn)啟用的防火墻服務(wù)。要查看防火墻的狀態(tài),可以使用 "systemctl" 命令來(lái)檢查 firewalld 服務(wù)是否正在運(yùn)行。以下是查看防火墻狀態(tài)的步驟:
$ systemctl status firewalld
執(zhí)行上述命令后,你將看到類(lèi)似以下的信息:
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2023-11-20 10:00:00 UTC; 1h 30min ago
Docs: man:firewalld(1)
Main PID: 1234 (firewalld)
CGroup: /system.slice/firewalld.service
└─1234 /usr/libexec/firewalld通過(guò)這段信息,你可以確認(rèn) firewalld 服務(wù)是否正在運(yùn)行。如果顯示為 “active (running)”,則表示防火墻正在正常運(yùn)行。
二、查看防火墻規(guī)則
要查看防火墻的當(dāng)前規(guī)則,可以使用 "firewall-cmd" 命令。firewall-cmd 是一個(gè)命令行工具,用于管理 firewalld。通過(guò)以下命令,你可以查看防火墻的當(dāng)前配置和規(guī)則:
$ firewall-cmd --list-all
該命令將顯示包括當(dāng)前區(qū)域(zone)、允許的服務(wù)、端口、源地址等信息。例如:
public (default, active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh dhcpv6-client ports: 80/tcp 443/tcp protocols: masquerade: no forward-ports: icmp-blocks: rich rules:
在輸出中,你可以看到所有允許的服務(wù)和端口。例如,"ssh" 和 "dhcpv6-client" 是允許的服務(wù),"80/tcp" 和 "443/tcp" 是開(kāi)放的端口。
三、查看防火墻區(qū)域配置
CentOS7 的 firewalld 使用區(qū)域(zone)來(lái)組織防火墻規(guī)則。每個(gè)區(qū)域定義了一組規(guī)則,表示不同的網(wǎng)絡(luò)信任級(jí)別。常見(jiàn)的區(qū)域有 "public"、"dmz"、"internal" 等。你可以使用以下命令來(lái)查看所有區(qū)域的配置:
$ firewall-cmd --get-zones
執(zhí)行該命令后,系統(tǒng)會(huì)列出所有可用的區(qū)域。例如:
block dmz drop external home internal public trusted work
然后,使用以下命令查看特定區(qū)域的配置:
$ firewall-cmd --zone=public --list-all
這將顯示 "public" 區(qū)域的所有防火墻規(guī)則。你可以根據(jù)實(shí)際需求選擇其他區(qū)域來(lái)查看配置。
四、查看已開(kāi)放的端口
如果你只關(guān)心防火墻中已經(jīng)開(kāi)放的端口,可以使用以下命令:
$ firewall-cmd --list-ports
這個(gè)命令將顯示當(dāng)前防火墻規(guī)則下所有開(kāi)放的端口,例如:
80/tcp 443/tcp
如果你希望查看某個(gè)特定端口是否開(kāi)放,可以使用 "--query-port" 命令。例如,查看端口 80 是否開(kāi)放:
$ firewall-cmd --query-port=80/tcp
如果端口開(kāi)放,命令會(huì)返回 "yes";如果端口沒(méi)有開(kāi)放,命令會(huì)返回 "no"。
五、查看防火墻的默認(rèn)區(qū)域
防火墻使用區(qū)域來(lái)管理不同網(wǎng)絡(luò)接口的規(guī)則,每個(gè)區(qū)域有不同的信任級(jí)別。你可以使用以下命令來(lái)查看防火墻的默認(rèn)區(qū)域:
$ firewall-cmd --get-default-zone
如果默認(rèn)區(qū)域是 "public",命令會(huì)返回:
public
你可以通過(guò)更改默認(rèn)區(qū)域來(lái)調(diào)整防火墻的規(guī)則。例如,將默認(rèn)區(qū)域更改為 "internal":
$ firewall-cmd --set-default-zone=internal
六、查看防火墻的服務(wù)列表
在 firewalld 中,服務(wù)是預(yù)定義的規(guī)則集,定義了允許哪些類(lèi)型的流量通過(guò)防火墻。你可以使用以下命令查看所有可以添加到防火墻中的服務(wù):
$ firewall-cmd --get-services
執(zhí)行該命令后,系統(tǒng)會(huì)列出所有已定義的服務(wù),例如:
dhcpv6-client http https ipp-client mdns samba
你可以通過(guò) "firewall-cmd --add-service" 命令將某個(gè)服務(wù)添加到防火墻規(guī)則中。例如,添加 "http" 服務(wù):
$ firewall-cmd --add-service=http
七、查看防火墻的日志
防火墻日志是排查防火墻規(guī)則是否正確和安全事件的一個(gè)重要手段。CentOS7 中的 firewalld 可以將日志輸出到系統(tǒng)日志中。你可以通過(guò)以下命令查看防火墻日志:
$ journalctl -u firewalld
該命令將顯示 firewalld 服務(wù)的所有日志。你也可以通過(guò)日志管理工具(如 "grep")來(lái)篩選日志信息,查看特定時(shí)間段或特定事件的日志。
八、總結(jié)
在 CentOS7 中,firewalld 是一款強(qiáng)大的防火墻工具,通過(guò)它你可以靈活地配置和管理服務(wù)器的網(wǎng)絡(luò)流量。本文介紹了如何查看 CentOS7 防火墻的狀態(tài)、規(guī)則、區(qū)域、端口等配置信息。通過(guò)這些命令,你可以全面了解當(dāng)前防火墻的配置,并根據(jù)實(shí)際需求進(jìn)行調(diào)整。
通過(guò)掌握這些基本命令,你可以確保防火墻規(guī)則符合服務(wù)器的安全需求,保護(hù)服務(wù)器免受不必要的網(wǎng)絡(luò)攻擊。如果你需要對(duì)防火墻進(jìn)行更復(fù)雜的配置,可以進(jìn)一步學(xué)習(xí) firewalld 的高級(jí)特性,如 rich rules、端口轉(zhuǎn)發(fā)等。
總之,了解并合理配置防火墻是每個(gè)系統(tǒng)管理員的必備技能,能夠有效保障系統(tǒng)的安全性。