温馨提示×

debian防火墙如何启用服务

小樊
32
2025-12-07 05:26:58
栏目: 智能运维

Debian 防火墙启用服务操作指南

在 Debian 上,“启用服务”通常指允许某个网络服务(如 SSH、HTTP、HTTPS)通过防火墙。Debian 常见有 UFW、firewalld、iptables/nftables 三种管理方式,按你实际使用的工具选择对应步骤即可。

快速选择

  • 想要简单、直观:优先用 UFW(适合桌面与服务器常见场景)。
  • 需要按**区域(zone)**管理、动态变更:用 firewalld
  • 需要精细控制或系统已采用 nftables 规则集:用 iptables/nftables

UFW 方式

  • 安装与启用
    • 安装:sudo apt update && sudo apt install ufw
    • 启用:sudo ufw enable(提示确认;启用后默认随系统启动)
  • 允许服务或端口
    • 按服务名:sudo ufw allow ssh(或 http、https、smtp 等)
    • 按端口:sudo ufw allow 80/tcpsudo ufw allow 443/tcp
    • 端口区间:sudo ufw allow 3000:3100/tcp
    • 限制来源 IP:sudo ufw allow from 192.168.1.100 to any port 22
  • 常用查看与撤销
    • 状态:sudo ufw status(加 verbose 查看更多细节)
    • 撤销:sudo ufw delete allow 80/tcp 说明:UFW 为 Debian/Ubuntu 常用的简化防火墙工具,命令直观,适合快速放行常见服务。

firewalld 方式

  • 安装与启动
    • 安装:sudo apt update && sudo apt install firewalld
    • 启动与开机自启:sudo systemctl start firewalld && sudo systemctl enable firewalld
    • 状态:sudo firewall-cmd --state(应返回 running
  • 允许服务或端口
    • 按服务名(永久生效):sudo firewall-cmd --permanent --zone=public --add-service=http
    • 按端口:sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp
    • 多个端口:sudo firewall-cmd --permanent --zone=public --add-port={8080,8443}/tcp
    • 使配置生效:sudo firewall-cmd --reload
  • 常用查看
    • 当前规则:sudo firewall-cmd --list-all
    • 可用服务:sudo firewall-cmd --get-services 提示:firewalld 使用“区域”和“服务”概念,便于分场景管理规则。

iptables 方式(及 nftables 兼容)

  • 放行服务端口示例
    • HTTP:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
    • HTTPS:sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    • SSH 且限制来源 IP:sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
  • 持久化保存与恢复
    • Debian 上建议安装 iptables-persistent(或 netfilter-persistent):
      • 安装:sudo apt install iptables-persistent
      • 安装过程会提示是否保存当前规则;后续可用:
        • 保存:sudo netfilter-persistent save
        • 重载:sudo netfilter-persistent reload 说明:iptables 规则默认重启后不保留,需显式保存;Debian 10+ 默认防火墙框架为 nftables,但 iptables 命令仍可用并与 nftables 兼容。

常用验证与注意事项

  • 验证
    • UFW:sudo ufw status
    • firewalld:sudo firewall-cmd --list-all
    • iptables:sudo iptables -L -n -v
  • 重要提示
    • 修改规则后,firewalld 需 reload 才生效;UFW 可 reload 或按条撤销;iptables 需重新保存持久化。
    • 切勿在未放行 SSH(22/tcp) 的情况下远程操作,避免被锁;建议先本地或带外确认规则生效。

0