温馨提示×

debian stream8如何设置防火墙

小樊
38
2025-11-23 15:02:05
栏目: 智能运维

Debian Stream 8 防火墙设置指南

说明与准备

  • 你提到的“debian stream8”通常指的是 Debian 12(Bookworm)。Debian 默认不预装任何防火墙,需先选择并安装工具:UFW(适合新手、简洁)、firewalld(动态管理、支持区域与服务)、或直接使用 iptables/nftables(灵活但更复杂)。
  • 操作前建议备份现有规则,避免远程连接被断开;如通过 SSH 管理,务必先放行 22/TCP 再应用更严格策略。

方案一 使用 UFW(推荐给新手)

  • 安装与启用
    • 安装:sudo apt update && sudo apt install ufw -y
    • 设置默认策略:sudo ufw default deny incoming;sudo ufw default allow outgoing
    • 放行 SSH:sudo ufw allow 22/tcp(如修改了 SSH 端口,请放行对应端口)
    • 启用:sudo ufw enable(会提示可能影响现有 SSH 连接,确认后继续)
  • 常用操作
    • 放行端口/服务:sudo ufw allow 80/tcp;sudo ufw allow 443/tcp;sudo ufw allow 3000:3100/tcp
    • 按来源 IP 限制:sudo ufw allow from 203.0.113.10 to any port 22
    • 查看状态与规则:sudo ufw status verbose;sudo ufw delete allow 80/tcp
  • 说明
    • UFW 规则默认会自动持久化,启用后重启仍有效。

方案二 使用 firewalld(动态区域与服务管理)

  • 安装与启用
    • 安装:sudo apt install firewalld -y
    • 启动与开机自启:sudo systemctl start firewalld;sudo systemctl enable firewalld
    • 查看状态:sudo firewall-cmd --state 或 sudo systemctl status firewalld
  • 常用操作
    • 放行端口:sudo firewall-cmd --permanent --add-port=22/tcp;sudo firewall-cmd --permanent --add-port=80/tcp;sudo firewall-cmd --permanent --add-port=443/tcp
    • 放行端口区间:sudo firewall-cmd --permanent --add-port=3000-3100/tcp
    • 放行服务:sudo firewall-cmd --permanent --add-service=http;sudo firewall-cmd --permanent --add-service=https
    • 按来源 IP 限制端口:sudo firewall-cmd --permanent --add-rich-rule=‘rule family=“ipv4” source address=“203.0.113.10” port protocol=“tcp” port=“22” accept’
    • 使配置生效:sudo firewall-cmd --reload
    • 查看:sudo firewall-cmd --list-all(或 --list-ports / --get-services)
  • 说明
    • 使用 –permanent 保存规则,修改后用 –reload 加载;未加 --permanent 的规则重启后失效。

方案三 使用 iptables 或 nftables(高级用户)

  • 备份与查看
    • 备份当前规则:sudo sh -c “iptables-save > /etc/iptables/rules.v4”
    • 查看:sudo iptables -L -n -v
  • 常用规则示例
    • 放行回环:sudo iptables -A INPUT -i lo -j ACCEPT
    • 放行已建立连接:sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    • 放行 SSH:sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
    • 放行 HTTP/HTTPS:sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT;sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    • 默认策略(谨慎):sudo iptables -P INPUT DROP(务必先放行 SSH 与已建立连接,避免锁死)
  • 持久化与恢复
    • 保存:sudo sh -c “iptables-save > /etc/iptables/rules.v4”
    • 开机恢复:sudo iptables-restore < /etc/iptables/rules.v4
    • 也可在网卡启动脚本中恢复(如 /etc/network/if-pre-up.d/iptables),确保重启后自动加载
  • 说明
    • Debian 默认不自动保存 iptables 规则,需手动保存与恢复;nftables 为新一代框架,语法不同但思路类似。

安全与排错建议

  • 最小暴露原则:仅开放必要端口(如 22/80/443),对管理端口可结合来源 IP 白名单限制。
  • 云服务器场景:同时检查云平台 安全组/防火墙 策略,确保与系统防火墙放行一致。
  • 避免锁死 SSH:在将 INPUT 默认策略设为 DROP 前,先放行 22/TCP 与已建立连接;必要时在控制台保留应急访问通道。
  • 加固与监控:可配合 fail2ban 防暴力破解,并定期审计规则与日志。

0