Просмотр Исходного

Иногда необходимо добавить свои правила файрвола для работы дополнительного софта или по иным причинам (например безопасность или особенности маршрутизации).

Это можно сделать следующим образом:

{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 абонента
* Добавить дополнительные правила фильтрации для подсети
* Сделать определённый IP неблокируемым по HTTPS или HTTP, даже если попадёт в списки для блокировки