max1976 Опубликовано 10 февраля, 2016 · Жалоба куда именно вставили то, в перле я далеко не гуру Открываете файл zapret.pl, строка 26, вставляете туда $XML::Simple::PREFERRED_PARSER = 'XML::Parser'; Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
micol Опубликовано 10 февраля, 2016 · Жалоба На машине с 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-а не открываются Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 10 февраля, 2016 · Жалоба На машине с 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 пакеты должны уйти дальше фильтра. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
micol Опубликовано 10 февраля, 2016 · Жалоба Наверное у вас где-то неправильно роутится трафик до адресов из ipset. Сделайте traceroute до адресов, которые в ipset. ICMP пакеты должны уйти дальше фильтра. Исключено. Эта машина единственный NAT/шейпер на пути абонентского трафика. К тому же счетчики в iptables в mangle растут у данного правила, трафик туда матчится верно. Но в юзерспейс ощущение что не передается. nfqfilter с дебагом не сообщает о том что в очередь попал пакет Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
yKpon Опубликовано 11 февраля, 2016 · Жалоба max1976, можно как-то маркировать без NAT-а? реальники у меня все, не хочу чтобы ФСБ ругалось =) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 11 февраля, 2016 · Жалоба max1976, можно как-то маркировать без NAT-а? реальники у меня все, не хочу чтобы ФСБ ругалось =) А причем тут NAT? Для фильтра NAT не нужен. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
micol Опубликовано 11 февраля, 2016 · Жалоба маркировать без NAT-а Маркировка средствами фильтра идет, а дропать в forward-цепочке. Нат где? Это у меня натирование идет на одной из сетей,но mangle то до него срабатывает Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
overty Опубликовано 11 февраля, 2016 (изменено) · Жалоба 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 со страницей блокировки. А за софт большое человеческое СПАСИБО. Изменено 11 февраля, 2016 пользователем overty Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 11 февраля, 2016 · Жалоба Еще обнаружил это: 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. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
overty Опубликовано 11 февраля, 2016 · Жалоба Еще обнаружил это: 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. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
overty Опубликовано 11 февраля, 2016 (изменено) · Жалоба max1976 И у себя еще переделал Redirect на "302 Found". Дело в том что "301 Moved Permanently" кешируется браузерами и если ссылка или домен удалены из реестра, клиенты все равно видят страницу блокировки, т.к. она закеширована. Изменено 11 февраля, 2016 пользователем overty Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 11 февраля, 2016 · Жалоба 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; } против кэша браузеров.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
micol Опубликовано 11 февраля, 2016 (изменено) · Жалоба Нашел в логе на 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 однако все равно тихо.. ядро не передает пакеты приложению Изменено 11 февраля, 2016 пользователем micol Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
yKpon Опубликовано 12 февраля, 2016 · Жалоба куда именно вставили то, в перле я далеко не гуру Открываете файл 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. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 12 февраля, 2016 · Жалоба 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 . Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 12 февраля, 2016 · Жалоба Как на счёт поддежки в nfq_filter анализа tcp потока Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 12 февраля, 2016 · Жалоба Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP. Добавил данный функционал в программу. Проверьте, должно работать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 12 февраля, 2016 · Жалоба Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP. Добавил данный функционал в программу. Проверьте, должно работать. Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
overty Опубликовано 12 февраля, 2016 (изменено) · Жалоба Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP. Добавил данный функционал в программу. Проверьте, должно работать. Да, вижу. Спасибо. Теперь можно сливать в файл hosts IP адреса из таблицы zap2_only_ips. Изменено 12 февраля, 2016 пользователем overty Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
overty Опубликовано 12 февраля, 2016 · Жалоба Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP. Добавил данный функционал в программу. Проверьте, должно работать. Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт. По URL да, длина большая. Но у меня при MTU 68 проскакивает только первый запрос по запрещенному ресурсу, остальные вроде как блокирует. А вот с доменами помог бы DNS Spoofing на адрес со страницей блокировки. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 12 февраля, 2016 (изменено) · Жалоба Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP. Добавил данный функционал в программу. Проверьте, должно работать. Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт. По URL да, длина большая. Но у меня при MTU 68 проскакивает только первый запрос по запрещенному ресурсу, остальные вроде как блокирует. А вот с доменами помог бы DNS Spoofing на адрес со страницей блокировки. а попробуй wget-ом. Кстати, какой софт используют проверяющие органы Изменено 12 февраля, 2016 пользователем ne-vlezay80 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 12 февраля, 2016 · Жалоба Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP. Добавил данный функционал в программу. Проверьте, должно работать. Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт. Напишите уже сами. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 12 февраля, 2016 (изменено) · Жалоба Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP. Добавил данный функционал в программу. Проверьте, должно работать. Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт. Напишите уже сами. Кстати, в этой теме я нашёл некоторые perl скрипты. Но, они сырые. Можно конечно их допилить. Дело в том, что опыта работы с c++ у меня нету. Изменено 12 февраля, 2016 пользователем ne-vlezay80 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
overty Опубликовано 12 февраля, 2016 · Жалоба Данный функционал я предлагал внести в nfqfilter, что бы по всем TCP портам отправлялся RST пакет. Как вариант добавление таких адресов в файл hosts, но без указания порта, что означало сброс всех TCP подключений по указанным IP. Добавил данный функционал в программу. Проверьте, должно работать. Я бы бвл не против добавить поддержку анализа мелких tcp-пакетом, так как например, клиент пожет поставить у себя на интерфейсе mtu 128, и беспрепядственно через wget скачать запрещённый сайт. По URL да, длина большая. Но у меня при MTU 68 проскакивает только первый запрос по запрещенному ресурсу, остальные вроде как блокирует. А вот с доменами помог бы DNS Spoofing на адрес со страницей блокировки. а попробуй wget-ом. Кстати, какой софт используют проверяющие органы wget тоже самое. Первый запрос проходит, остальные - редирект на страницу блокировки. mtu 68 и 128 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ne-vlezay80 Опубликовано 12 февраля, 2016 (изменено) · Жалоба Данный функционал я предлагал внести в 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 не видит запрещённый сайт Изменено 12 февраля, 2016 пользователем ne-vlezay80 Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...