Jump to content
Калькуляторы
Блокировка веб ресурса  

536 members have voted

  1. 1. Для блокировка используем



Блокировка сайтов провайдерами маневры с DNS

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

 

Открываете файл zapret.pl, строка 26, вставляете туда

$XML::Simple::PREFERRED_PARSER = 'XML::Parser';

Share this post


Link to post
Share on other sites

На машине с ubuntu все ок, на другой с Centos 6 но не редиректит. В логе тихо.

 

Вместо кваги переделал кусочек кода на заполнение нужными IP адресами определенного IPSET-а

Заворачиваем трафик так:

-A PREROUTING -i eth10 -p tcp -m set --match-set RKN dst -m tcp -j NFQUEUE --queue-num 0

 

в логе тишина по поводу редиректов:

2016-02-10 17:23:37.190 [7793] Information Application - nDPI memory (once): 105.48 KB
2016-02-10 17:23:37.190 [7793] Information Application - nDPI memory per flow: 1.91 KB
2016-02-10 17:23:37.190 [7793] Information Application - nDPI current memory usage: 1.85 MB
2016-02-10 17:23:37.190 [7793] Information Application - nDPI maximum memory usage: 1.85 MB
2016-02-10 17:23:37.190 [7793] Information Application - State of task NFQStatisticTask is 2
2016-02-10 17:23:37.190 [7793] Information Application - Thread 'nfqThread': redirected domains 0, redirected urls: 0, marked ssl: 0, marked hosts: 0, rst send: 0
2016-02-10 17:23:37.190 [7793] Information Application - State of task nfqThread is 2
2016-02-10 17:23:37.190 [7793] Information Application - State of task SenderTask is 2

 

Сайты на IP-адресах из ipset-а не открываются

Share this post


Link to post
Share on other sites

На машине с ubuntu все ок, на другой с Centos 6 но не редиректит. В логе тихо.

 

Вместо кваги переделал кусочек кода на заполнение нужными IP адресами определенного IPSET-а

Заворачиваем трафик так:

-A PREROUTING -i eth10 -p tcp -m set --match-set RKN dst -m tcp -j NFQUEUE --queue-num 0

 

в логе тишина по поводу редиректов:

2016-02-10 17:23:37.190 [7793] Information Application - nDPI memory (once): 105.48 KB
2016-02-10 17:23:37.190 [7793] Information Application - nDPI memory per flow: 1.91 KB
2016-02-10 17:23:37.190 [7793] Information Application - nDPI current memory usage: 1.85 MB
2016-02-10 17:23:37.190 [7793] Information Application - nDPI maximum memory usage: 1.85 MB
2016-02-10 17:23:37.190 [7793] Information Application - State of task NFQStatisticTask is 2
2016-02-10 17:23:37.190 [7793] Information Application - Thread 'nfqThread': redirected domains 0, redirected urls: 0, marked ssl: 0, marked hosts: 0, rst send: 0
2016-02-10 17:23:37.190 [7793] Information Application - State of task nfqThread is 2
2016-02-10 17:23:37.190 [7793] Information Application - State of task SenderTask is 2

 

Сайты на IP-адресах из ipset-а не открываются

 

Наверное у вас где-то неправильно роутится трафик до адресов из ipset. Сделайте traceroute до адресов, которые в ipset. ICMP пакеты должны уйти дальше фильтра.

Share this post


Link to post
Share on other sites

Наверное у вас где-то неправильно роутится трафик до адресов из ipset. Сделайте traceroute до адресов, которые в ipset. ICMP пакеты должны уйти дальше фильтра.

 

 

Исключено. Эта машина единственный NAT/шейпер на пути абонентского трафика. К тому же счетчики в iptables в mangle растут у данного правила, трафик туда матчится верно. Но в юзерспейс ощущение что не передается. nfqfilter с дебагом не сообщает о том что в очередь попал пакет

Share this post


Link to post
Share on other sites

max1976, можно как-то маркировать без NAT-а? реальники у меня все, не хочу чтобы ФСБ ругалось =)

Share this post


Link to post
Share on other sites

max1976, можно как-то маркировать без NAT-а? реальники у меня все, не хочу чтобы ФСБ ругалось =)

А причем тут NAT? Для фильтра NAT не нужен.

Share this post


Link to post
Share on other sites

маркировать без NAT-а

 

Маркировка средствами фильтра идет, а дропать в forward-цепочке. Нат где? Это у меня натирование идет на одной из сетей,но mangle то до него срабатывает

Share this post


Link to post
Share on other sites

max1976 Спасибо за труд и проделанный работу.

Хотел отписать не много по багам, что нашел в zapret.pl, но сутки назад все исправлено.

В nfqfilter_config не нашел выборки из таблицы zap2_only_ips, соответственно эти записи не попадут в конфиг bgp и в другие файлы настроек.

Еще обнаружил это:

cat bgpd.conf | grep 127.0.0.

network 127.0.0.1/32

 

Не думаю, что адрес 127.0.0.1 должен сюда попадать.

 

nfqfilter использую как зеркало, трафик снимается с SPAN порта коммутатора - трафик около 4 гигабита.

Порт добавлен в бридж, для работы правил iptables, иначе iptables не работает.

nfqfilter запущен в 8ми экземплярах, iptables направляет порты 80 и 443, а так же все что найдет в файлах конфигурации через ipset, на nfqfilter.

В настройках стоит send_rst = true, https и соединения из файла hosts сбрасывает на ура.

 

Пока только одна проблема, в ssl_hosts игнорируется ip адрес если его туда добавить.

 

На будущее хотелось бы видеть сброс всех TCP подключений по таблице zap2_only_ips и zap2_subnets и по всем запрещенным доменам сделать DNS-спуфинг для перенаправления на IP со страницей блокировки.

 

А за софт большое человеческое СПАСИБО.

Edited by overty

Share this post


Link to post
Share on other sites

Еще обнаружил это:

cat bgpd.conf | grep 127.0.0.

network 127.0.0.1/32

В последней ревизии zapret.pl добавлена проверка ip адресов и они больше не попадают в таблицы. Удалите уже созданные записи:

DELETE FROM zap2_ips WHERE ip=UNHEX('7f000001');

 

На будущее хотелось бы видеть сброс всех TCP подключений по таблице zap2_only_ips и zap2_subnets

 

Уже готова версия с поддержкой zap2_only_ips - эти адреса добавляются в квагу в виде ip route ip/mask null0.

Share this post


Link to post
Share on other sites

Еще обнаружил это:

cat bgpd.conf | grep 127.0.0.

network 127.0.0.1/32

В последней ревизии zapret.pl добавлена проверка ip адресов и они больше не попадают в таблицы. Удалите уже созданные записи:

DELETE FROM zap2_ips WHERE ip=UNHEX('7f000001');

 

Ага, вижу, работает.

 

На будущее хотелось бы видеть сброс всех TCP подключений по таблице zap2_only_ips и zap2_subnets

Уже готова версия с поддержкой zap2_only_ips - эти адреса добавляются в квагу в виде ip route ip/mask null0.

 

 

К сожалению не увидел данный функционал в коде на github.

Дело в том что я не использую квагу, nfqfilter работает как зеркало и трафик через сервер не проходит.

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Share this post


Link to post
Share on other sites

max1976

И у себя еще переделал Redirect на "302 Found".

Дело в том что "301 Moved Permanently" кешируется браузерами и если ссылка или домен удалены из реестра, клиенты все равно видят страницу блокировки, т.к. она закеширована.

Edited by overty

Share this post


Link to post
Share on other sites

diff --git a/src/sender.cpp b/src/sender.cpp
index 352852f..1d6b6ba 100644
--- a/src/sender.cpp
+++ b/src/sender.cpp
@@ -213,7 +213,7 @@ void CSender::Redirect(int user_port, int dst_port, Poco::Net::IPAddress &user_i
       std::string tstr=rHeader;
       if(!additional_param.empty())
       {
-               tstr = "HTTP/1.1 301 Moved Permanently\r\nLocation: " + this->redirect_url + additional_param + "\r\nConnection: close\r\n";
+               tstr = "HTTP/1.1 302 Moved Temporarily\r\nLocation: " + this->redirect_url + additional_param + "\r\nConnection: close\r\n";
       } else {
               tstr=rHeader;
       }

 

 

против кэша браузеров..

Share this post


Link to post
Share on other sites

Нашел в логе на Centos-е причину неработоспособности nfqfilter

 

2016-02-11 18:31:33.025 [20711] Fatal nfqThread - Error during nfq_create_queue

 

Куда копать?

 

UPD: обновил libnetfilter и devel... пресобрал фильтр -

2016-02-11 18:55:31.708 [22675] Information nfqThread - NFQ: Binding to queue 0

 

однако все равно тихо.. ядро не передает пакеты приложению

Edited by micol

Share this post


Link to post
Share on other sites

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

 

Открываете файл zapret.pl, строка 26, вставляете туда

$XML::Simple::PREFERRED_PARSER = 'XML::Parser';

не помогло, далеко не с первой попытки скрипт сработал

root@skyprox-main:/home/rkn/zapret# ./zapret.pl
Subroutine _call redefined at (eval 141) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 141) line 92.
Subroutine AUTOLOAD redefined at (eval 141) line 109.
Subroutine OperatorRequestService::getResult redefined at (eval 141) line 107.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 141) line 107.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 141) line 107.
Subroutine OperatorRequestService::sendRequest redefined at (eval 141) line 107.
root@skyprox-main:/home/rkn/zapret# ./zapret.pl
Subroutine _call redefined at (eval 141) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 141) line 92.
Subroutine AUTOLOAD redefined at (eval 141) line 109.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 141) line 107.
Subroutine OperatorRequestService::sendRequest redefined at (eval 141) line 107.
Subroutine OperatorRequestService::getResult redefined at (eval 141) line 107.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 141) line 107.
Subroutine _call redefined at (eval 160) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 160) line 92.
Subroutine AUTOLOAD redefined at (eval 160) line 109.
Subroutine OperatorRequestService::sendRequest redefined at (eval 160) line 107.
Subroutine OperatorRequestService::getResult redefined at (eval 160) line 107.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 160) line 107.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 160) line 107.
Subroutine _call redefined at (eval 179) line 50.
Subroutine OperatorRequestService::want_som redefined at (eval 179) line 92.
Subroutine AUTOLOAD redefined at (eval 179) line 109.
Subroutine OperatorRequestService::getLastDumpDate redefined at (eval 179) line 107.
Subroutine OperatorRequestService::sendRequest redefined at (eval 179) line 107.
Subroutine OperatorRequestService::getResult redefined at (eval 179) line 107.
Subroutine OperatorRequestService::getLastDumpDateEx redefined at (eval 179) line 107.
root@skyprox-main:/home/rkn/zapret# ./zapret.pl
DBD::mysql::st execute failed: Unknown column 'resolved' in 'field list' at ./zapret.pl line 755.
DBD::mysql::st execute failed: Unknown column 'resolved' in 'field list' at ./zapret.pl line 755.

Share this post


Link to post
Share on other sites

DBD::mysql::st execute failed: Unknown column 'resolved' in 'field list' at ./zapret.pl line 755.

DBD::mysql::st execute failed: Unknown column 'resolved' in 'field list' at ./zapret.pl line 755.[/code]

 

Обновите версию с github .

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

 

Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт.

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

 

Да, вижу. Спасибо. Теперь можно сливать в файл hosts IP адреса из таблицы zap2_only_ips.

Edited by overty

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

 

Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт.

 

По URL да, длина большая. Но у меня при MTU 68 проскакивает только первый запрос по запрещенному ресурсу, остальные вроде как блокирует.

А вот с доменами помог бы DNS Spoofing на адрес со страницей блокировки.

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

 

Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт.

 

По URL да, длина большая. Но у меня при MTU 68 проскакивает только первый запрос по запрещенному ресурсу, остальные вроде как блокирует.

А вот с доменами помог бы DNS Spoofing на адрес со страницей блокировки.

 

а попробуй wget-ом. Кстати, какой софт используют проверяющие органы

Edited by ne-vlezay80

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

 

Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт.

Напишите уже сами.

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

 

Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт.

Напишите уже сами.

 

Кстати, в этой теме я нашёл некоторые perl скрипты. Но, они сырые. Можно конечно их допилить. Дело в том, что опыта работы с c++ у меня нету.

Edited by ne-vlezay80

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

 

Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт.

 

По URL да, длина большая. Но у меня при MTU 68 проскакивает только первый запрос по запрещенному ресурсу, остальные вроде как блокирует.

А вот с доменами помог бы DNS Spoofing на адрес со страницей блокировки.

 

а попробуй wget-ом. Кстати, какой софт используют проверяющие органы

 

 

wget тоже самое. Первый запрос проходит, остальные - редирект на страницу блокировки. mtu 68 и 128

Share this post


Link to post
Share on other sites

Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP.

Добавил данный функционал в программу. Проверьте, должно работать.

 

Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт.

 

По URL да, длина большая. Но у меня при MTU 68 проскакивает только первый запрос по запрещенному ресурсу, остальные вроде как блокирует.

А вот с доменами помог бы DNS Spoofing на адрес со страницей блокировки.

 

а попробуй wget-ом. Кстати, какой софт используют проверяющие органы

 

 

wget тоже самое. Первый запрос проходит, остальные - редирект на страницу блокировки. mtu 68 и 128

 

у меня через wget открывается почиму-то запрещённый сайт. Кстати, если через wget - то получается:

GET / HTTP/1.1
Host: hospit

al-vrn.ru

и по этой причине nfq_filter не видит запрещённый сайт

Edited by ne-vlezay80

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now