Назад | Перейти на главную страницу

Как изменить IP-адреса в зависимости от времени с помощью iptables

Я хочу изменить свои IP-адреса в зависимости от времени, а не URL-адресов. Ниже приведено мое правило iptable для искажения IP-адресов, которые у меня есть:

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

Проблема в том, что каждый раз, когда я проверяю ipflag.com, я получаю только один конкретный IP-адрес, который я не хочу, чтобы он был похож на то, что я хочу иметь правило в iptables, чтобы оно меняло мой IP-адрес в зависимости от времени, скажем, каждые 5 минут.

Возможно ли это сделать?

Модуль времени будет соответствовать тому, что вы хотите; ниже приведены данные с 2:00 до 6:00 каждый день (прочтите этот модуль для получения дополнительной информации, так как он также позволяет настраивать таргетинг на каждый день недели):

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

но вам нужно будет создать множество правил, чтобы выполнить требование «каждые 5 минут».

Также обратите внимание, что из-за того, как работает модуль отслеживания соединений, после того, как соединение установлено, оно становится отслеживаемым (запись добавляется в таблицу conntrack), и оно останется таким, независимо от того, какие правила iptables "согласования времени" вы используете. вверх с помощью для этого, пока он не истечет (в случае UDP) или не будет разорван (соединение TCP закрыто / сброс и т. д.). Таким образом, даже если вы переходите на другой IP-адрес каждые 5 минут, если у вас есть постоянное соединение, которое остается открытым для однорангового узла, оно не будет автоматически завершаться и сбрасываться - оно будет оставаться установленным без прерывания с использованием IP-адреса, с которым оно было впервые сопоставлено. (с помощью правил "согласования времени" в iptables). Чтобы принудительно сбросить соединение, переместив его на новый IP-адрес, вам также нужно будет начать использовать conntrack (часть conntrack-tools RPM package) для активного сброса всех или некоторых соединений, которые вы хотите перенести на ваш новый IP-адрес. Для этого вы можете сделать запись в crontab, выполняя что-то вроде этого каждые 5 минут:

/usr/sbin/conntrack -D -s 192.168.0.128

для сброса всех отслеживаемых подключений, исходящих от хоста 192.168.0.128 (запускается только с -D для выполнения полного сброса всех отслеживаемых подключений).