1 votes

Comment modifier les adresses IP en fonction du temps à l'aide d'iptables ?

Je veux changer mes adresses IP en fonction du temps et non des urls. Voici ma règle iptable pour modifier les adresses IP que j'ai :

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

Le problème est qu'à chaque fois que je vérifie ipflag.com, je n'obtiens qu'une seule IP spécifique, ce que je ne veux pas. Je veux avoir une règle dans iptables pour qu'il change mon IP en fonction du temps, disons toutes les 5 minutes.

Est-il possible de le faire ?

2voto

Louis Gerbarg Points 33025

Le module de temps vous fournira une réponse proche de ce que vous souhaitez ; le module ci-dessous couvre la période de 2h00 à 6h00 tous les jours (lisez ce module pour plus d'informations, car il permet également de cibler un jour de la semaine) :

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

mais il vous faudrait créer de nombreuses règles pour atteindre votre exigence "toutes les 5 minutes".

Notez également qu'en raison de la façon dont le module de suivi des connexions fonctionne, une fois qu'une connexion est établie, elle est suivie (une entrée est ajoutée à la table conntrack) et elle le restera, quelles que soient les règles iptables de "correspondance temporelle" que vous proposez, jusqu'à ce qu'elle expire (dans le cas de UDP) ou qu'elle soit détruite (connexion TCP fermée/réinitialisée, etc.). Ainsi, même si vous changez d'adresse IP toutes les 5 minutes, si vous avez une connexion persistante qui reste ouverte à un pair, elle ne se terminera pas automatiquement et ne sera pas réinitialisée - elle restera établie sans interruption en utilisant l'adresse IP sur laquelle elle a été établie en premier lieu (via vos règles iptables de "correspondance temporelle"). Pour forcer la réinitialisation d'une connexion, en la déplaçant sur une nouvelle IP, vous devriez également commencer à utiliser les règles suivantes conntrack (qui fait partie de la conntrack-tools RPM) pour réinitialiser activement toutes ou certaines des connexions que vous souhaitez transférer vers votre nouvelle adresse IP. Vous pouvez utiliser une entrée crontab pour y parvenir, en exécutant quelque chose comme ceci toutes les 5 minutes :

/usr/sbin/conntrack -D -s 192.168.0.128

pour réinitialiser toutes les connexions suivies provenant de l'hôte 192.168.0.128 (exécutez avec seulement le -D pour effectuer une réinitialisation complète de toutes les connexions suivies).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X