在 Debian 系统里配置防火墙,主流方案主要有两种:一种是经典的 iptables,功能强大且灵活可控,适合进阶用户;另一种是 ufw,操作简单直接、上手迅速,适合新手快速搭建。下面将详细拆解这两种 Debian 防火墙配置方法,你可根据实际需求选择。
手动配置 iptables 防火墙规则(Debian)
首先对系统进行升级,这是所有安全配置的基础步骤。
sudo apt update && sudo apt upgrade
如果系统尚未安装 iptables,执行以下命令安装:
sudo apt install iptables
**设定默认策略**:通常,防火墙安全策略的起点是“默认拒绝”,即仅放行明确允许的流量,其他全部拦截。以下配置思路为:入站流量默认丢弃,转发流量默认丢弃,出站流量默认允许。
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
**接下来,手动开放几个常用端口,允许必要的服务流量通行。**
- 允许 SSH 连接(假设 SSH 端口为 22):
sudo iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
- 允许 HTTP 和 HTTPS 流量(即端口 80 和 443):
sudo iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
- 允许 DNS 查询(UDP 端口 53):
sudo iptables -A INPUT -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
**必须注意**:Debian 系统默认不会自动保存 iptables 规则,重启后规则会丢失。因此需要手动保存。
sudo sh -c "iptables-sa ve > /etc/iptables/rules.v4"
随后创建一个 systemd 服务,使其在系统启动时自动加载这些防火墙规则。
sudo nano /etc/systemd/system/iptables-restore.service
在该文件中写入以下内容:
[Unit]
Description=Restore IPTables rules
After=network.target
[Service]
Type=oneshot
ExecStart=/sbin/iptables-restore < /etc/iptables/rules.v4
[Install]
WantedBy=multi-user.target
最后启用并启动该服务:
sudo systemctl enable iptables-restore
sudo systemctl start iptables-restore
用 ufw 快速配置 Debian 防火墙
如果你不想手动编写复杂的 iptables 规则,ufw 是当前最友好的防火墙工具。先安装:
sudo apt install ufw
然后直接启用防火墙:
sudo ufw enable
接下来配置几条基本规则,操作非常简单,只需指定允许的端口即可:
- 允许 SSH 连接(端口 22):
sudo ufw allow 22/tcp
- 允许 HTTP 和 HTTPS 连接(端口 80 和 443):
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
- 允许 DNS 查询(UDP 端口 53):
sudo ufw allow 53/udp
当然,如需随时查看当前规则,执行:
sudo ufw status
如果后续需要临时关闭防火墙,也很简单:
sudo ufw disable
通过以上步骤,无论你选择哪种方式,都能在 Debian 系统中成功配置防火墙,有效降低被攻击的风险。最后提醒:定期更新系统及防火墙规则,才是保障长期安全的关键。
