Ответы:
В iptables нет опции, которая сделает ваши правила постоянными. Но вы можете использовать iptables-save
и iptables-restore
для выполнения своей задачи.
Сначала добавьте правило iptable, используя указанную вами команду.
Затем сохраните правила iptables в некоторый файл, например, /etc/iptables.conf
используя следующую команду:
$ iptables-save > /etc/iptables.conf
Добавьте следующую команду, /etc/rc.local
чтобы перезагрузить правила при каждой перезагрузке.
$ iptables-restore < /etc/iptables.conf
rc.local
так как между запуском сервисов и политикой брандмауэра будет разрыв в открытом окне. Я предпочитаю использовать pre-up
крюк для петлевого интерфейса в , /etc/network/interfaces
чтобы преодолеть это.
rc.local
может иметь ожидаемый эффект, но в этой ситуации это является препятствием.
(Потому что было предложено сделать это своим собственным ответом ...)
На Debian установить iptables-persistent
.
Пакет автоматически загрузится /etc/iptables/rules
для вас во время загрузки.
Каждый раз, когда вы изменяете свои правила, запускайте их, /sbin/iptables-save > /etc/iptables/rules
чтобы сохранить. Вы также можете добавить это к последовательности выключения, если хотите.
/etc/iptables/rules.v4
и /etc/iptables/rules.v6
для IPv4 и IPv6 соответственно. Если вы хотите, чтобы таблица применялась к обоим видам соединений, вы должны сохранить ее в обоих файлах правил.
После установки iptables-persistent
выше вы также можете сохранить правила с помощью следующей более короткой команды в Ubuntu 16.04+:
sudo netfilter-persistent save
И они также могут быть возвращены к тому, какими они были в прошлый раз, когда вы их сохранили:
sudo netfilter-persistent reload
iptables-persistent
пакет, который сделает это.