iptables-终止已建立的 NAT 连接

iptables-终止已建立的 NAT 连接

我有以下设置:

  • 个人电脑 eth0连接至毛里求斯 eth1
  • 毛里求斯 eth0已连接至互联网。

毛里求斯net.ipv4.ip_forward=1系统配置参数

因此,当我简单地运行(在毛里求斯):

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

个人电脑获得互联网访问权限。当我想禁用它时,我只需运行(在毛里求斯):

itpables -t nat -F

我的问题是已建立的连接,它们没有被取消..例如:

  • 毛里求斯: 跑步iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
  • 个人电脑: 打开http://ip-api.com/在浏览器中
  • 毛里求斯: 跑步iptables -t nat -F
  • 个人电脑:刷新浏览器 ->页面已刷新!!

如果我尝试不同的页面个人电脑它不起作用,但由于 HTTPConnection: Keep-Alive功能,浏览器仍然可以使用已建立的连接。

我可以简单地禁用它net.ipv4.ip_forward,但由于我的其他设置,我不想这样做。
所以我想让 iptables(或 linux NAT 模块)扰乱它们的连接跟踪,使这些连接变得无效或被丢弃...

或者是否可以在 iptables 规则中指定if connection established before TIMESTAMP -j DROP(这样我可以在 MASQUERADE 之前添加该规则)?

答案1

例如:iptables -A INPUT -p tcp -s 0/0 --sport 513:65535 -d 202.54.1.20 --dport 22 -m state --state NEW,ESTABLISHED -m time --timestart 09:00 --timestop 18:00 --days Mon,Tue,Wed,Thu,Fri -j ACCEPT

因此如果你添加 -m 时间 --timestart 09:00 --timestop 18:00 --days 周一、周二、周三、周四、周五 -j 接受 根据你的规则,它将具有时间敏感性。

您将需要指定另一条规则来终止 RELATED、ESTABLISHED 流量。

iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE -m time --timestart 09:00 --timestop 18:00 --days Mon,Tue,Wed,Thu,Fri -j ACCEPT
#if it not between these times the next rule will drop the traffic
iptables -t nat -I POSTROUTING -o eth0 -j DROP
iptables -A INPUT -m conntrack -j ACCEPT  --ctstate RELATED,ESTABLISHED -m time --timestart 09:00 --timestop 18:00 --days Mon,Tue,Wed,Thu,Fri -j ACCEPT
iptables -A INPUT -m conntrack -j DROP  --ctstate RELATED,ESTABLISHED

相关内容