Versions Compared

Key

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

Включение на локальном сервере. Система автоматически определяет ОС локального сервера и поднимает на нем блокировку.

Code Block
languagebash
/usr/abills/libexec/billd netblock

Mikrotik

Code Block
languagebash
/usr/abills/libexec/billd netblock ACTIVE_BLOCK=1 NAS_TYPE=mikrotik


Примеры использования

Блокировка по имени домена с использованием unbound

В связке с DNS резолвером unbound возможна как статичное, так и динамическое обновление записей в кеше DNS сервера. После установки и настройки остается только добавить в файл unbound.conf в секции server: следующую строку:

Code Block
languagebash
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}='команда рестарта';

Code Block
languagebash
/usr/abills/libexec/billd netblock ACTIVE_BLOCK=1 TYPE=uablock UNBOUND=1 DOMAIN_REDIRECT=10.0.1.1

Проверка

Code Block
languagebash
drill @127.0.0.1 calendar.yandex.ru


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


Блокировка по IP с использованием ipfw

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';

Запуск обновления

Code Block
languagebash
/usr/abills/libexec/billd netblock TYPE=uablock ACTIVE_BLOCK=1  IPFW_BLOCK=1

Включение автоподнятие правил шейпера и блокировки

/etc/rc.conf

Code Block
languagebash
${abills_netblock}="YES" #Включение блокировки
${abills_netblock_redirect_ip}="127.0.0.1"; # Включение редиректа на страницу

запуск программы авто поднятия

Code Block
languagebash
/etc/init.d/shaper_start.sh start
FreeBSD

Для блокировки по IP адресу удобно использовать таблицы в ipfw, например так:

Code Block
languagebash
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';
Запуск обновления
Code Block
languagebash
/usr/abills/libexec/billd netblock TYPE=uablock ACTIVE_BLOCK=1  IPFW_BLOCK=1

Включение автоподнятие правил шейпера и блокировки

/etc/rc.conf

Code Block
languagebash
${abills_netblock}="YES" #Включение блокировки
${abills_netblock_redirect_ip}="127.0.0.1"; # Включение редиректа на страницу

запуск программы авто поднятия

Code Block
languagebash
/usr/local/etc/rc.d/shaper_start.sh start


"Мягкая" блокировка

Данный модуль может быть использован, как для формирования списков для аппаратных решений (DPI), так и для «софтовой» блокировки. Естественно, что владельцы аппаратных решений получают конкурентное преимущество, так как имеют возможность блокировать ресурсы на более высоком уровне(url), а не весь ресурс или IP адрес, на котором может находится, кроме заблокированного, ещё куча сайтов. Как же быть тем, для кого бюджет установки DPI неоправданно высок. 
Попытаемся исправить ситуацию. Итак, что мы имеем в записи реестра:

  • Тип блокировки (IP, domain etc)

  • IP адрес

  • URL

Теперь смотрим, по какому алгоритму нас будут проверять:

Тип информации,

занесенной в реестр ЕАИС

Действия АС «Ревизор»

Запись содержит только IP-адресПроверяется доступность сайта по IP-адресу. При отсутствии доступа по протоколу HTTP происходит запись информации в аварийный журнал о запрете доступа по протоколу http.
Запись содержит только URLресурсаПроисходит резолвинг (resolve) IP-адреса с помощью DNS серверов. Далее происходит отправка HTTP GET запроса на полученные IP-адреса.
Запись содержит Домен, IP-адрес, URLПроисходит резолвинг (resolve) IP-адреса с помощью DNS серверов. Далее происходит отправка HTTP GET запроса на полученные и внесенные в реестр ЕАИС IP-адреса.

в разработке …