Child pages
  • shaper_start.sh

Skip to end of metadata
Go to start of metadata

Программа 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. 
Если нужно добавить дополнительные параметры их стоит внести в файл /etc/fw.conf
abills_shaper_if="em0"Интерфейс шейпера (по умолчанию ng* )
abills_nas_id=""
abills_ip_sessions=""Лимитирование количества IP сесий для клиента
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-й таблице (ipfw table 40 list) 
Для работы с перенаправления пользователей нужно указать в фильтре тарифного плана или в фильтре учётной записи занесение 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 необходимо скомпилировать ядро системы (Сборка ядра FreeBSD) с опцией

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}

Дополнительно

FreeBSD Dummynet/table шейпер

  • No labels