max1976 Опубликовано 12 мая, 2016 · Жалоба https не переводит на страницу с объяснением блокировки, а пишет, что ошибка при установлении защищённого соединения. Https не редиректит. nfqfilter отсылает rst пакет клиенту, поэтому и возникает ошибка при установлении защищенного соединения с запрещенным сайтом. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oret Опубликовано 13 мая, 2016 (изменено) · Жалоба max1976 Спасибо за софтину. Фильтр прекрасно работал до вчерашнего вечера, но теперь nfqfilter падает после запуска, при включенном дебаге последние записи в логах - добавление записей из файла /contrib/hosts и все...ошибок нет. Если уровень логов по умолчанию, то последняя запись: "Warning Application - Pattern '247.caivp.biz/?▒▒▒▒▒_▒▒▒▒▒▒/' already present database from file /usr/local/etc/contrib/urls" Может, у кого то аналогичная проблема? Изменено 13 мая, 2016 пользователем oret Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 13 мая, 2016 · Жалоба max1976 Спасибо за софтину. Фильтр прекрасно работал до вчерашнего вечера, но теперь nfqfilter падает после запуска, при включенном дебаге последние записи в логах - добавление записей из файла /contrib/hosts и все...ошибок нет. Если уровень логов по умолчанию, то последняя запись: "Warning Application - Pattern '247.caivp.biz/?▒▒▒▒▒_▒▒▒▒▒▒/' already present database from file /usr/local/etc/contrib/urls" Может, у кого то аналогичная проблема? У меня работает без проблем. Попробуйте запустить в режиме приложения (запуск из консоли с указанием файла конфигурации -c /path/to/file) и посмотреть из-за чего происходит выход из программы. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oret Опубликовано 13 мая, 2016 · Жалоба У меня работает без проблем. Попробуйте запустить в режиме приложения (запуск из консоли с указанием файла конфигурации -c /path/to/file) и посмотреть из-за чего происходит выход из программы. Перелопатил все возможные причины - вроде все нормально. Восстановил виртуалку с фильтром из снапшота - все работает. По всей видимости, есть бэд-блоки на винтах, и либо сам nfqfilter либо необходимые ему файлы попадали туда. Спасибо за совет, посмотрю как дальше будет себя вести. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AN111 Опубликовано 13 мая, 2016 · Жалоба Есть предложение по небольшой оптимизации конфига для квагги: - встроить агрегацию IP в генератор конфига make_files.pl, на списке IP только из реестра при агрегации список сокращается примерно на 5% (~ на 1100 записей) по списку IP с дополнительным резолвом эффект будет чуть выше. Можно использовать например код из Net::CIDR::Lite; (что-то вроде $cidr=Net::CIDR::Lite->new(); $cidr->add_any($_); $cidr->list();) Также по опыту в последних кваггах vtysh нормально берет конфиг разом из STDIN (исключиться построчный вызов vtysh) P.S. возможная проблема при агрегации - удаление IP из реестра при ранее агрегированном блоке Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
reeder Опубликовано 15 мая, 2016 · Жалоба а есть какието альтернативные наработки в плане генерации списка адресов для квагги? пробовал на двух разных виртуалках и физических серверах, так и не получилось запустить адекватный резолвинг, оно сутками набирает свой кэш и все равно никак не угонится за актуальным состоянием адресов сервисов К самому фильтру претензий нет, все ок. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oret Опубликовано 15 мая, 2016 · Жалоба а есть какието альтернативные наработки в плане генерации списка адресов для квагги? пробовал на двух разных виртуалках и физических серверах, так и не получилось запустить адекватный резолвинг, оно сутками набирает свой кэш и все равно никак не угонится за актуальным состоянием адресов сервисов По собственному опыту проблемы возникают с ресурсами, которые хостятся на амазоне (52.х.х.х и 54.х.х.х) и с youtube. Решение - прогонять весь трафик идущий на амазон и youtube через фильтр путем добавления соответствующих префиксов в конфиг квагги и в файлы из каталога /contrib для того, чтобы nfqfilter мог посылать rst серверам с ip адресами из диапазона адресов, прописанных в файлах /contrib. Но, насколько я понимаю, сейчас скрипт zapret.pl работает только с одиночными ip (к сожалению, не могу добавить данный функционал сам, т.к. совсем не знаю perl). Главный вопрос - сможет ли nfqfilter переварить такой объем? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 17 мая, 2016 · Жалоба Есть предложение по небольшой оптимизации конфига для квагги: - встроить агрегацию IP в генератор конфига make_files.pl, на списке IP только из реестра при агрегации список сокращается примерно на 5% (~ на 1100 записей) по списку IP с дополнительным резолвом эффект будет чуть выше. Можно использовать например код из Net::CIDR::Lite; (что-то вроде $cidr=Net::CIDR::Lite->new(); $cidr->add_any($_); $cidr->list();) Также по опыту в последних кваггах vtysh нормально берет конфиг разом из STDIN (исключиться построчный вызов vtysh) Добавил данный функционал. Изменения опубликованы. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oret Опубликовано 17 мая, 2016 · Жалоба max1976 Спасибо, агрегация работает. А есть возможность добавить в nfqfilter обработку префиксов как опцию, т.е., допустим, в отдельном файле задавать список префиксов, для примера - 52.0.0.0/8, и добавлять эти префиксы в /contrib/ssl_ips, а в nfqfilter добавить проверку - если dst ip пакета входит в одну из подсетей и нельзя перенаправить на заглушку, то посылать rst? Чтобы не заморачиваться с конфигом квагги, трафик на эти префиксы можно перенаправлять статическими маршрутами на бордере, таким образом можно будет блочить казино, которые хостятся на амазоне и меняют ip раз в 5-10 минут (кеширование ip из более 1000 префиксов амазона займет очень много времени). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AN111 Опубликовано 17 мая, 2016 · Жалоба Добавил данный функционал. Изменения опубликованы. У меня новый скрипт подвисает на выполнении. Видно, что в квагу агрегированные маршруты залились, но 'wr mem' не сделан и скрипт висит. Возможно 2*exit после address-family ipv6 неправильно срабатывают. В конце заливки конфига вместо exit (в print $wtr "exit\n";) лучше использовать "end\n" для выхода их конфига в командный CLI кваги (перед wr mem) P.S. Переставил строки с добавлением/удалением маршрутов перед router bgp и закончил конфиг "end\n" вместо exit. Прошло нормально. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 17 мая, 2016 · Жалоба У меня новый скрипт подвисает на выполнении. Видно, что в квагу агрегированные маршруты залились, но 'wr mem' не сделан и скрипт висит. Возможно 2*exit после address-family ipv6 неправильно срабатывают. В конце заливки конфига вместо exit (в print $wtr "exit\n";) лучше использовать "end\n" для выхода их конфига в командный CLI кваги (перед wr mem) Причина не в этом, а в самом vtysh. Видимо при большом количестве изменений он подвисает. Второй и последующий запуски проходят без проблем, т.к. изменений мало. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AN111 Опубликовано 18 мая, 2016 · Жалоба Возможно 2*exit после address-family ipv6 неправильно срабатывают. В конце заливки конфига вместо exit (в print $wtr "exit\n";) лучше использовать "end\n" для выхода их конфига в командный CLI кваги (перед wr mem) Причина не в этом, а в самом vtysh. Видимо при большом количестве изменений он подвисает. Второй и последующий запуски проходят без проблем, т.к. изменений мало. Сомневаюсь. Заливаю на другой машине несколько раз в день с начала введения zapret-info в quagga полный конфиг на STDIN vtysh Ни разу проблем не было. Предлагаю переместить стоки с добавлением/удалением роутинга перед строками с router bgp и закончить "end" вместо "exit" примерно так: print $wtr "configure terminal\n"; #-перенесенный блок- # delete routes foreach my $ip (keys %ips_to_del_null) { print $wtr "no ip route $ip Null0\n"; } foreach my $ip (keys %ips6_to_del_null) { print $wtr "no ip route $ip Null0\n"; } # add routes foreach my $ip (keys %ips_to_add_null) { print $wtr "ip route $ip Null0\n"; } foreach my $ip (keys %ips6_to_add_null) { print $wtr "ip route $ip Null0\n"; } #-конец перенесенного блока- print $wtr "router bgp $bgp_as\n"; # delete networks foreach my $ip (keys %ips_to_del) { print $wtr "no network $ip\n"; } # add networks foreach my $ip (keys %ips_to_add) { print $wtr "network $ip\n"; } print $wtr "address-family ipv6\n"; foreach my $ip (keys %ips6_to_del) { print $wtr "no network $ip\n"; } foreach my $ip (keys %ips6_to_add) { print $wtr "network $ip\n"; } #-end вместо 2*exit- print $wtr "end\n"; print $wtr "write mem\n"; close($wtr); Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
dimukko Опубликовано 18 мая, 2016 · Жалоба Возможно 2*exit после address-family ipv6 неправильно срабатывают. В конце заливки конфига вместо exit (в print $wtr "exit\n";) лучше использовать "end\n" для выхода их конфига в командный CLI кваги (перед wr mem) Причина не в этом, а в самом vtysh. Видимо при большом количестве изменений он подвисает. Второй и последующий запуски проходят без проблем, т.к. изменений мало. Сомневаюсь. Заливаю на другой машине несколько раз в день с начала введения zapret-info в quagga полный конфиг на STDIN vtysh Ни разу проблем не было. Предлагаю переместить стоки с добавлением/удалением роутинга перед строками с router bgp и закончить "end" вместо "exit" примерно так: print $wtr "configure terminal\n"; #-перенесенный блок- # delete routes foreach my $ip (keys %ips_to_del_null) { print $wtr "no ip route $ip Null0\n"; } foreach my $ip (keys %ips6_to_del_null) { print $wtr "no ip route $ip Null0\n"; } # add routes foreach my $ip (keys %ips_to_add_null) { print $wtr "ip route $ip Null0\n"; } foreach my $ip (keys %ips6_to_add_null) { print $wtr "ip route $ip Null0\n"; } #-конец перенесенного блока- print $wtr "router bgp $bgp_as\n"; # delete networks foreach my $ip (keys %ips_to_del) { print $wtr "no network $ip\n"; } # add networks foreach my $ip (keys %ips_to_add) { print $wtr "network $ip\n"; } print $wtr "address-family ipv6\n"; foreach my $ip (keys %ips6_to_del) { print $wtr "no network $ip\n"; } foreach my $ip (keys %ips6_to_add) { print $wtr "network $ip\n"; } #-end вместо 2*exit- print $wtr "end\n"; print $wtr "write mem\n"; close($wtr); Попробовал обновить код с Вашими указаниями - результат тот же, выполнение конфигуратора подвисает на стадии работы с vtysh. Несколько раз запускать также пробовал. Кто может подсказать, если в первый раз запускать конфигуратор , сколько примерно по времени занимает работа? Автору огромная благодарность за проделанные труды! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oret Опубликовано 18 мая, 2016 · Жалоба Кто может подсказать, если в первый раз запускать конфигуратор , сколько примерно по времени занимает работа? У меня 40 минут работал скрипт без видимых изменений, прервал работу, запустил второй раз - полминуты и готово. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AN111 Опубликовано 18 мая, 2016 · Жалоба Возможно 2*exit после address-family ipv6 неправильно срабатывают. В конце заливки конфига вместо exit (в print $wtr "exit\n";) лучше использовать "end\n" для выхода их конфига в командный CLI кваги (перед wr mem) Предлагаю переместить строки с добавлением/удалением роутинга перед строками с router bgp и закончить "end" вместо "exit" то же, в виде diff для удобства сравнения (извиняюсь за много букв), у меня работает стабильно. --- make_files.pl.AGGR 2016-05-17 19:03:28.456330187 +0500 +++ make_files.pl.AGGR.change 2016-05-17 20:05:52.273294484 +0500 @@ -471,6 +471,16 @@ my ($rdr,$wtr); my $pid=open2($rdr,$wtr, "$vtysh"); print $wtr "configure terminal\n"; + # delete routes + foreach my $ip (keys %ips_to_del_null) + { print $wtr "no ip route $ip Null0\n"; } + foreach my $ip (keys %ips6_to_del_null) + { print $wtr "no ip route $ip Null0\n"; } + # add routes + foreach my $ip (keys %ips_to_add_null) + { print $wtr "ip route $ip Null0\n"; } + foreach my $ip (keys %ips6_to_add_null) + { print $wtr "ip route $ip Null0\n"; } print $wtr "router bgp $bgp_as\n"; # delete networks foreach my $ip (keys %ips_to_del) @@ -492,31 +502,7 @@ { print $wtr "network $ip\n"; } - print $wtr "exit\n"; - print $wtr "exit\n"; - # delete routes - foreach my $ip (keys %ips_to_del_null) - { - print $wtr "no ip route $ip Null0\n"; - } - - foreach my $ip (keys %ips6_to_del_null) - { - print $wtr "no ip route $ip Null0\n"; - } - - # add routes - foreach my $ip (keys %ips_to_add_null) - { - print $wtr "ip route $ip Null0\n"; - } - - foreach my $ip (keys %ips6_to_add_null) - { - print $wtr "ip route $ip Null0\n"; - } - - print $wtr "exit\n"; + print $wtr "end\n"; print $wtr "write mem\n"; close($wtr); Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
yKpon Опубликовано 19 мая, 2016 (изменено) · Жалоба возможно ли научить nfqfilter_config работать без кваги? поставить её и путь генерит конфиги в холостую как то не по фуншую P.S. подтверждаю, ОС центос 7, ./make_files.pl подвисает Изменено 19 мая, 2016 пользователем yKpon Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
taf_321 Опубликовано 19 мая, 2016 · Жалоба Там же голый перл. Закомментируйте те куски, где идет работа с vtysh, и всего делов. У себя вместо работы с кваггов поставил генерацию файлов для ipset и bird. Там возни на 10 минут с перекурами. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AN111 Опубликовано 19 мая, 2016 · Жалоба Еще замечено: в новой версии скрипта при изменении в файлах не проходит проверка if($domains_file_hash ne $domains_file_hash_old || $urls_file_hash ne $urls_file_hash_old || $ssl_host_file_hash ne $ssl_host_file_hash_old) Соответственно nfqfilter не рестартует. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 19 мая, 2016 · Жалоба Еще замечено: в новой версии скрипта при изменении в файлах не проходит проверка if($domains_file_hash ne $domains_file_hash_old || $urls_file_hash ne $urls_file_hash_old || $ssl_host_file_hash ne $ssl_host_file_hash_old) Соответственно nfqfilter не рестартует. С этим проблем не замечено, nfqfilter перезапускается при изменениях. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
oret Опубликовано 19 мая, 2016 · Жалоба Еще замечено: в новой версии скрипта при изменении в файлах не проходит проверка if($domains_file_hash ne $domains_file_hash_old || $urls_file_hash ne $urls_file_hash_old || $ssl_host_file_hash ne $ssl_host_file_hash_old) Соответственно nfqfilter не рестартует. Проблем с перезапуском нет, только что посмотрел лог выполнения: в случае изменений в файлах, nfqfilter перезапускается. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hsvt Опубликовано 21 мая, 2016 (изменено) · Жалоба May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:18 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: net_ratelimit: 546 callbacks suppressed May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:23 nfqfilter kernel: nf_queue: full at 4096 entries, dropping packets(s) May 21 23:05:28 nfqfilter kernel: net_ratelimit: 509 callbacks suppressed .......... .......... .......... May 21 23:35:24 nfqfilter systemd: nfqfilter.service stop-sigterm timed out. Killing. May 21 23:35:24 nfqfilter systemd: nfqfilter.service: main process exited, code=killed, status=9/KILL May 21 23:35:24 nfqfilter systemd: Unit nfqfilter.service entered failed state. May 21 23:35:24 nfqfilter systemd: nfqfilter.service failed. May 21 23:35:24 nfqfilter systemd: Starting Nfqilter filtering daemon... May 21 23:35:24 nfqfilter systemd: Started Nfqilter filtering daemon. ; номер очереди queue = 0 -A PREROUTING -s 10.0.0.0/8 -i enp5s0f0 -p tcp -m tcp -j NFQUEUE --queue-num 0 --queue-bypass -A PREROUTING -s x.x.x.0/22 -i enp5s0f0 -p tcp -m tcp -j NFQUEUE --queue-num 0 --queue-bypass -A PREROUTING -s x.x.x.0/22 -i enp5s0f0 -p tcp -m tcp -j NFQUEUE --queue-num 0 --queue-bypass cat /proc/net/netfilter/nfnetlink_queue 0 19026 0 2 65531 0 0 43746 1 Почему то переполнилась очередь и стал падать, что можно подкрутить, сделать побольше очередей? Это кстати произошло на следующий день после обновления на последний make_files.pl Изменено 21 мая, 2016 пользователем hsvt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 22 мая, 2016 · Жалоба через этот интерфейс еще случаем не ходит ли много всякого? посмотрите, что туда летит.. и уберите лишний трафик) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hsvt Опубликовано 22 мая, 2016 (изменено) · Жалоба через этот интерфейс еще случаем не ходит ли много всякого? посмотрите, что туда летит.. и уберите лишний трафик) Да uptime месяц был, ничего не менялось, кроме обновление make_files.pl. Левого трафика особо не вижу, много yuotube с https/http. Единственное что, как тут выше уже указывали, трафик который заворачивается на заглушку видимо тоже попадает в nfqueue так как заглушка на этой же машине и находится. Как бы сделать исключение через "!" или перенести на другую машину? И может быть есть смысл добавить в правила --dport 80,443 и еще какие то нестандартные порты для картшаринга например, + --queue-balance ? Изменено 22 мая, 2016 пользователем hsvt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
zhenya` Опубликовано 23 мая, 2016 · Жалоба iptables -t mangle -I PREROUTING 1 -d <ip тазика> -j ACCEPT попробуйте так.. трафик, который идет на сервер не нужно обрабатывать.. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
hsvt Опубликовано 23 мая, 2016 (изменено) · Жалоба iptables -t mangle -I PREROUTING 1 -d <ip тазика> -j ACCEPT попробуйте так.. трафик, который идет на сервер не нужно обрабатывать.. Спасибо, сделал тоже самое, но запихал служебные IP в ipset. -A PREROUTING -m set --match-set no_queue dst -j ACCEPT А как увеличить в sysctl.conf длину очереди? 2016-05-23 12:52:19.800 [11209] Information nfqThread - Setting queue length to 4096 Изменено 23 мая, 2016 пользователем hsvt Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...