Linux 系统,凭借其强大的灵活性和开源特性,成为了服务器和嵌入式设备等领域的首选操作系统
在 Linux 系统上,防火墙的配置和管理是系统管理员必须掌握的关键技能之一
本文将深入探讨 Linux 下查看防火墙状态的方法,并通过实战案例,帮助读者掌握这一重要技能
一、Linux 防火墙概述 Linux 防火墙主要通过两种技术实现:`iptables` 和`firewalld`
`iptables` 是 Linux 内核自带的防火墙工具,提供了强大的包过滤和包处理功能,但配置相对复杂
而 `firewalld`则是基于`iptables` 的一个动态防火墙管理工具,它提供了更友好的命令行和图形界面,使得防火墙规则的管理变得更加直观和简便
二、使用`iptables` 查看防火墙 `iptables` 是 Linux 防火墙的核心,通过命令行界面进行操作
虽然配置复杂,但功能强大,适用于需要精细控制网络流量的场景
1.检查 `iptables` 规则 要查看当前 `iptables` 的规则,可以使用以下命令: sudo iptables -L -v -n - `-L`:列出所有规则
- `-v`:显示详细信息,包括每个规则的匹配次数和字节数
- `-n`:不解析主机名,加快显示速度
该命令将列出所有链(INPUT、FORWARD、OUTPUT)中的规则,包括允许或拒绝的数据包类型、协议、源地址、目标地址等信息
2. 查看特定链的规则 如果你只想查看特定链的规则,可以在`-L` 后加上链名,例如: sudo iptables -L INPUT -v -n 这将只显示 INPUT 链的规则
3. 保存和恢复 `iptables` 规则 由于 `iptables` 规则在系统重启后会丢失,因此需要手动保存和恢复
保存规则可以使用以下命令: sudo iptables-save > /etc/iptables/rules.v4 恢复规则则使用: sudo iptables-restore < /etc/iptables/rules.v4 三、使用`firewalld` 查看防火墙 `firewalld`是 `iptables` 的一个前端工具,提供了更加用户友好的接口,支持动态更新防火墙规则,无需重启服务即可生效
1.检查 `firewalld` 状态 首先,确保 `firewalld` 服务正在运行: sudo systemctl status firewalld 如果服务未运行,可以使用以下命令启动: sudo systemctl start firewalld 2. 查看当前区域和规则 `firewalld` 使用区域(zones)来定义不同的安全策略
要查看当前活动的区域及其规则,可以使用: sudo firewall-cmd --list-all 这将显示当前默认区域的规则,包括允许的服务、端口、源等
3. 查看特定区域的规则 如果你想查看特定区域的规则,可以在命令后加上`--zone` 选项,例如: sudo firewall-cmd --zone=public --list-all 4. 列出所有区域 使用以下命令可以查看所有已定义的区域: sudo firewall-cmd --get-zones 5. 列出所有服务 `firewalld` 使用预定义的服务来简化规则的添加
要查看所有可用的服务,可以使用: sudo firewall-cmd --get-services 6. 持久化规则 与 `iptables` 不同,`firewalld` 的规则在默认情况下是持久的,即重启后依然有效
但如果你手动修改了规则,最好使用`--permanent` 选项来确保更改是持久的,例如: sudo firewall-cmd --zone=public --add-port=8080