iptables - mata as conexões NAT estabelecidas

0

Eu tenho a seguinte configuração:

  • PC eth0 conectado a GW eth1
  • GW eth0 está conectado à internet.

GW tem net.ipv4.ip_forward=1 em sysctl.conf

Então, quando eu simplesmente corro (em GW ):

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

PC ganha acesso à Internet. E quando eu quero desativá-lo, eu corro (em GW ):

itpables -t nat -F

Meu problema é com conexões estabelecidas, elas não são canceladas .. Exemplo:

  • GW : execute iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
  • PC : abra o link no navegador
  • GW : execute iptables -t nat -F
  • PC : atualize o navegador - > página é atualizada !!

Se eu tentar uma página diferente em PC , não funciona, mas devido à funcionalidade Connection: Keep-Alive do HTTP, o navegador ainda pode usar essa conexão estabelecida.

Eu poderia simplesmente desabilitar net.ipv4.ip_forward , mas não quero fazer isso por causa do restante da minha configuração.
Então, o que eu gostaria é conseguir que o iptables (ou módulos NAT linux) atrapalhem o rastreamento de suas conexões para que essas conexões se tornem inválidas ou descartadas ...

Ou é possível especificar nas regras do iptables if connection established before TIMESTAMP -j DROP (para que eu possa adicionar essa regra antes do MASQUERADE)?

    
por Filipe Pina 25.02.2016 / 16:35

1 resposta

1

exemplo: iptables -A INPUT -p tcp -s 0/0 --sport 513: 65535 -d 202.54.1.20 --dport 22 -m state -state NOVO, ESTABELECIDO -m time --timestart 09:00 --timestop 18: 00 - dias seg, ter, qua, qui, sex -j ACEITAR

Então, se você adicionar -m time --timestart 09:00 --timestop 18:00 --days seg, ter, qua, qui, sex -j ACCEPT à sua regra, será sensível ao tempo.

Você precisará especificar outra regra para eliminar o tráfego 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
    
por 25.02.2016 / 23:32