防火墙规则与 nmcli 命令使用指南
防火墙规则与 nmcli 命令使用指南
1. 防火墙(firewall-cmd)常用命令
firewall-cmd是 Linux 系统中管理 firewalld 防火墙的主要命令行工具。
1.1 服务管理
- 添加服务:
firewall-cmd --add-service 服务名 - 移除服务:
firewall-cmd --remove-service 服务名
1.2 区域管理
- 查看默认区域:
firewall-cmd --get-default-zone - 设置默认区域:
firewall-cmd --set-default-zone=public
1.3 端口管理
- 添加端口:
firewall-cmd --add-port=端口/协议(例如:--add-port=80/tcp) - 移除端口:
firewall-cmd --remove-port=端口/协议
1.4 高级规则(Rich Rules)
使用富规则进行更精细的控制:
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.100 service name=http accept' firewall-cmd --permanent --add-rich-rule='rule family=ipv6 source address=2001:db8::1 service name=ssh drop'参数说明:
family:协议族(ipv4 或 ipv6)source address:源 IP 地址service name:服务名(如 http、ssh、https)action:动作(accept 允许、drop 丢弃、reject 拒绝)
1.5 重载配置
修改永久规则后需要重载生效:
firewall-cmd --reload2. 网络接口与 nmcli 命令
2.1 查看网络接口信息
- 查看所有接口:
ip a或ip addr show - 查看指定接口统计信息:
ip -s link show 网卡名(例如:ip -s link show eth0)
2.2 NetworkManager 管理(nmcli)
- 查看设备状态:
nmcli device status - 查看连接配置文件:配置文件位于
/etc/NetworkManager/system-connections/,可使用vim编辑 - 停止网络设备:
nmcli device stop 设备名(例如:nmcli device stop eth0)
3. 实用案例与补充说明
案例 1:开放 Web 服务
# 添加 http 服务 firewall-cmd --add-service=http # 或直接开放 80 端口 firewall-cmd --add-port=80/tcp # 设置为永久规则 firewall-cmd --permanent --add-service=http # 重载配置 firewall-cmd --reload案例 2:限制 SSH 访问
# 只允许特定 IP 访问 SSH firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.50 service name=ssh accept' firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address=192.168.1.51 service name=ssh accept' # 默认拒绝其他 SSH 连接(firewalld 默认拒绝所有,此规则显式说明) firewall-cmd --reload案例 3:网络设备管理
# 查看所有网络设备 nmcli device status # 查看 eth0 的详细连接信息 nmcli device show eth0 # 临时禁用 eth0 nmcli device disconnect eth0 # 或使用 stop(需注意:stop 可能影响其他管理工具) nmcli device stop eth0 # 重新启用 nmcli device connect eth0补充说明
- 临时 vs 永久规则:不加
--permanent的参数为临时规则,重启后失效。永久规则需要--permanent并执行--reload。 - 区域概念:firewalld 使用区域(zone)管理不同信任级别的网络,如 public、internal、trusted 等。
- nmcli 与 ip 命令:
nmcli是 NetworkManager 的管理工具,而ip命令是 iproute2 工具集的一部分,两者功能有重叠但管理层面不同。 - 配置文件编辑:修改
/etc/NetworkManager/system-connections/下的文件后,通常需要重启 NetworkManager 服务:systemctl restart NetworkManager。
4. 总结
firewall-cmd和nmcli是 Linux 系统网络配置与安全管理的重要工具。掌握这些命令可以帮助管理员快速配置防火墙规则、管理网络连接,并确保系统网络安全。建议在实际操作前,先在测试环境中验证命令效果。