Я использую экземпляр Amazon EC2, который работает через Ubuntu. По умолчанию в соответствии с ограничениями безопасности я не могу привязать свое приложение к порту 80, поэтому я просто привязываю его к порту 8080, а затем устанавливаю перенаправление маршрутизации с порта 80 на 8080 с помощью следующей команды:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to 8080
Но я обнаружил, что когда я перезагружаю сервер, эти настройки больше не активны, пока я не вызову эту команду снова.
Итак, мой вопрос, как включить работу перенаправления порта, даже если система была перезагружена?
Вместо этого используйте команду iptables-save. Правила брандмауэра никогда не должны входить в скрипт rc.local. rc.local - последнее, что нужно выполнить. Если правило блокировки было помещено в rc.local, существует небольшой промежуток времени, в течение которого злоумышленник может использовать правило, отсутствующее на месте. Хотя в этой ситуации это, вероятно, не имеет значения, все же лучше не впадать в вредную привычку, которая может укусить вас позже.
источник
iptables-save > some-file-path
сохраняет правила, и тогда вы бы восстановить их с помощьюiptables-restore < some-file-path
вrc.local
. Или установите,iptables-persistent
который делает это во время загрузки в качестве службы.Вот как нас учит официальная документация ipttable. Глянь сюда
Добавьте эти две строки в / etc / network / interfaces:
pre-up iptables-restore < /etc/iptables.rules post-down iptables-save > /etc/iptables.rules
Строка «post-down iptables-save> /etc/iptables.rules» сохранит правила, которые будут использоваться при следующей загрузке.
источник
Я обнаружил набор каталогов в Ubuntu 16.04, в
/etc/network
которых будут запускаться сценарии в разное время во время инициализации и завершения работы сети:Итак, я обнаружил, что могу вывести конфигурацию как обычно:
Затем я создал файл `/etc/network/if-pre-up.d/restore:
... и пометил его исполняемым
источник