在 CentOS7 中,防火墙是保护服务器免受外部攻击的重要工具。CentOS7 默认使用了名为 firewalld 的防火墙管理工具,旨在提供更加灵活和易于管理的防火墙配置方案。在本篇文章中,我们将详细介绍如何在 CentOS7 中查看防火墙的配置,帮助你全面了解防火墙的状态、规则和配置方法。
一、查看防火墙状态
在 CentOS7 中,firewalld 是默认启用的防火墙服务。要查看防火墙的状态,可以使用 "systemctl" 命令来检查 firewalld 服务是否正在运行。以下是查看防火墙状态的步骤:
$ systemctl status firewalld
执行上述命令后,你将看到类似以下的信息:
● 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
通过这段信息,你可以确认 firewalld 服务是否正在运行。如果显示为 “active (running)”,则表示防火墙正在正常运行。
二、查看防火墙规则
要查看防火墙的当前规则,可以使用 "firewall-cmd" 命令。firewall-cmd 是一个命令行工具,用于管理 firewalld。通过以下命令,你可以查看防火墙的当前配置和规则:
$ firewall-cmd --list-all
该命令将显示包括当前区域(zone)、允许的服务、端口、源地址等信息。例如:
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:
在输出中,你可以看到所有允许的服务和端口。例如,"ssh" 和 "dhcpv6-client" 是允许的服务,"80/tcp" 和 "443/tcp" 是开放的端口。
三、查看防火墙区域配置
CentOS7 的 firewalld 使用区域(zone)来组织防火墙规则。每个区域定义了一组规则,表示不同的网络信任级别。常见的区域有 "public"、"dmz"、"internal" 等。你可以使用以下命令来查看所有区域的配置:
$ firewall-cmd --get-zones
执行该命令后,系统会列出所有可用的区域。例如:
block dmz drop external home internal public trusted work
然后,使用以下命令查看特定区域的配置:
$ firewall-cmd --zone=public --list-all
这将显示 "public" 区域的所有防火墙规则。你可以根据实际需求选择其他区域来查看配置。
四、查看已开放的端口
如果你只关心防火墙中已经开放的端口,可以使用以下命令:
$ firewall-cmd --list-ports
这个命令将显示当前防火墙规则下所有开放的端口,例如:
80/tcp 443/tcp
如果你希望查看某个特定端口是否开放,可以使用 "--query-port" 命令。例如,查看端口 80 是否开放:
$ firewall-cmd --query-port=80/tcp
如果端口开放,命令会返回 "yes";如果端口没有开放,命令会返回 "no"。
五、查看防火墙的默认区域
防火墙使用区域来管理不同网络接口的规则,每个区域有不同的信任级别。你可以使用以下命令来查看防火墙的默认区域:
$ firewall-cmd --get-default-zone
如果默认区域是 "public",命令会返回:
public
你可以通过更改默认区域来调整防火墙的规则。例如,将默认区域更改为 "internal":
$ firewall-cmd --set-default-zone=internal
六、查看防火墙的服务列表
在 firewalld 中,服务是预定义的规则集,定义了允许哪些类型的流量通过防火墙。你可以使用以下命令查看所有可以添加到防火墙中的服务:
$ firewall-cmd --get-services
执行该命令后,系统会列出所有已定义的服务,例如:
dhcpv6-client http https ipp-client mdns samba
你可以通过 "firewall-cmd --add-service" 命令将某个服务添加到防火墙规则中。例如,添加 "http" 服务:
$ firewall-cmd --add-service=http
七、查看防火墙的日志
防火墙日志是排查防火墙规则是否正确和安全事件的一个重要手段。CentOS7 中的 firewalld 可以将日志输出到系统日志中。你可以通过以下命令查看防火墙日志:
$ journalctl -u firewalld
该命令将显示 firewalld 服务的所有日志。你也可以通过日志管理工具(如 "grep")来筛选日志信息,查看特定时间段或特定事件的日志。
八、总结
在 CentOS7 中,firewalld 是一款强大的防火墙工具,通过它你可以灵活地配置和管理服务器的网络流量。本文介绍了如何查看 CentOS7 防火墙的状态、规则、区域、端口等配置信息。通过这些命令,你可以全面了解当前防火墙的配置,并根据实际需求进行调整。
通过掌握这些基本命令,你可以确保防火墙规则符合服务器的安全需求,保护服务器免受不必要的网络攻击。如果你需要对防火墙进行更复杂的配置,可以进一步学习 firewalld 的高级特性,如 rich rules、端口转发等。
总之,了解并合理配置防火墙是每个系统管理员的必备技能,能够有效保障系统的安全性。