Как сохранить правила iptables?
Я создаю правила для iptables. Но когда я перезагружаю компьютер, правила не работают! Как сохранить правила на Ubuntu?
Проблема была решена!
делать:
После записи команды iptables выполните:
1. sudo su
2. iptables-save > /etc/iptables.rules
3. In /etc/network/if-pre-up.d/iptables,put:
#!/bin/sh
iptables-restore < /etc/iptables.rules
exit 0
4. After, in /etc/network/if-post-down.d/iptables,put:
#!/bin/sh
iptables-save -c > /etc/iptables.rules
if [ -f /etc/iptables.rules ]; then
iptables-restore < /etc/iptables.rules
fi
exit 0
5. After, give permission to the scripts:
sudo chmod +x /etc/network/if-post-down.d/iptables
sudo chmod +x /etc/network/if-pre-up.d/iptables
Дополнительная информация: https://help.ubuntu.com/community/IptablesHowTo Удачи!
2 ответа
Самый простой способ - использовать iptables-persistent
,
устанавливать iptables-persistent
:
sudo apt-get install iptables-persistent
После установки вы можете в любое время сохранить / перезагрузить правила iptables:
sudo /etc/init.d/iptables-persistent save
sudo /etc/init.d/iptables-persistent reload
Ubuntu 16.04 Server
Установка, как описано выше, работает без проблем, но две команды для сохранения и перезагрузки выше, похоже, не работают с сервером 16.04. Следующие команды работают с этой версией:
sudo netfilter-persistent save
sudo netfilter-persistent reload
Общий способ сохранения правил iptables - использовать команду iptables-save, которая записывает в stdout.
iptables-save > /etc/network/iptables.rules
Выходные данные, созданные с помощью iptables-save, можно затем прочитать в stdin с помощью iptables-restore. Если на сервере без NetworkManager, общий подход состоит в том, чтобы использовать предварительную команду в /etc/network/interfaces.
iface eth0 inet static
....
pre-up iptables-restore < /etc/network/iptables.rules
Если вы используете NetworkManager, должна быть возможность выполнить ту же команду из сценария, созданного в /etc/NetworkManager/dispatcher.d/. В документации сообщества - iptables howto, см. Конфигурация при запуске для NetworkManager для получения дополнительной информации.
Обратите внимание, что команды iptables, iptables-save и iptables-restore являются только IPv4. Для трафика IPv6 эквивалентными командами являются ip6tables, ip6tables-save и ip6tables-restore.