Предисловие
Те кто использует 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
Настройка
- Заходим в директорию файрвола: /usr/local/vesta/data/firewall
- Создаем скрипт custom.sh.
- Добавляем все необходимые нам правила и сохраняем.
- Даем скрипту права на выполнение. chmod u+x /usr/local/vesta/data/firewall/custom.sh
- Выполняем от root команду: v-update-firewall
Вот и все.