Я зарегистрировался в домене dyndns, чтобы мой динамически изменяющийся публичный IP-адрес использовался с правилами iptable. На сервере я разрешил некоторые порты для этого домена в конфигурации iptables, как показано ниже:
-A INPUT -s mycompany.dyndns.com -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -s mycompany.dyndns.com -p tcp -m tcp --dport 3306 -j ACCEPT
-A INPUT -s mycompany.dyndns.com -p tcp -m tcp --dport 21 -j ACCEPT
Но когда мой модем перезагружается, я не могу подключиться к этим разрешенным портам при изменении публичного IP с перезагрузкой модема и не обновляются в iptables на сервере. Есть ли возможность автоматически обновлять правила iptable на сервере.
http://wjoseph.com/?p=20 Вот сообщение в блоге со ссылкой на скрипт, который принимает хост или файл со списком хостов в качестве аргумента, добавляет правила к iptables для каждого хоста для выбранных портов, затем добавляет задание cron, которое периодически проверяет изменения IP хоста.
Короче говоря: нет, единственный способ обновить правило iptables
- это заменить его (iptales -R ...
) или удалить его и добавить новый с обновленным IP-адресом (iptables -D ...
, за которым следует iptables -A ...
. ).
В этом посте обсуждается проблема и намечается решение.
Но когда мой модем перезагружался, я не мог подключиться к этим разрешенным портам, так как общедоступный IP> изменяется при перезапуске модема и не обновляется в iptables на сервере.
Даже если вы применяете правила с доменным именем, iptables будет разрешать общедоступный IP-адрес данного домена в этот момент и применять правила с этим общедоступным IP-адресом. Таким образом, с каждым перезапуском модема или истечением срока аренды IP-адреса провайдера вам необходимо обновить iptables с помощью недавно выделенного общедоступного IP-адреса.
Если вы укажете правила iptables, это может сбить с толку, так как вы увидите правила, которые вы применили с точным доменным именем.
iptables -L
Для большей ясности сохраните правила iptables в один файл и проверьте. Вы можете найти разрешенный IP-адрес вашего домена вместо имени домена.
iptables-save > /tmp/iptables.rules