Дополнительные настройки. hooks. Хуки. Свои правила в firewall

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (34)

просмотр истории страницы
При запуске и остановке служб на сервере вызываются скрипты /app/*/cfg/hooks с параметрами, сообщающими о том, какая служба была запущена или остановлена.
{toc}

Таким образом для каждого сервиса можно делать свои дополнительные настройки.
h1. Назначение скриптов hooks

Первый параметр - служба, второй 'start' или 'stop', третий параметр - код возврата от службы.
Скрипты *hooks* позволяют выполнять какие-либо действия при запуске и остановке служб (демонов в терминологии Unix).
Например, таким образом можно добавить собственные правила IPTABLES.

При помощи файлов /app/*/cfg/hooks можно делать нестандартные настройки сервера.
h1. Добавление правил

h2. В этом разделе приводятся примеры таких скриптов.
Скрипт *hooks* написан на языке Bash. Изменения вносятся в середину скрипта, первую и последнюю строки оставьте неизменными. В общем виде скрипт должен выглядеть так:


Отредактировать файл можно следуя инструкциям из этой статьи.

Изменения вносятся в середину скрипта, первую и последнюю строки оставьте неизменными. В общем виде скрипт должен выглядеть так.

{code}
#!/bin/bash
exit 0
{code}
Первый параметр - служба, второй 'start' или 'stop', третий параметр - код возврата от службы.

Например, разрешим доступ на порты пассивного режима ftp-сервера биллинга:
{code}
{code}

После редактирования скрипта нужно перезапустить соответствующий контейнер:

Например:
{code}/app/base/service restart{code}

h2. Что для чего

{Warning}
*Внимание*: При изменении кастомных цепочек *asr_billing*_input правила необходимо добавлять в hook контейнера *asr_billing*, если цепочка *asr_cabinet*_input - добавлять в hooks *asr_cabinet* и т.п. Изменять *базовые* цепочки(INPUT,OUTPUT,PREROUTING и т.д.) запрещено.
При изменении кастомных цепочек *asr_billing*_input правила необходимо добавлять в hook контейнера *asr_billing*, если цепочка *asr_cabinet*_input - добавлять в hooks *asr_cabinet* и т.п. Изменение *базовых * цепочек (INPUT,OUTPUT,PREROUTING и т.д.) гарантированно нарушит связь контейнеров, а следовательно всей системы.
{Warning}

Скрипты находятся в разных контейнерах, которые имеют разные задачи:
Необходимые правила IPTABLES и прочие действия необходимо описывать в хуках соответствующих [контейнеров|CarbonBaseSystem:Контейнеры с приложениями]

1) base - отвечает за базовые настройки в биллинге.
h3. auth
Базовый интерфейс авторизации в платформе, других функций нет.
Скрипт */app/base/cfg/hooks*
iptables-цепочки: base_input и base_output
iptables-цепочки: *auth_input* и *auth_output*

h3. base
Отображает интерфейс перехода в другие контейнеры, к настройкам других контейнеров и настройки доступа к серверу в целом.
Скрипт */app/base/cfg/hooks*
iptables-цепочки: *base_input* и *base_output*
Обычно используется для предоставления доступа к к веб-интерфейсу управления, но правильнее использовать соответствующее поле в [веб-интерфейсе|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=48693373]

2) asr_fiscal - отвечает за взаимодействие с платежными системами:
h3. asr_billing
Управлениие абонентами и тарифами.
Скрипт /app/asr_fiscal/cfg/hooks /app/asr_billing/cfg/hooks
iptables-цепочки: asr_fiscal_input и asr_fiscal_output
Обычно используется для предоставления доступа платежных систем к биллингу, но правильнее использовать соответствующее поле в [веб-интерфейсе Шаг 4|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=49087129]
iptables-цепочки: asr_billing_input и asr_billing_output

3) asr_cabinet - отвечает за функционирование локального сайта и личного кабинета
h3. asr_cabinet
Содержит локальный сайт и личный кабинет.
Скрипт /app/asr_cabinet/cfg/hooks
iptables-цепочки: asr_cabinet_input и asr_cabinet_output
Обычно используется для предоставления доступа к локальному сайту и личному кабинету. По умолчанию доступ предоставлен всем.

4) monitoring - отвечает за функционирование систем мониторинга, в частности Zabbix.
h3. asr_fiscal
Содержит модули взаимодействия с платежными системами.
Скрипт /app/asr_fiscal/cfg/hooks
iptables-цепочки: *asr_fiscal_input* и *asr_fiscal_output*
Обычно используется для предоставления доступа платежных систем к биллингу, но правильнее использовать соответствующее поле в [веб-интерфейсе Шаг 4|http://docs.carbonsoft.ru/pages/viewpage.action?pageId=49087129]

h3. collector
Система сбора статистики (Netflow) и DHCP-сервер.
Скрипт /app/collector/cfg/hooks
iptables-цепочки: collector_input и collector_output

h3. monitoring
Система мониторинга Zabbix.
Скрипт /app/monitoring/cfg/hooks
iptables-цепочки: monitoring_input и monitoring_output
Обычно используется для предоставления доступа к ZABBIX.

h2. Использование скрипта hooks по расписанию

После редактирования скрипта нужно перезапустить соответствующий контейнер:

Например /app/base/service restart

h2. Автоматизированное использование

Ничто не мешает использовать hooks с помощью cron. Таким образом вы можете выполнять некие команды не при наступлении какого-то события, а в нужное вам время.

10 */2 * * *  root /cfg/hooks /etc/init.d/networkd start 1>/dev/null 2>/dev/null
{code}

h2. Отладка добавления правил IPTABLES
# Проверьте что правило добавляется из командной строки до того как добавлять его в скрипт hooks
# Если произошла ошибка добавления правила, информацию о ней можно попробовать найти в логе */var/log/messages* (или выполнив команду *dmesg*)