Документация по модулю Netblock и принадлежащим к нему страницам перенесена в Confluence
http://abills.net.ua:8090/display/AB/Netblock
Модуль блокировки Web ресурсов (Цена)
Возможности
# mysql -D abills < db/Netblock.sql
Подключение модуля abills/libexec/config.pl
@MODULES = ( 'Netblock' );
Система загружает лист блокировки и применяет его на локальном сервере.
# /usr/abills/libexec/billd netblock
Дополнительные параметры:
INIT=1 | Полная загрузка листа блокировки |
---|---|
BLOCK_TYPE=IP | Тип блокировки: IP(по умолчанию),DNS,DPI,Proxy |
TYPE=xx | Тип листа блокировки (По умолчанию: rkn). Листы загрузки: rkn - Роскомнадзор uablock - блокировка UA |
ACTIVE_BLOCK=1 | Включение блокировки |
NAS_TYPE=mikrotik | Загрузка листов блокировки на все сервера доступа с типом mikrotik и miroktik_dhcp |
NAS_ID=12 | Загрузка листов блокировки на все сервера доступа с номером 12 |
DEBUG=1..5 | Режим отладки |
DOMAIN_REDIRECT=domain | Редирект на определенный домен. |
По умолчанию используются параметры
INIT=1 BLOCK_TYPE=IP ACTIVE_BLOCK=1
Для автоматической синхронизации, добавьте запись в /etc/crontab
* 1,9,17 * * * root /usr/abills/libexec/billd netblock
/usr/abills/libexec/billd netblock TYPE=uablock FETCH=1
Список ограниченного доступа https://belgie.by/ru/lists_access
/usr/abills/libexec/billd netblock TYPE=byblock FETCH=1
$conf{NETBLOCK_BY_NAME} = 'логин';
Для блокировки интернет-ресурсов, доступ к которым ограничен
$conf{NETBLOCK_BY_URL_LIMITATION} = 'ссылка на XML список'; $conf{NETBLOCK_BY_PASS_LIMITATION} = 'пароль к XML списку';
Для блокировки средств обеспечения анонимности (прокси-серверы, анонимные сети типа Tor и другие)
$conf{NETBLOCK_BY_URL_ANONYMOUS} = 'ссылка на XML список'; $conf{NETBLOCK_BY_PASS_ANONYMOUS} = 'пароль к XML списку';
/usr/abills/libexec/billd netblock TYPE=rnk FETCH=1
Включение на локальном сервере. Система автоматически определяет ОС локального сервера и поднимает на нем блокировку
/usr/abills/libexec/billd netblock
Mikrotik
/usr/abills/libexec/billd netblock ACTIVE_BLOCK=1 NAS_TYPE=mikrotik
В связке с DNS резолвером unbound возможна как статичное, так и динамическое обновление записей в кеше DNS сервера. После установки и настройки остается только добавить в файл unbound.conf в секции server:
следующую строку:
include: "/usr/abills/var/db/netblock/domain_list"
Блокировки начнут работать после перезапуска сервера. Шаблон для формирования файла domain_list приведен в примерах настройки. Для того чтобы в дальнейшем не перезагружать сервер, а только вносить изменения в его кеш, нужно в config.pl указать команды для блокировки и разблокировки в параметрах $conf{NETBLOCK_DNS_ADD_CMD} и $conf{NETBLOCK_DNS_ADD_CMD}.
Рестарт unbound $conf{UNBOUND_RESTART}='команда рестарта';
# /usr/abills/libexec/billd netblock ACTIVE_BLOCK=1 TYPE=uablock UNBOUND=1 DOMAIN_REDIRECT=10.0.1.1
Проверка
drill @127.0.0.1 calendar.yandex.ru
;; ->>HEADER<<- opcode: QUERY, rcode: NOERROR, id: 64180 ;; flags: qr aa rd ra ; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;; calendar.yandex.ru. IN A ;; ANSWER SECTION: calendar.yandex.ru. 3600 IN A 10.0.0.1 ;; AUTHORITY SECTION: ;; ADDITIONAL SECTION: ;; Query time: 0 msec ;; SERVER: 127.0.0.1 ;; WHEN: Tue May 30 17:40:53 2017 ;; MSG SIZE rcvd: 52
Linux
Для блокировки по IP адресу удобно использовать ipset, например так:
В дальнейшем записи в таблицу будут добавляться и удаляться автоматически, без перечитывания правил.
$conf{NETBLOCK_FW_ADD_CMD} | Шаблон команды для блокировки типа «ip» Пример для ipfw: $conf{NETBLOCK_FW_ADD_CMD} = '/sbin/ipset add netblock %IP'; |
---|---|
$conf{NETBLOCK_FW_DEL_CMD} | Шаблон команды для разблокировки типа «ip» Пример для ipfw: $conf{NETBLOCK_FW_DEL_CMD} = '/sbin/ipset del netblock %IP'; |
Запуск обновления
/usr/abills/libexec/billd netblock TYPE=uablock ACTIVE_BLOCK=1 IPFW_BLOCK=1
Включение автоподнятие правил шейпера и блокировки
/etc/rc.conf
${abills_netblock}="YES" #Включение блокировки ${abills_netblock_redirect_ip}="127.0.0.1"; # Включение редиректа на страницу
запуск програмы авто поднятия
/etc/init.d/shaper_start.sh start
FreeBSD
Для блокировки по IP адресу удобно использовать таблицы в ipfw, например так:
fwcmd="/sbin/ipfw" nat_interface="igb0" ... ... ${fwcmd} add deny all from any to "table(13)" via ${nat_interface} cat /usr/abills/var/db/netblock/ip_list | { while read ip do ${fwcmd} table 13 add $ip done } ... ...
В дальнейшем записи в таблицу будут добавляться и удаляться автоматически, без перечитывания правил.
$conf{NETBLOCK_FW_ADD_CMD} | Шаблон команды для блокировки типа «ip» Пример для ipfw: $conf{NETBLOCK_FW_ADD_CMD} = '/sbin/ipfw table 13 add %IP'; |
---|---|
$conf{NETBLOCK_FW_DEL_CMD} | Шаблон команды для разблокировки типа «ip» Пример для ipfw: $conf{NETBLOCK_FW_DEL_CMD} = '/sbin/ipfw table 13 delete %IP'; |
Запуск обновления
/usr/abills/libexec/billd netblock TYPE=uablock ACTIVE_BLOCK=1 IPFW_BLOCK=1
Включение автоподнятие правил шейпера и блокировки
/etc/rc.conf
${abills_netblock}="YES" #Включение блокировки ${abills_netblock_redirect_ip}="127.0.0.1"; # Включение редиректа на страницу
запуск програмы авто поднятия
/usr/local/etc/rc.d/shaper_start.sh start
Данный модуль может быть использован, как для формирования списков для аппаратных решений (DPI),
так и для «софтовой» блокировки. Естественно, что владельцы аппаратных решений получают конкурентное преимущество, так как имеют возможность блокировать ресурсы на более высоком уровне(url), а не весь ресурс или IP адрес, на котором может находится кроме заблокированного ещё куча сайтов. Как же быть тем, для кого бюджет установки DPI неоправданно высок.
Попытаемся исправить ситуацию. Итак, что мы имеем в записи реестра:
Теперь смотрим, по какому алгоритму нас будут проверять:
Тип информации, занесенной в реестр ЕАИС | Действия АС «Ревизор» |
---|---|
Запись содержит только IP-адрес | Проверяется доступность сайта по IP-адресу. При отсутствии доступа по протоколу HTTP происходит запись информации в аварийный журнал о запрете доступа по протоколу http. |
Запись содержит только URL ресурса | Происходит резолвинг (resolve) IP-адреса с помощью DNS серверов. Далее происходит отправка HTTP GET запроса на полученные IP-адреса. |
Запись содержит Домен, IP-адрес, URL | Происходит резолвинг (resolve) IP-адреса с помощью DNS серверов. Далее происходит отправка HTTP GET запроса на полученные и внесенные в реестр ЕАИС IP-адреса. |
в разработке …