Назад | Перейти на главную страницу

Управляйте несколькими файлами iptables с помощью правил

Мой вариант использования заключается в том, что я развертываю серверы Arch-Linux с различными службами, работающими в зависимости от требований заказчика. Эти службы зависят от приложения и работают на пользовательских портах, но в качестве аргумента можно указать, что можно использовать FTP, WEB и WEB SSL. В любом сочетании.

Для каждой службы у меня есть специальный пакет, который устанавливает эту конкретную службу, и, чтобы упростить задачу, я хотел бы, чтобы пакет также устанавливал правило iptables, позволяющее использовать службу.

Итак, по умолчанию я хочу иметь правило, запрещающее все, кроме SSH. Затем, когда я устанавливаю, например, WEB-пакет, я хочу, чтобы этот пакет установил файл, содержащий правило для открытия порта 80. Порт 21 FTP-пакета и так далее.

Однако я могу видеть только то, что iptables имеет встроенную поддержку всего одного файла с помощью утилит iptables-restore / save.

Я мог бы написать свою собственную утилиту, которая читает несколько файлов и вручную взаимодействует с iptables. Но я считаю, что это должен быть «достаточно распространенный» вариант использования и что такая утилита обязательно должна существовать. Однако на этот раз мои навыки работы с Google не пошли мне на пользу :)

По сути, я хочу иметь папку, скажем /etc/iptables.d, в которой я могу размещать файлы 15-http, 10-ftp, 20-ssl. и т.д., где файлы и правила применяются в соответствии с номером в имени файла.

Вы можете установить ufw на ваших устройствах. Он поддерживает определение приложений через файлы конфигурации (вы указываете ему, какие порты открывать в файле), а затем вы можете включить их (сделать так, чтобы брандмауэр принял это во внимание), запустив команду.

Сделайте ваши пакеты зависимыми от ufw, перетащите файл в /etc/ufw/applications.d а затем с помощью запуска после установки ufw allow <app name> чтобы включить правила.

Shorewall кажется еще более продвинутым интерфейсом для IPtables, и я уверен, что он поддержит то, что вы пытаетесь сделать. Я рекомендую вам ознакомиться с его документацией и посмотреть, подойдет ли он лучше.