防火墙规则与 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 --reload

2. 网络接口与 nmcli 命令

2.1 查看网络接口信息
  • 查看所有接口ip aip 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-cmdnmcli是 Linux 系统网络配置与安全管理的重要工具。掌握这些命令可以帮助管理员快速配置防火墙规则、管理网络连接,并确保系统网络安全。建议在实际操作前,先在测试环境中验证命令效果。