У меня есть следующие настройки:
- ПК eth0 подключен к GW eth1
- GW eth0 подключен к интернету.
GW имеет net.ipv4.ip_forward=1
в sysctl.conf
Итак, когда я просто запускаю (в GW):
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
ПК получает доступ в интернет. И когда я хочу отключить его, я просто запускаю (в GW):
itpables -t nat -F
Моя проблема с установленными соединениями, они не отменяются .. Пример:
- GW: запустить
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
- ПК: откройте http://ip-api.com/ в браузере
- GW: запустить
iptables -t nat -F
- ПК: обновить браузер -> страница обновляется !!
Если я попробую другую страницу на ПК, она не будет работать, но из-за функции HTTP Connection: Keep-Alive
браузер все равно сможет использовать это установленное соединение.
Я мог бы просто отключить net.ipv4.ip_forward
но я не хочу этого делать из-за остальной части моих настроек.
Поэтому я хотел бы, чтобы iptables (или linux NAT-модули) могли испортить отслеживание их соединений, чтобы эти соединения становились недействительными или сбрасывались ...
Или можно указать в правилах iptables, установлено if connection established before TIMESTAMP -j DROP
(чтобы я мог добавить это правило до MASQUERADE)?