温馨提示×

Debian环境如何配置防火墙

小樊
38
2025-12-24 16:08:58
栏目: 智能运维

Debian 防火墙配置指南

一、方案总览与选择

  • Debian 上常用防火墙栈有:
    • UFW(Uncomplicated Firewall):基于 iptables 的前端,语法简洁,适合快速上手与日常运维。
    • iptables:传统且灵活,适合需要细粒度控制的场景。
    • nftables:新一代 Linux 防火墙框架,语法更现代,适合新项目或希望面向未来的维护。
  • 建议:服务器日常管理优先用 UFW;复杂策略或学习用途可用 iptables/nftables

二、使用 UFW 快速配置(推荐)

  • 安装与启用
    • 安装:sudo apt update && sudo apt install ufw
    • 设置默认策略:sudo ufw default deny incomingsudo ufw default allow outgoing
    • 允许 SSH(避免锁死远程):sudo ufw allow 22/tcpsudo ufw allow OpenSSH
    • 启用:sudo ufw enable(首次会提示可能影响现有 SSH 连接,已放行 22 端口可继续)
  • 常用规则
    • Web 服务:sudo ufw allow 80/tcpsudo ufw allow 443/tcp
    • 仅允许指定来源访问某端口:sudo ufw allow from <IP/网段> to any port <端口>
    • 端口范围:sudo ufw allow 7100:7200/tcp
    • 查看状态:sudo ufw status verbose;临时关闭:sudo ufw disable
  • 启用 IPv6(如使用 IPv6)
    • 编辑 /etc/default/ufw,将 IPV6=yes,然后重启 UFW:sudo systemctl restart ufw
  • 说明
    • UFW 规则在启用后即为持久化,系统重启会自动加载。

三、使用 iptables 配置(传统方式)

  • 基本规则与持久化
    • 允许回环与已建立连接:sudo iptables -A INPUT -i lo -j ACCEPTsudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    • 放行 SSH/HTTP/HTTPSsudo iptables -A INPUT -p tcp --dport 22 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 80 -j ACCEPTsudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
    • 默认拒绝入站:sudo iptables -P INPUT DROP
    • 保存与恢复
      • Debian 10+/主流做法:sudo apt install iptables-persistent;安装时选择保存当前规则;后续可用 sudo netfilter-persistent savesudo netfilter-persistent start
      • 通用方式:sudo iptables-save > /etc/iptables/rules.v4;开机恢复:sudo iptables-restore < /etc/iptables/rules.v4
  • 提示
    • 远程操作务必先放行 22/TCP,再设置默认 DROP,避免断连。

四、使用 nftables 配置(现代方式)

  • 安装与基本规则
    • 安装:sudo apt update && sudo apt install nftables
    • 查看规则:sudo nft list ruleset
    • 放行 SSH/HTTP/HTTPS
      • sudo nft add rule ip filter input tcp dport 22 accept
      • sudo nft add rule ip filter input tcp dport 80 accept
      • sudo nft add rule ip filter input tcp dport 443 accept
    • 默认拒绝入站:sudo nft add rule ip filter input drop
  • 持久化
    • 保存:sudo nft list ruleset > /etc/nftables.conf
    • 恢复:sudo nft -f /etc/nftables.conf
  • 提示
    • 若系统启用了 nftables.service,请确保开机启用:sudo systemctl enable --now nftables

五、安全与运维要点

  • 变更前备份规则,变更后在测试环境验证;生产环境分阶段启用,避免一次性切断关键业务。
  • SSH 建议:启用密钥登录、禁用 root 远程登录、限制可登录用户或来源网段;在调整默认策略前务必放行 22/TCP
  • 按需开启日志与监控(如记录被拒绝的连接),并定期审查与更新规则,匹配业务与安全需求变化。

0