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

536 members have voted

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



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

Как и обещал, представляю вашему вниманию фильтр extFilter, использующий DPDK, и работающий с зеркалом исходящего трафика от пользователей.

 

Спасибо! А можно еще пример внедрения с iptables\ebtables и vmbr на Linux, тут даже вроде писали про то что подходит инструкция от карбона — http://forum.nag.ru/forum/index.php?showtopic=79886&view=findpost&p=1259090

 

extFilter работает напрямую с сетевой картой, минуя сетевой стек Linux. В принципе, можно добавить в extFilter функционал, который будет выполнять L2 forwarding.

Share this post


Link to post
Share on other sites

max1976 , доброго времени суток!

Как я понял, zapret.pl повторно резолвит все домены из БД только если дамп из РКН обновился. А можно ли добавить функционал в zapret.pl для принудительного резолвинга доменов из БД?

Share this post


Link to post
Share on other sites

Как и обещал, представляю вашему вниманию фильтр extFilter, использующий DPDK, и работающий с зеркалом исходящего трафика от пользователей.

 

Спасибо! А можно еще пример внедрения с iptables\ebtables и vmbr на Linux, тут даже вроде писали про то что подходит инструкция от карбона — http://forum.nag.ru/forum/index.php?showtopic=79886&view=findpost&p=1259090

 

extFilter работает напрямую с сетевой картой, минуя сетевой стек Linux. В принципе, можно добавить в extFilter функционал, который будет выполнять L2 forwarding.

По повуду функционала:

1. Можно ли туда дабавить код анализа tcp-потока (как в snort), например на базе libntoh

2. Как использовать

3. Можно ли сделать анализ не всего трафика, а его часть

4. Бодет ли работать с veth?

Share this post


Link to post
Share on other sites

max1976 , доброго времени суток!

Как я понял, zapret.pl повторно резолвит все домены из БД только если дамп из РКН обновился. А можно ли добавить функционал в zapret.pl для принудительного резолвинга доменов из БД?

 

Запустите zapret.pl с ключом -f, тогда будет принудительно запрошен реестр и вне зависимости от состояния реестра, будут резолвиться все имена хостов.

Share this post


Link to post
Share on other sites

По повуду функционала:

1. Можно ли туда дабавить код анализа tcp-потока (как в snort), например на базе libntoh

2. Как использовать

3. Можно ли сделать анализ не всего трафика, а его часть

4. Бодет ли работать с veth?

 

1. Можно, всё в ваших руках.

2. Проще простого, делается зеркало исходящего трафика от пользователей на порт, куда подключен extfilter.

3. Можно делать что хотите, внеся изменения в код самостоятельно.

4. Здесь.

Edited by max1976

Share this post


Link to post
Share on other sites

Смотрите config.log для поиска причины.

Спасибо! Проблема была в конфликте установленных в системе Poco с установленными вручную. После удаления системных все собралось. gcc потребовался 4.9+ версии.

 

Пара вопросов:

1. В последних страницах форума писали, что в последних версиях увеличилась нагрузка на CPU. Какая ситуация сейчас?

2. Есть ли в открытом виде вариант с использованием ipsеt вместо bgpd?

3. Есть ли примерные результаты разницы в производительности между nfqfilter и extFilter?

4. Не подскажете как зеркаливать трафик на порт DPDK?

Share this post


Link to post
Share on other sites

Пара вопросов:

1. В последних страницах форума писали, что в последних версиях увеличилась нагрузка на CPU. Какая ситуация сейчас?

2. Есть ли в открытом виде вариант с использованием ipsеt вместо bgpd?

3. Есть ли примерные результаты разницы в производительности между nfqfilter и extFilter?

4. Не подскажете как зеркаливать трафик на порт DPDK?

 

1. Это уже решено в последних версиях.

2. Я этим не занимался.

3. Совсем разные принципы работы у nfqfilter и extfilter. Если при использовании nfqfilter надо направлять выборочный трафик в nfqueue, то при использовании extfilter достаточно на коммутаторе настроить зеркалирование исходящего трафика от пользователей на порт, подключенный к extfilter.

4. См. п. 4. Это уже зависит от конкретного коммутатора.

Share this post


Link to post
Share on other sites

А если роутер и extfilter находятся на одном сервере, то софтово можно сделать зеркалирование? Например через виртуальный интерфейс и iptables?

Share this post


Link to post
Share on other sites

А если роутер и extfilter находятся на одном сервере, то софтово можно сделать зеркалирование? Например через виртуальный интерфейс и iptables?

extfilter не предназначен для такого режима работы, используйте nfqfilter. Если вы хотите использовать extfilter, то надо его запускать на другом устройстве и зеркалировать трафик до роутера.

Share this post


Link to post
Share on other sites

По повуду функционала:

1. Можно ли туда дабавить код анализа tcp-потока (как в snort), например на базе libntoh

2. Как использовать

3. Можно ли сделать анализ не всего трафика, а его часть

4. Бодет ли работать с veth?

 

1. Можно, всё в ваших руках.

2. Проще простого, делается зеркало исходящего трафика от пользователей на порт, куда подключен extfilter.

3. Можно делать что хотите, внеся изменения в код самостоятельно.

4. Здесь.

 

1. Какие программы кроме snort умеют собирать пакеты

2. Можно ли отправить на анализ консретное колличество трафика.

3. Данный DPI не будет работать с чипсетами realtek. Который есть во многих дещёвых материнских платах.

4. Что делать, если мне досталась плата с realtek

Share this post


Link to post
Share on other sites

extfilter не предназначен для такого режима работы, используйте nfqfilter. Если вы хотите использовать extfilter, то надо его запускать на другом устройстве и зеркалировать трафик до роутера.

 

Получается я могу объединить порты в мост и с нескольких серваков с Accel-ppp и MPD зеркалировать на свиче исходящий трафик от пользователей? и все будет нормально блокироваться? А то все думал как прикрутить nfqfilter. А тут такое решение. max1976 Низкий поклон тебе за твои труды

Share this post


Link to post
Share on other sites

extfilter не предназначен для такого режима работы, используйте nfqfilter. Если вы хотите использовать extfilter, то надо его запускать на другом устройстве и зеркалировать трафик до роутера.

 

Получается я могу объединить порты в мост и с нескольких серваков с Accel-ppp и MPD зеркалировать на свиче исходящий трафик от пользователей? и все будет нормально блокироваться? А то все думал как прикрутить nfqfilter. А тут такое решение. max1976 Низкий поклон тебе за твои труды

 

Наверное вы имели в виду не мост, а bonding. Все зависит от того, какие каналы на сервера и какой будет канал к фильтру. В фильтре не предусмотрена поддержка bonding, но фильтр можно запустить на любом количестве сетевых карт, главное чтобы количество ядер процессора было не меньше.

 

1. Какие программы кроме snort умеют собирать пакеты

2. Можно ли отправить на анализ консретное колличество трафика.

3. Данный DPI не будет работать с чипсетами realtek. Который есть во многих дещёвых материнских платах.

4. Что делать, если мне досталась плата с realtek

 

1. Не знаю.

2. Если ваш коммутатор позволяет это сделать, то да.

3. Большая пропускная способность и дешевая сетевая карта несовместимы.

4. Купить хорошую сетевую карту.

Share this post


Link to post
Share on other sites

Есть ли в открытом виде вариант с использованием ipsеt вместо bgpd?

 

Вот мой вариант работы через ipset:

На бордере есть четыре списка ipset - dropnets, dropnetsrunning, tofilternets, tofilternetsrunning

 

Для блокирования запрещенных ip работает такое правило:

iptables -A FORWARD -m set --match-set dropnetsrunning dst -j DROP

 

Для перенаправления трафика на сторонний сервер с nfqfilter используется Policy-Routing:

iptables -t mangle -A PREROUTING ! -s 1.2.3.4/32 -m set --match-set tofilternetsrunning dst -j MARK --set-mark 3
ip route add default via 10.10.10.10 table 3
ip rule add fwmark 3 table 3

 

На сервере с nfqfilter трафик nat-ится, 1.2.3.4 - это внешний интерфейс, 10.10.10.10 - внутренний интерфейс.

 

Для обновления списков ipset взял за основу скрипт от max1976, выбросил лишнее, и вот что получилось:

 

#!/usr/bin/perl

use strict;
use warnings;
use utf8;
use Config::Simple;
use DBI;
use File::Basename;
use Log::Log4perl;
use Net::IP qw(:PROC);
use Net::CIDR::Lite;

binmode(STDOUT,':utf8');
binmode(STDERR,':utf8');

my $dir = File::Basename::dirname($0);

my $Config = {};
Config::Simple->import_from($dir.'/zapret-ipset.conf', $Config) or die "Can't open ".$dir."/zapret-ipset.conf for reading!\n";
Log::Log4perl::init( $dir.'/zapret-ipset-log.conf' );

my $logger=Log::Log4perl->get_logger();

my $db_host = $Config->{'DB.host'} || die "DB.host not defined.";
my $db_user = $Config->{'DB.user'} || die "DB.user not defined.";
my $db_pass = $Config->{'DB.password'} || die "DB.password not defined.";
my $db_name = $Config->{'DB.name'} || die "DB.name not defined.";

###my @resolvers = $Config->{'NS.resolvers'} || ();

my $dbh = DBI->connect("DBI:mysql:database=".$db_name.";host=".$db_host,$db_user,$db_pass,{mysql_enable_utf8 => 1}) or die DBI->errstr;
$dbh->do("set names utf8");

my $only_ip=0;
my $total_entry=0;
my %ip_s;
my %ip6_s;
my %ip_s_null;
my %ip6_s_null;
my %already_out;

my $ip_cidr=new Net::CIDR::Lite;
my $ip_cidr_null=new Net::CIDR::Lite;
my $ip6_cidr=new Net::CIDR::Lite;
my $ip6_cidr_null=new Net::CIDR::Lite;

my @ip_list;
my @ip6_list;
my @ip_list_null;
my @ip6_list_null;

# Выборка IP из таблицы zap2_ips
my $sth = $dbh->prepare("SELECT ip FROM zap2_ips UNION SELECT ip FROM zap2_only_ips");
$sth->execute;
while (my $ips = $sth->fetchrow_hashref())
{
my $ip=get_ip($ips->{ip});
next if($ip eq "0.0.0.0" || $ip eq "0000:0000:0000:0000:0000:0000:0000:0000");
my $ip_version=ip_get_version($ip);
if($ip_version == 4)
{
	$ip_cidr->add_any($ip);
} elsif ($ip_version == 6)
{
	$ip6_cidr->add_any($ip);
}
}
$sth->finish();
# Конец выборки IP из таблицы zap2_ips

# Выборка IP из таблицы zap2_only_ips
$sth = $dbh->prepare("SELECT ip FROM zap2_only_ips");
$sth->execute;
while (my $ips = $sth->fetchrow_hashref())
{
my $ip=get_ip($ips->{ip});
next if($ip eq "0.0.0.0" || $ip eq "0000:0000:0000:0000:0000:0000:0000:0000");
my $ip_version=ip_get_version($ip);
if($ip_version == 4)
{
	$ip_cidr_null->add_any($ip);
} elsif ($ip_version == 6)
{
	$ip6_cidr_null->add_any($ip);
}
}
$sth->finish();
# Конец выборки IP из таблицы zap2_only_ips

@ip_list=$ip_cidr->list();
%ip_s = map { $_ => 1 } @ip_list;
@ip6_list=$ip6_cidr->list();
%ip6_s = map { $_ => 1 } @ip6_list;
@ip_list_null=$ip_cidr_null->list();
%ip_s_null = map { $_ => 1 } @ip_list_null;
@ip6_list_null=$ip6_cidr_null->list();
%ip6_s_null = map { $_ => 1 } @ip6_list_null;

$logger->debug("ipset flush tofilternets");
system("ipset", "flush", "tofilternets");
foreach my $ip (@ip_list)
{
system("ipset", "add", "tofilternets", $ip);
}
$logger->debug("ipset swap tofilternets");
system("ipset", "swap", "tofilternets", "tofilternetsrunning");

$logger->debug("ipset flush dropnets");
system("ipset", "flush", "dropnets");
foreach my $ip (@ip_list_null)
{
system("ipset", "add", "dropnets", $ip);
}
$logger->debug("ipset swap dropnets");
system("ipset", "swap", "dropnets", "dropnetsrunning");

$dbh->disconnect();

sub get_ip
{
my $ip_address=shift;
my $d_size=length($ip_address);
my $result;
if($d_size == 4)
{
	$result=ip_bintoip(unpack("B*",$ip_address),4);
} else {
	$result=ip_bintoip(unpack("B*",$ip_address),6);
}
return $result;
}

 

Edited by apog

Share this post


Link to post
Share on other sites

extfilter не предназначен для такого режима работы, используйте nfqfilter. Если вы хотите использовать extfilter, то надо его запускать на другом устройстве и зеркалировать трафик до роутера.

 

Получается я могу объединить порты в мост и с нескольких серваков с Accel-ppp и MPD зеркалировать на свиче исходящий трафик от пользователей? и все будет нормально блокироваться? А то все думал как прикрутить nfqfilter. А тут такое решение. max1976 Низкий поклон тебе за твои труды

 

Наверное вы имели в виду не мост, а bonding. Все зависит от того, какие каналы на сервера и какой будет канал к фильтру. В фильтре не предусмотрена поддержка bonding, но фильтр можно запустить на любом количестве сетевых карт, главное чтобы количество ядер процессора было не меньше.

 

Да именно bonding. Сетевая Intel E1G44HT (I340-T4). К серверам через свич гигабитные каналы от роутера. и потом к пользователям. Снимать трафик лучше наверно с каналов выше стоящего провайдера или зеркалировать порты от серверов с ацель?

Edited by arhead

Share this post


Link to post
Share on other sites

Да именно bonding. Сетевая Intel E1G44HT (I340-T4). К серверам через свич гигабитные каналы от роутера. и потом к пользователям. Снимать трафик лучше наверно с каналов выше стоящего провайдера или зеркалировать порты от серверов с ацель?

 

Снимайте трафик после NAS/BRAS'ов.

Share this post


Link to post
Share on other sites

max1976 Подскажите пожалуйста. Как я правильно понял сначало собираем библиотеку Poco затем DPDK по инструции Не получилось запустить тест

 

 

root@proxy:/usr/src/dpdk-16.07# build/app/testpmd -c7 -n3 --vdev=eth_pcap0,iface=eth0 --vdev=eth_pcap1,iface=eth1
EAL: Detected 24 lcore(s)
EAL: Probing VFIO support...
PMD: Initializing pmd_pcap for eth_pcap0
PMD: Creating pcap-backed ethdev on numa socket 0
PMD: Initializing pmd_pcap for eth_pcap1
PMD: Creating pcap-backed ethdev on numa socket 0
PMD: bnxt_rte_pmd_init() called for (null)
EAL: PCI device 0000:05:00.0 on NUMA socket -1
EAL:   probe driver: 8086:10c9 rte_igb_pmd
EAL: PCI device 0000:05:00.1 on NUMA socket -1
EAL:   probe driver: 8086:10c9 rte_igb_pmd
EAL: PCI device 0000:07:00.0 on NUMA socket -1
EAL:   probe driver: 8086:150e rte_igb_pmd
EAL: PCI device 0000:07:00.1 on NUMA socket -1
EAL:   probe driver: 8086:150e rte_igb_pmd
EAL: PCI device 0000:07:00.2 on NUMA socket -1
EAL:   probe driver: 8086:150e rte_igb_pmd
EAL: PCI device 0000:07:00.3 on NUMA socket -1
EAL:   probe driver: 8086:150e rte_igb_pmd
USER1: create a new mbuf pool <mbuf_pool_socket_0>: n=163456, size=2176, socket=0
EAL: Error - exiting with code: 1
 Cause: Creation of mbuf pool for socket 0 failed: Cannot allocate memory

 

 

Попробовал собрать extFilter не понятны парамерты --with-dpdk_target=<target> --with-dpdk_home=<path_to_compiled_dpdk> какие пути прописывать?

 

ОС Debian 8 ядро стоковое.

Share this post


Link to post
Share on other sites

Cause: Creation of mbuf pool for socket 0 failed: Cannot allocate memory

 

Судя по всему не зарезервирована память под DPDK.

mkdir -p /mnt/huge
mount -t hugetlbfs nodev /mnt/huge
echo 64 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages

 

Попробовал собрать extFilter не понятны парамерты --with-dpdk_target=<target> --with-dpdk_home=<path_to_compiled_dpdk> какие пути прописывать?

 

--with-dpdk_home - полный путь к каталогу, где установлен dpdk. --with-dpdk_target - каталог внутри with-dpdk_home с собранным dpdk (например у меня это build).

Share this post


Link to post
Share on other sites

max1976 Подскажите пожалуйста. Как я правильно понял сначало собираем библиотеку Poco затем DPDK по инструции Не получилось запустить тест

 

 

root@proxy:/usr/src/dpdk-16.07# build/app/testpmd -c7 -n3 --vdev=eth_pcap0,iface=eth0 --vdev=eth_pcap1,iface=eth1
EAL: Detected 24 lcore(s)
EAL: Probing VFIO support...
PMD: Initializing pmd_pcap for eth_pcap0
PMD: Creating pcap-backed ethdev on numa socket 0
PMD: Initializing pmd_pcap for eth_pcap1
PMD: Creating pcap-backed ethdev on numa socket 0
PMD: bnxt_rte_pmd_init() called for (null)
EAL: PCI device 0000:05:00.0 on NUMA socket -1
EAL:   probe driver: 8086:10c9 rte_igb_pmd
EAL: PCI device 0000:05:00.1 on NUMA socket -1
EAL:   probe driver: 8086:10c9 rte_igb_pmd
EAL: PCI device 0000:07:00.0 on NUMA socket -1
EAL:   probe driver: 8086:150e rte_igb_pmd
EAL: PCI device 0000:07:00.1 on NUMA socket -1
EAL:   probe driver: 8086:150e rte_igb_pmd
EAL: PCI device 0000:07:00.2 on NUMA socket -1
EAL:   probe driver: 8086:150e rte_igb_pmd
EAL: PCI device 0000:07:00.3 on NUMA socket -1
EAL:   probe driver: 8086:150e rte_igb_pmd
USER1: create a new mbuf pool <mbuf_pool_socket_0>: n=163456, size=2176, socket=0
EAL: Error - exiting with code: 1
 Cause: Creation of mbuf pool for socket 0 failed: Cannot allocate memory

 

 

Попробовал собрать extFilter не понятны парамерты --with-dpdk_target=<target> --with-dpdk_home=<path_to_compiled_dpdk> какие пути прописывать?

 

ОС Debian 8 ядро стоковое.

 

По ошибке Cause: Creation of mbuf pool for socket 0 failed: Cannot allocate memory , попробуй https://www.stableit.ru/2015/04/dpdk-lpm-memory-allocation-failed.html

Share this post


Link to post
Share on other sites

При компиляции не может найти он nDPI который качает и компилирует.

 

 

Finished successfully building PcapPlusPlus libs

/usr/src/extfilter

checking for nDPI ./nDPI... not found

configure: Getting nDPI from git

Cloning into './nDPI'...

remote: Counting objects: 4384, done.

remote: Total 4384 (delta 0), reused 0 (delta 0), pack-reused 4384

Receiving objects: 100% (4384/4384), 11.58 MiB | 5.18 MiB/s, done.

Resolving deltas: 100% (2880/2880), done.

Checking connectivity... done.

/usr/src/extfilter

checking for nDPI ./nDPI... found in ./nDPI

checking for ./nDPI/src/lib/.libs/libndpi.a... not found, compiling...

autoreconf: Entering directory `.'

autoreconf: configure.ac: not using Gettext

autoreconf: running: aclocal --force -I m4

autoreconf: configure.ac: tracing

autoreconf: running: libtoolize --copy --force

libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'.

libtoolize: copying file `m4/libtool.m4'

libtoolize: copying file `m4/ltoptions.m4'

libtoolize: copying file `m4/ltsugar.m4'

libtoolize: copying file `m4/ltversion.m4'

libtoolize: copying file `m4/lt~obsolete.m4'

autoreconf: running: /usr/bin/autoconf --force

autoreconf: running: /usr/bin/autoheader --force

autoreconf: running: automake --add-missing --copy --force-missing

configure.ac:7: installing '../config.guess'

configure.ac:7: installing '../config.sub'

configure.ac:7: error: required file '../ltmain.sh' not found

parallel-tests: installing '../test-driver'

autoreconf: automake failed with exit status: 1

checking for a BSD-compatible install... /usr/bin/install -c

checking whether build environment is sane... yes

checking for a thread-safe mkdir -p... /bin/mkdir -p

checking for gawk... no

checking for mawk... mawk

checking whether make sets $(MAKE)... yes

checking whether make supports nested variables... yes

checking build system type... x86_64-unknown-linux-gnu

checking host system type... x86_64-unknown-linux-gnu

checking how to print strings... printf

checking for style of include used by make... GNU

checking for gcc... gcc

checking whether the C compiler works... yes

checking for C compiler default output file name... a.out

checking for suffix of executables...

checking whether we are cross compiling... no

checking for suffix of object files... o

checking whether we are using the GNU C compiler... yes

checking whether gcc accepts -g... yes

checking for gcc option to accept ISO C89... none needed

checking whether gcc understands -c and -o together... yes

checking dependency style of gcc... gcc3

checking for a sed that does not truncate output... /bin/sed

checking for grep that handles long lines and -e... /bin/grep

checking for egrep... /bin/grep -E

checking for fgrep... /bin/grep -F

checking for ld used by gcc... /usr/bin/ld

checking if the linker (/usr/bin/ld) is GNU ld... yes

checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B

checking the name lister (/usr/bin/nm -B) interface... BSD nm

checking whether ln -s works... yes

checking the maximum length of command line arguments... 1572864

checking whether the shell understands some XSI constructs... yes

checking whether the shell understands "+="... yes

checking how to convert x86_64-unknown-linux-gnu file names to x86_64-unknown-linux-gnu format... func_convert_file_noop

checking how to convert x86_64-unknown-linux-gnu file names to toolchain format... func_convert_file_noop

checking for /usr/bin/ld option to reload object files... -r

checking for objdump... objdump

checking how to recognize dependent libraries... pass_all

checking for dlltool... no

checking how to associate runtime and link libraries... printf %s\n

checking for ar... ar

checking for archiver @FILE support... @

checking for strip... strip

checking for ranlib... ranlib

checking command to parse /usr/bin/nm -B output from gcc object... ok

checking for sysroot... no

checking for mt... mt

checking if mt is a manifest tool... no

checking how to run the C preprocessor... gcc -E

checking for ANSI C header files... yes

checking for sys/types.h... yes

checking for sys/stat.h... yes

checking for stdlib.h... yes

checking for string.h... yes

checking for memory.h... yes

checking for strings.h... yes

checking for inttypes.h... yes

checking for stdint.h... yes

checking for unistd.h... yes

checking for dlfcn.h... yes

checking for objdir... .libs

checking if gcc supports -fno-rtti -fno-exceptions... no

checking for gcc option to produce PIC... -fPIC -DPIC

checking if gcc PIC flag -fPIC -DPIC works... yes

checking if gcc static flag -static works... yes

checking if gcc supports -c -o file.o... yes

checking if gcc supports -c -o file.o... (cached) yes

checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes

checking whether -lc should be explicitly linked in... no

checking dynamic linker characteristics... GNU/Linux ld.so

checking how to hardcode library paths into programs... immediate

checking whether stripping libraries is possible... yes

checking if libtool supports shared libraries... yes

checking whether to build shared libraries... yes

checking whether to build static libraries... yes

checking for gcc... (cached) gcc

checking whether we are using the GNU C compiler... (cached) yes

checking whether gcc accepts -g... (cached) yes

checking for gcc option to accept ISO C89... (cached) none needed

checking whether gcc understands -c and -o together... (cached) yes

checking dependency style of gcc... (cached) gcc3

checking if compiler needs -Werror to reject unknown flags... no

checking for the pthreads library -lpthreads... no

checking whether pthreads work without any flags... no

checking whether pthreads work with -Kthread... no

checking whether pthreads work with -kthread... no

checking for the pthreads library -llthread... no

checking whether pthreads work with -pthread... yes

checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE

checking if more special flags are required for pthreads... no

checking for PTHREAD_PRIO_INHERIT... yes

checking netinet/in.h usability... yes

checking netinet/in.h presence... yes

checking for netinet/in.h... yes

checking for stdint.h... (cached) yes

checking for stdlib.h... (cached) yes

checking for string.h... (cached) yes

checking for unistd.h... (cached) yes

checking for pcap_open_live in -lpcap... yes

./configure: line 12825: pkg-config: command not found

checking for NT_Init in -lntapi... no

checking for pthread_setaffinity_np in -lpthread... yes

checking that generated files are newer than configure... done

configure: creating ./config.status

config.status: error: cannot find input file: `Makefile.in'

make: *** No targets specified and no makefile found. Stop.

/usr/src/extfilter

yes

checking for compiling with nDPI... configure: error: Linking with nDPI failed!

 

Edited by arhead

Share this post


Link to post
Share on other sites

При компиляции не может найти он nDPI который качает и компилирует.

Ну так он пишет что не может скомпилировать. Посмотрите внимательно на наличие ошибок:

configure.ac:7: error: required file '../ltmain.sh' not found

 

Зайдите в каталог nDPI (cd nDPI), добавьте в файл configure.ac после AC_CONFIG_MACRO_DIR([m4]) строку AC_CONFIG_AUX_DIR([.]). Затем запустите

./autogen.sh | make

 

Затем возвращаетесь в каталог с фильтром (cd ..) и запускаете configure с нужными параметрами.

Share this post


Link to post
Share on other sites

При компиляции не может найти он nDPI который качает и компилирует.

Ну так он пишет что не может скомпилировать. Посмотрите внимательно на наличие ошибок:

configure.ac:7: error: required file '../ltmain.sh' not found

 

Зайдите в каталог nDPI (cd nDPI), добавьте в файл configure.ac после AC_CONFIG_MACRO_DIR([m4]) строку AC_CONFIG_AUX_DIR([.]). Затем запустите

 

./autogen.sh | make

 

Затем возвращаетесь в каталог с фильтром (cd ..) и запускаете configure с нужными параметрами.

 

 

Простите за мою невнимательность. Спасибо. Все собралось.

Share this post


Link to post
Share on other sites

Здравствуйте, тема не нова, но все же. Для себя сформировал 3 основных варианта:

 

1. Блок по IP

2. DNS blackhole (ну это заводим зону с А 127.0.0.1)

3. DPI

 

3ий вариант точно не пройдет в силу масштаба предприятия.

2ой вариант пройдет, если прикрыть dns трафик наружу, ну как-то облачно и неуверенно.

 

Блокировка по IP - просто, быстро, надежно, НО!

Как происходит процедура (в моем случае): смотрим А запись, добавляем хост(ы) в табличку, форвардим все запросы на 80,443,8080 порты к хостам из таблички на нашу страничку с "Приветствием".

 

Но что мешает взять IP адреса популярных ресурсов, повесить как А запись на заблокированный домен,и угарать. Еще веселее, если идет блокировка всего трафика с IP.

 

Ждем 1го Ноября и реестра...

Ну не все же

Share this post


Link to post
Share on other sites

что мешает взять IP адреса популярных ресурсов, повесить как А запись на заблокированный домен,и угарать.

Были прецеденты, вешали ip сайта ркн)))

Share this post


Link to post
Share on other sites

Вот мой вариант работы через ipset:

Спасибо! Буду пробовать!

 

extfilter не предназначен для такого режима работы, используйте nfqfilter. Если вы хотите использовать extfilter, то надо его запускать на другом устройстве и зеркалировать трафик до роутера.

Понимаю. Но всё-таки, возможно ли это в теории? Например собрать Open vSwitch с DPDK. И в нем зазеркалировать трафик. Не хочется, что бы простаивали мощности основного сервера, и использовать для этого второй.

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