iptables является системной утилитой, позволяющей контролировать возможные соединения. Чаще всего используется для разрешения или ограничения доступа к серверу с опредленных IP адресов или по определенным портам.
При помощи iptables можно настроить желаемые политики безопасности и гибко управлять трафиком (например, перенаправляя все запросы, поступающие на 80 и 443 порты на порт, на котором работает прокси-сервер в системе).
iptables не является службой и перезапустить iptables каким-либо образом нельзя, несмотря на то, что конструкции вида /etc/init.d/iptables restart встречаются во многих статьях.
Способы сохранения правил iptables после перезагрузки
iptables часто используется при настройке, среди прочего, OpenVPN и Squid. Для корректной работы пакетов необходимо обеспечить сохранение заданных правил после перезапуска системы. По умолчанию при перезапуске все правила iptables очищаются.
Существует два способа реализовать сохранение правил после перезагрузки:
- Первый способ универсален и будет работать на всех системах
Прежде всего сохраняем существующие правила в файл iptables-save > /tmp/iptables.txt
Затем открываем для редактирования файл с сетевыми настройками и в конец файла дописываем строку, которая будет обеспечивать восстановление правил при подъеме сетевого интерфейса
mcedit /etc/network/interfaces
pre-up iptables-restore < /tmp/iptables.txt
- Второй способ заключается в использовании специальной утилиты- iptables-persistent.
Она доступна для установки в стандартным репозиториях Debian, для других дистрибутивов утилита может быть недоступна
Устанавливается стандартным способом:
apt-get install iptables-persistent
Правила iptables необходимо создать, затем выполнить следующую команду
service iptables-persistent start
В возникшем диалоге будет задан вопрос относительно необходимости сохранения правил после перезагрузки, следует дать положительный ответ
iptables-persistent работает как демон и загружается при старте системы. Правила iptables после перезагрузки будут подгружаться автоматически.
Поскольку утилита является демоном — прекратить ее работу нельзя, однако можно очистить список правил
service iptables-persistent flush
На практике пользоваться можно любым из описанных способов, использование iptables-persistent во многом предпочтительнее и удобнее.