Перейти к содержимому
Калькуляторы
Блокировка веб ресурса  

566 пользователей проголосовало

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



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

Да cmake теоретически тоже умеет, осталось только понять, как :) Или, по-хорошему, найти (если есть) обьявление версии в хидерах либы и #ifdef / #else / #endif ...

 

--

Подчистил код, убрал лишние зависимости (boost), завернул и ютуб, который до этого не фильтровали от греха подальше :)

За пару часов распарсил ~5кк http-запросов, отфильтровано из них ~1к

 

В топе в среднем 4-8%, очень редко вылазит до 12-14%. Потенциал получается очень неплохой, особенно если направить трафик не в одну queue, а в range, и запустить несколько инстансов софтинки по числу ядер, например

 

йа доволен :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

добрый день, пытаюсь собрать:

root@server:~/nfq_filter/build# cmake ../
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Checking for C++11 compiler
-- Checking for C++11 compiler - available
-- Looking for include files HAVE_NFQUEUE_H
-- Looking for include files HAVE_NFQUEUE_H - found
-- Configuring done
CMake Error at CMakeLists.txt:29 (add_executable):
 Cannot find source file:

   config.cpp

 Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
 .hxx .in .txx


-- Build files have been written to: /home/zeleniy/nfq_filter/build

 

Где взять этот файл? скачивал как описано git clone https://github.com/ircop/nfq_filter.git

Изменено пользователем zeleniy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

добрый день, пытаюсь собрать:

root@server:~/nfq_filter/build# cmake ../
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Checking for C++11 compiler
-- Checking for C++11 compiler - available
-- Looking for include files HAVE_NFQUEUE_H
-- Looking for include files HAVE_NFQUEUE_H - found
-- Configuring done
CMake Error at CMakeLists.txt:29 (add_executable):
 Cannot find source file:

   config.cpp

 Tried extensions .c .C .c++ .cc .cpp .cxx .m .M .mm .h .hh .h++ .hm .hpp
 .hxx .in .txx


-- Build files have been written to: /home/zeleniy/nfq_filter/build

 

Где взять этот файл? скачивал как описано git clone https://github.com/ircop/nfq_filter.git

 

Таже проблема , ubuntu 12.04

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Упс... Перекачайте заново, не добавил пару файлов в гит, пардон

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Упс... Перекачайте заново, не добавил пару файлов в гит, пардон

теперь вылазит:

root@server:~/nfq_filter/build# make
Scanning dependencies of target nfq_filter
[ 25%] Building CXX object CMakeFiles/nfq_filter.dir/nfq.cpp.o
[ 50%] Building CXX object CMakeFiles/nfq_filter.dir/config.cpp.o
[ 75%] Building CXX object CMakeFiles/nfq_filter.dir/sender.cpp.o
[100%] Building CXX object CMakeFiles/nfq_filter.dir/parser.cpp.o
Linking CXX executable nfq_filter
/usr/bin/ld: CMakeFiles/nfq_filter.dir/nfq.cpp.o: undefined reference to symbol 'nfnl_fd'
/usr/bin/ld: note: 'nfnl_fd' is defined in DSO /usr/lib/libnfnetlink.so.0 so try adding it to the linker command line
/usr/lib/libnfnetlink.so.0: could not read symbols: Invalid operation
collect2: выполнение ld завершилось с кодом возврата 1
make[2]: *** [nfq_filter] Ошибка 1
make[1]: *** [CMakeFiles/nfq_filter.dir/all] Ошибка 2
make: *** [all] Ошибка 2

Версия libnetfilter_queue:

root@server:~/nfq_filter/build# apt-cache show libnetfilter-queue-dev 
Package: libnetfilter-queue-dev
Priority: optional
Section: universe/libdevel
Installed-Size: 72
Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
Original-Maintainer: netfilter maintainers <netfilter-maintainers@ned.snow-crash.org>
Architecture: amd64
Source: libnetfilter-queue
Version: 0.0.17-1
Depends: pkg-config, libnetfilter-queue1 (= 0.0.17-1), libnfnetlink-dev (>= 0.0.25)
Filename: pool/universe/libn/libnetfilter-queue/libnetfilter-queue-dev_0.0.17-1_amd64.deb
Size: 8740

В файлике nfq.cpp заменил строчки на:

++              size = nfq_get_payload(nfa, (char **)&full_packet);
++              len = nfq_get_payload(nfa, (char **)&data);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тоже заменил

 

В файлике nfq.cpp заменил строчки на:

++              size = nfq_get_payload(nfa, (char **)&full_packet);
++              len = nfq_get_payload(nfa, (char **)&data);

 

Ругается теперь на символ

root@pppoe3a:/opt/billing/work/nfq_filter/build# make
[ 25%] Building CXX object CMakeFiles/nfq_filter.dir/nfq.cpp.o
[ 50%] Building CXX object CMakeFiles/nfq_filter.dir/config.cpp.o
[ 75%] Building CXX object CMakeFiles/nfq_filter.dir/sender.cpp.o
[100%] Building CXX object CMakeFiles/nfq_filter.dir/parser.cpp.o
Linking CXX executable nfq_filter
/usr/bin/ld: CMakeFiles/nfq_filter.dir/nfq.cpp.o: undefined reference to symbol 'nfnl_fd'
/usr/bin/ld: note: 'nfnl_fd' is defined in DSO /usr/lib/libnfnetlink.so.0 so try adding it to the linker command line
/usr/lib/libnfnetlink.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [nfq_filter] Error 1
make[1]: *** [CMakeFiles/nfq_filter.dir/all] Error 2
make: *** [all] Error 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробовал собрать на Ubuntu 13.10, там версия libnetfilter-queue 1.0.2, ругается на отсутствие:

root@server:~/nfq_filter/build# cmake ../
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Checking for C++11 compiler
-- Checking for C++11 compiler - available
-- Looking for include files HAVE_NFQUEUE_H
-- Looking for include files HAVE_NFQUEUE_H - not found.
CMake Error at CMakeLists.txt:21 (message):
 libnetfilter_queue.h not found!


-- Configuring incomplete, errors occurred!

Хотя:

root@server:~# find / -name libnetfilter_queue.h
/usr/include/libnetfilter_queue/libnetfilter_queue.h

Изменено пользователем zeleniy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробовал собрать на Ubuntu 13.10, там версия libnetfilter-queue 1.0.2, ругается на отсутствие:

Попробуйте сейчас перекачать: чуть изменил CMakeLists

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробовал собрать на Ubuntu 13.10, там версия libnetfilter-queue 1.0.2, ругается на отсутствие:

Попробуйте сейчас перекачать: чуть изменил CMakeLists

то же самое:

root@server:~/nfq_filter/build# cmake ../
-- The C compiler identification is GNU
-- The CXX compiler identification is GNU
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Checking for C++11 compiler
-- Checking for C++11 compiler - available
-- Looking for include files HAVE_NFQUEUE_H
-- Looking for include files HAVE_NFQUEUE_H - not found.
CMake Error at CMakeLists.txt:23 (message):
 libnetfilter_queue.h not found!


-- Configuring incomplete, errors occurred!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нарыл у добрых людей ubuntu 13.04, сейчас поковыряю :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скачал

 

Ubuntu 12.04

root@pppoe3a:/opt/billing/work/nfq_filter/build# make
[ 25%] Building CXX object CMakeFiles/nfq_filter.dir/nfq.cpp.o
[ 50%] Building CXX object CMakeFiles/nfq_filter.dir/config.cpp.o
[ 75%] Building CXX object CMakeFiles/nfq_filter.dir/sender.cpp.o
[100%] Building CXX object CMakeFiles/nfq_filter.dir/parser.cpp.o
Linking CXX executable nfq_filter
/usr/bin/ld: CMakeFiles/nfq_filter.dir/nfq.cpp.o: undefined reference to symbol 'nfnl_fd'
/usr/bin/ld: note: 'nfnl_fd' is defined in DSO /usr/lib/libnfnetlink.so.0 so try adding it to the linker command line
/usr/lib/libnfnetlink.so.0: could not read symbols: Invalid operation
collect2: ld returned 1 exit status
make[2]: *** [nfq_filter] Error 1
make[1]: *** [CMakeFiles/nfq_filter.dir/all] Error 2
make: *** [all] Error 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

roysbike, zeleniy

Вроде бы всё пофиксил, попробуйте сейчас

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

roysbike, zeleniy

Вроде бы всё пофиксил, попробуйте сейчас

Ту же ошибку выдает. А у Вас на 13.04 собралось?

Изменено пользователем zeleniy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, собралось:

 

oot@Workmashine:/home/wingman/nfq_filter-master/build# make

Scanning dependencies of target nfq_filter

[ 25%] Building CXX object CMakeFiles/nfq_filter.dir/nfq.cpp.o

[ 50%] Building CXX object CMakeFiles/nfq_filter.dir/config.cpp.o

[ 75%] Building CXX object CMakeFiles/nfq_filter.dir/sender.cpp.o

[100%] Building CXX object CMakeFiles/nfq_filter.dir/parser.cpp.o

Linking CXX executable nfq_filter

[100%] Built target nfq_filter

root@Workmashine:/home/wingman/nfq_filter-master/build# ^C

root@Workmashine:/home/wingman/nfq_filter-master/build# ./nfq_filter

 

nfq_filter Version 0.11

................

 

А вы точно скачали всё заново с гитхаба? Мало ли :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Взял чистую машину с 12.04, изменил две строчки в nfq.cpp - собралось. А какой у Вас сейчас трафик? Хочу попробовать на 800-900 Мбитах/сек

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У нас трафик гигабит 15 в пиках :) Но сквозь хост с фильтрацией отправляется только трафик на ip-адреса из реестра, выходит до 30 мбит/с

 

Кстати, как вариант, если вы хотите на шлюзе это дело мастрячить, можно попробовать, например, ip-адреса из реестра загонять в ipset, и в nfqueue загонять тоже тольео трафик на них

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

У нас трафик гигабит 15 в пиках :) Но сквозь хост с фильтрацией отправляется только трафик на ip-адреса из реестра, выходит до 30 мбит/с

 

Кстати, как вариант, если вы хотите на шлюзе это дело мастрячить, можно попробовать, например, ip-адреса из реестра загонять в ipset, и в nfqueue загонять тоже тольео трафик на них

Я пока не определился со схемой, пока поставил на отдельный роутер, но мне более нравится Ваша схема. Вы на шлюзе трафик по dst отправляете на сервер с nfq_filter или как? Ну в смысле как вы разделяете трафик?

Изменено пользователем zeleniy

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да , собралось!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я пока не определился со схемой, пока поставил на отдельный роутер, но мне более нравится Ваша схема. Вы на шлюзе трафик по dst отправляете на сервер с nfq_filter или как? Ну в смысле как вы разделяете трафик?

 

На хосте-фильтре нужные IP-адреса загоняются в bgpd и анонсируются на все имеющиеся шлюзы, соответственно, трафик со шлюзов на эти адреса идёт через фильтрующий хост.

Ну и уже на нём весь трафик по 80 порту проходит через софтину, остальной - прозрачно роутится

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я пока не определился со схемой, пока поставил на отдельный роутер, но мне более нравится Ваша схема. Вы на шлюзе трафик по dst отправляете на сервер с nfq_filter или как? Ну в смысле как вы разделяете трафик?

 

На хосте-фильтре нужные IP-адреса загоняются в bgpd и анонсируются на все имеющиеся шлюзы, соответственно, трафик со шлюзов на эти адреса идёт через фильтрующий хост.

Ну и уже на нём весь трафик по 80 порту проходит через софтину, остальной - прозрачно роутится

Я так и думал сделать, трафик с 80 порта отправляем на фильтр, а все остальное прозрачно пропускаем. У нас 1 шлюз - попроще. Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите пожалуйста, что нужно еще добавить в iptables, после bsd еще пока не въехал .

 

$IPTABLES -A PREROUTING -s 172.30.0.0/16 -p tcp -m tcp --dport 80 -j NFQUEUE --queue-num 0 --queue-bypass

 

Ругается

iptables: No chain/target/match by that name.

 

Как я понял, нужен модуль? NFQUEUE

Изменено пользователем roysbike

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите пожалуйста, что нужно еще добавить в iptables, после bsd еще пока не въехал .

 

$IPTABLES -A PREROUTING -s 172.30.0.0/16 -p tcp -m tcp --dport 80 -j NFQUEUE --queue-num 0 --queue-bypass

 

Ругается

iptables: No chain/target/match by that name.

$IPTABLES -t mangle -A PREROUTING -s 172.30.0.0/16 -p tcp -m tcp --dport 80 -j NFQUEUE --queue-num 0 --queue-bypass

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасибо , помогло! . Как фильтровать https?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

по ip-адресам :)

на dns фильтрую) домен

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.