Debian Minimal 防火墙配置指南
一 工具选择与适用场景
二 方案一 UFW 快速启用
sudo apt update
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw enable
sudo ufw allow 22/tcp # SSH(如已改端口,请替换为实际端口)
sudo ufw allow 80,443/tcp # HTTP/HTTPS
sudo ufw allow 3000:3100/tcp # 端口范围
sudo ufw allow from 192.168.1.100 to any port 22 # 仅允许指定 IP 访问 SSH
sudo ufw status verbose # 查看状态与规则
sudo ufw delete allow 80/tcp # 删除规则
sudo ufw logging on # 开启日志
三 方案二 iptables 手工规则与持久化
sudo apt update
sudo apt install -y iptables
# 允许回环
sudo iptables -A INPUT -i lo -j ACCEPT
# 允许已建立和相关连接
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# 按需放行
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# 可选:允许 Ping
sudo iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT
# 默认拒绝入站(谨慎:确保已放行 SSH,或先本地/控制台操作)
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
# 保存当前规则
sudo apt install -y iptables-persistent
# 安装过程中选择“是”保存当前规则;后续可用:
sudo netfilter-persistent save
sudo netfilter-persistent restart
四 方案三 nftables 现代替代方案
sudo apt update
sudo apt install -y nftables
sudo systemctl enable --now nftables
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif "lo" accept
ct state established,related accept
tcp dport { 22, 80, 443 } accept
icmp type echo-request accept
}
chain forward { type filter hook forward priority 0; policy drop; }
chain output { type filter hook output priority 0; policy accept; }
}
sudo nft list ruleset > /etc/nftables.conf
# 重启后自动加载;如需立即生效:
sudo nft -f /etc/nftables.conf
五 安全加固与运维要点