Иногда необходимо добавить дополнительные свои правила файрвола для работы дополнительного софта или по иным причинам (например безопасность или особенности маршрутизации).
|
Это можно сделать следующим образом:
|
... {code} touch /app/reductor/cfg/userinfo/hooks/reductor_firewall.sh chmod a+x /app/reductor/cfg/userinfo/hooks/reductor_firewall.sh vim /app/reductor/cfg/userinfo/hooks/reductor_firewall.sh
|
{code}
|
и туда просто пишите любые нужные вам правила внутрь проверки того что хук вызвался при старте.
|
В хук пишем любые нужные Вам правила внутрь проверки того что хук вызвался при старте.
|
Вместо vim можете использовать любой удобный Вам редактор.
|
Этот скрипт будет вызываться после старта файрвола Carbon Reductor.
|
Стоит учитывать, что в цепочках уже есть правила.
|
... iptables \-A добавляет в конец цепочки, iptables \-I в начало. Синтаксис отличается от того что в /etc/sysconfig/iptables, это просто bash скрипт в который вы помещаете команды, например: {code} #!/bin/bash if [ "$1" = 'start' ]; then iptables -A reductor_input -p tcp --dport 80 -i eth0 -j DROP iptables -A reductor_input -p tcp --dport 80 -i eth0.144 -j ACCEPT fi {code} за удаление правил не беспокойтесь, их редуктор при рестарте удалит сам (он чистит свои цепочки). Стандартные цепочки не очищаются. h1. Примеры h2. Разрешить доступ к порту (на примере zabbix-agent): 1. Заходим по SSH на сервер с Carbon Reductor. 2. Создаём файл {code} /app/reductor/cfg/userinfo/hooks/reductor_firewall.sh {code} С содержимым (обязательно укажите значение переменной $ZABBIX_SERVER_IP): {code} #!/bin/bash if [ "${1:-}" = 'start' ]; then ZABBIX_SERVER_IP=127.0.0.1 echo "Разрешаем подключения к zabbix-agent с $ZABBIX_SERVER_IP" iptables -A reductor_input -m state --state NEW -s "$ZABBIX_SERVER_IP" -m tcp -p tcp --dport 10050 -j ACCEPT || true fi {code} 3. Делаем его исполняемым: {code} chmod a+x /app/reductor/cfg/userinfo/hooks/reductor_firewall.sh {code} 4. Применяем: {code} chroot /app/reductor/ /usr/local/bin/reductor_firewall.sh --start {code} h2. Разрешить доступ к порту для определённого IP h2. Разрешить доступ к порту для определённого списка IP h2. Добавить NAT для конкретного IP h2. Что можно делать без хуков * Отключить фильтрацию для конкретного IP абонента * Добавить дополнительные правила фильтрации для подсети * Сделать определённый IP неблокируемым по HTTPS или HTTP, даже если попадёт в списки для блокировки
|