Свои правила Iptables для VestaCP

Свои правила Iptables для VestaCP

Предисловие

Те кто использует VestaCP на своем сервере наверняка задавались вопросом как добавить свои правила IPTables в эту панель?

Проблема в том, что в самой панели нет возможности добавить сложные правила, можно добавлять лишь простые ACCEPT/DROP правила, которые каждый раз при сохранении настроек файрвола, автоматически перезаписывается и генерируется новый файл с правилами iptables.

То есть все добавленные нами вручную правила будут действовать до перезапуска сервера, либо до обновления файрвола. Наша задача внедрить свои правила.

Теория

Все созданные через панель правила записываются в файл rules.conf который располагается по адресу:

 /usr/local/vesta/data/firewall 

За обновление данных файрвола отвечает скрипт: v-update-firewall который располагается по адресу:

 /usr/local/vesta/bin 

Если его открыть и посмотреть, то можно найти следующие строки (128-131):

 # Checking custom trigger
if [ -x "$VESTA/data/firewall/custom.sh" ]; then
    bash $VESTA/data/firewall/custom.sh
fi

То есть скрипт проверяет наличие файла custom.sh в директории файрвола и если он там присутствует то выполняет его. Все добавленные в него правила автоматически сохраняются вместе с правилами добавленными через панель в iptables который располагается по адресу:

 /etc/sysconfig 

Настройка

  1. Заходим в директорию файрвола: /usr/local/vesta/data/firewall
  2. Создаем скрипт custom.sh.
  3. Добавляем все необходимые нам правила и сохраняем.
  4. Даем скрипту права на выполнение. chmod u+x /usr/local/vesta/data/firewall/custom.sh
  5. Выполняем от root команду: v-update-firewall

Вот и все.