Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Программа для инициализации шейпера и управления фаерволом для OS FreeBSD.

Установка

Code Block
languagebash
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 внешних канала

Code Block
languagebash
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


Code Block
languagebash
firewall_type="/etc/fw.conf"



Правила вносятся
в таком формате


Code Block
languagebash
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 необходимо скомпилировать ядро системы с опцией

Code Block
languagebash
options         IPFIREWALL_NAT

Таблици NAT

33Таблица с исходящими IP адреса
34Таблица с внутренними IP адреса


Активация нетблок

Номера правил

115Перенаправление на страницу предупреждения
116Блокировка ресурса

Таблицы

13Адреса для блокировки


Временный доступ для пополнения

/etc/rc.conf

Code Block
languagebash
abills_paysys_tmp_access="YES"

Правило

120Открытие временного доступа для пополнения счета
121Открытие временного доступа для пополнения счета

Таблицы

16

Адреса клиентов с временным доступом.

Аргумент передается как UID


Code Block
languagebash
 ${IPFW} add 120 allow all from "table(16)" to any via ${IF}
 ${IPFW} add 121 allow all from any to "table(16)" via ${IF}


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