在 Debian 系统中,iptables 是 Linux 内核防火墙工具,用于 过滤网络流量、控制端口访问、防止攻击。下面从 基础 → 常用规则 → 安全加固 → 持久化 给你一个完整实用的安全配置指南。
iptables 由 表(table)+ 链(chain)+ 规则(rule) 组成:
| 表名 | 作用 |
|---|---|
| filter | 默认表,负责过滤(最常用) |
| nat | 网络地址转换(端口映射、NAT) |
| mangle | 修改数据包 |
| raw | 连接跟踪 |
| 链 | 说明 |
|---|---|
| INPUT | 进入本机的数据包 |
| OUTPUT | 本机发出的数据包 |
| FORWARD | 转发的数据包 |
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
含义:
⚠️ 注意:执行前确保你有 SSH 白名单,否则会被踢出服务器!
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
✅ 防止 SSH、HTTP 等连接被中断
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 20 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -L -n -v
iptables -F
iptables -X
Debian 重启后 iptables 会丢失。
apt update
apt install iptables-persistent
保存规则:
netfilter-persistent save
规则保存在:
/etc/iptables/rules.v4
/etc/iptables/rules.v6
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# SSH(改成你的 IP)
iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
# Web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
❌ 不能防:
✅ 建议配合:
nftables(Debian 10+ 推荐)ufw(新手友好)如果你愿意,我可以:
只要告诉我你的 Debian 版本 + 用途(服务器/桌面) 即可。