Como gerenciar endereços IP com base no tempo usando iptables

1

Eu quero alterar meus endereços IP com base no tempo e não nos URLs. A seguir está minha regra de iptable para gerenciar os IPs que tenho:

sudo iptables -t nat -A POSTROUTING -o em1 -p tcp --dport 80 -j SNAT \
              --to x.x.x.118-y.y.y.128

O problema é que toda vez que eu verifico ipflag.com eu só recebo um ip específico que eu não quero que seja assim eu quero ter uma regra no iptables então ele mudaria meu IP com base no tempo, digamos a cada 5 min.

É possível fazer isso?

    
por austinpowers 03.06.2016 / 14:03

1 resposta

2

O módulo de horário entregará perto do que você está querendo; o abaixo cobre de 2:00 às 6:00 da manhã todos os dias (leia este módulo para obter mais informações, pois ele também permite a segmentação por dia da semana):

-m time --timestart 02:00 --timestop 06:00

mas você precisaria criar muitas regras para atingir seu requisito "a cada 5 minutos".

Observe também que, devido à maneira como o módulo de rastreamento de conexão funciona, uma vez estabelecida a conexão, ela é rastreada (uma entrada é adicionada à tabela conntrack) e permanecerá assim, independentemente do que o iptables "time matching" regras que você propõe para isso, até que ele expire (no caso de UDP) ou seja demolido (conexão TCP fechada / reinicializada etc). Assim, mesmo que você tenha girado para um endereço IP diferente a cada 5 minutos, se você tiver uma conexão persistente que permaneça aberta a um peer, que não será automaticamente encerrada e redefinida, ela permanecerá estabelecida sem interrupção usando o endereço IP (via suas regras "time matching" do iptables). Para forçar uma redefinição de conexão, movendo-a para um novo IP, você também teria que começar a usar conntrack (parte do pacote conntrack-tools RPM) para redefinir ativamente todas ou algumas das conexões para as quais deseja mover seu novo endereço IP. Você poderia fazer uma entrada crontab para conseguir isso, executando algo assim a cada 5 minutos:

/usr/sbin/conntrack -D -s 192.168.0.128

para redefinir todas as conexões que estão sendo rastreadas, originadas do host 192.168.0.128 (executado apenas com o -D para executar uma reinicialização geral completa de todas as conexões rastreadas).

    
por 03.06.2016 / 15:44

Tags