在 Debian 上,iptables 可以很灵活地限制“访问”的含义,常见需求一般分为几类。下面按最常见场景给你示例配置(iptables 不是持久化的,重启会失效,下文也会讲如何保存)。
iptables -A INPUT -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -j DROP
意思是:
192.168.1.100 访问⚠️ 注意:这样会导致 SSH 也断掉,务必小心!
只允许指定 IP 登录 SSH(22):
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP
封禁某个 IP:
iptables -A INPUT -s 203.0.113.50 -j DROP
iptables -A OUTPUT -d 8.8.8.8 -j DROP
iptables -A OUTPUT -p tcp --dport 80 -j DROP
iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -j DROP
iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
-m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW \
-m recent --update --seconds 60 --hitcount 5 -j DROP
效果:
# 允许本地回环
iptables -A INPUT -i lo -j ACCEPT
# 允许已建立连接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许 SSH(按需改端口)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# 拒绝其余
iptables -A INPUT -j DROP
iptables 重启会消失,需要保存:
apt install iptables-persistent
保存:
iptables-save > /etc/iptables/rules.v4
iptables -L -n -v
iptables -F
iptables -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
如果你能说明以下任意一点,我可以给你精确规则:
直接说你的具体需求即可。