=====shaper_start.sh===== Программа для инициализации шейпера и управления фаерволом для OS FreeBSD Установка # cp /usr/abills/misc/freebsd/shaper_start.sh /usr/local/etc/rc.d/ **аргументы программы **\\ |start [test]| включить шейпер | |stop [test] | Отключить шейпер | |test | Включить шейпер на 10 минут. Сделано с целью тестирования и предотвращения блокировки сервера | **Список rc.conf параметров для шейпера** ^abills_shaper_enable="YES" | Включить шейпер. При включении шейпера удаляются все поточные настройки фаервола и устанавливаются только те которые прописаны для shaper_start.sh. \\ Если нужно добавить дополнительные параметры их стоит внести в файл [[#vnesenie_dopolnitelnyx_pravil_v_faervol|/etc/fw.conf]] | ^abills_shaper_if="em0" | интерфейс шейпера (по умолчанию ng* ) | ^abills_nas_id="" | ID сервера доступа (по умолчанию 1 ) ^abills_ip_sessions="" | лимитирование количества IP сеcсий для клиента | ^abills_nat="EXTERNAL_IP:INTERNAL_IPS,INTERNAL_IPS2:NAT_IF" | Включение NAT \\ \\ ** EXTERNAL_IP** - IP адрес интерфейса смотрящего в интернет. Если параметр не указан система автоматически первый адрес с интерфейса маршрутизации по умолчанию \\ **INTERNAL_IPS** - Пул адресов которым разрешён доступ в интернет \\ **INTERNAL_IPS2** - Второй пул адресов которым разрешён доступ в интернет \\ **NAT_IF** - имя интерфейса смотрящего в интернет. Если параметр не указан система автоматически определяет интерфейс маршрутизации по умолчанию. Можно указать несколько правил для трансляции во внешний адрес через точку с запятой '';'' | ^abills_dhcp_shaper="" | Включить IPoE шейпер. Тольк если у ВАс установлен модуль FreeRADIUS DHCP | ^abills_neg_deposit="" | Включение пере направления на портал при израсходовано депозите | ^abills_portal_ip="me" | IP адрес портала. По умолчанию me | ^abills_mikrotik_shaper="" | поднятие правил шейпера на Mikrotik серверах доступа, аргумент номера серверов доступа | ^abills_ipn_nas_id="1" | Номер IPN сервера доступа | ^abills_ipn_if="" | Интерфейс для IPN шейпера | ^abills_ipn_allow_ip="" | список адресов разрешенных без авторизации | ^abills_squid_redirect="YES" | Включение перенаправления на прокси сервер все трафика в 40 таблице. \\ Для работы с перенаправления пользователей нужно указать в фильтре тарифного плана или в фильтре учётной записи занесение IP в 40 таблицу. \\ **настройка squid версии 2.6 и выше:** \\ squid.conf \\ http_port 192.168.0.1:3128 transparent | **Шейпер ng_car**\\ При использовании шейпера ng_car в abills/libexec/config.pl добавте $conf{ng_car}=1; \\ **Шейпер DUMMYNET**\\ При использовании шейпера DUMMYNET в abills/libexec/config.pl ничего добавлять не надо \\ \\ ====Дополнительные параметры==== ===2 внешних канала=== GW2_IF_IP="192.168.0.2" # IP адрес второго интерфейса смотрящего в интернет GW2_IP="192.168.0.1" # IP адрес второго шлюза GW2_REDIRECT_IPS="10.0.0.0/24" # Пул адресов которым разрешён доступ в интернет по второму каналу ====Внесение дополнительных правил в фаервол==== Для внесения дополнительных правил в фаервол нужно занести в их в файл **/etc/fw.conf** и прописать в **/etc/rc.conf**. Дополнительные правила берутся исключительно с файла **/etc/fw.conf** firewall_type="/etc/fw.conf" Правила вносятся в таком формате add 10 allow ip from any to 10.0.0.1 via em0 add 12 allow ip from 10.0.0.1 to any via em0 ====NAT==== для работы NAT необходимо [[abills:docs:freebsd_core|скомпилировать ядро системы]] с опцией : options IPFIREWALL_NAT Таблици NAT ^33| Таблица с исходящими IP адреса | ^34| Таблица с внутренними IP адреса | ====Активация нетблок==== Номера правил ^115 |перенаправление на страницу предупреждения | ^116 |Блокировка ресурса | таблицы ^ 13 | Адреса для блокировки | ====Временный доступ для пополнения==== **/etc/rc.conf** abills_paysys_tmp_access="YES" Правило ^ 120 | Открытие временного доступа для пополнения счета | ^ 121 | Открытие временного доступа для пополнения счета | таблицы ^ 16 | Адреса клиентов с временным доступом. Аргумент передается как UID | ${IPFW} add 120 allow all from "table(16)" to any via ${IF} ${IPFW} add 121 allow all from any to "table(16)" via ${IF} =====Дополнительно===== * [[abills:docs:manual:freebsd_dummynet|FreeBSD Dummynet/table шейпер]]