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

533 members have voted

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



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

2018-04-19 00:21:18 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 01:01:15 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 01:41:13 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 02:20:46 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 03:21:42 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 03:40:46 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 04:21:12 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 04:40:45 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 05:21:41 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 05:41:12 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 06:21:42 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 07:21:41 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 07:41:23 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 08:20:46 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 09:01:17 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 09:41:21 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 10:01:17 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 10:40:46 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 11:01:18 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 11:41:46 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 12:20:45 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 12:41:16 | INFO  | main  | Version Dump: 2.3. OK
2018-04-19 13:41:12 | INFO  | main  | Version Dump: 2.3. OK
 

 

Обработка пользовательского списка исключений же

if( defined($EX_IPS{$ip}) )

{

# print "Excluding ip ".$ip.": match excluded ip in DB.\n";

$MAIL_EXCLUDES .= "Excluding ip ".$ip.": match excluded ip in DB.\n";

$logger->debug("Excluding ip ".$ip);

next;

}
 

Share this post


Link to post
Share on other sites
8 минут назад, myth сказал:

Обработка пользовательского списка исключений же

Нет. Следующий блок. где ZAP_OLD_IPS

Share this post


Link to post
Share on other sites

Исправлено поведение zapret.pl при обнаружении пустого ip.

Share this post


Link to post
Share on other sites

Подскажите, как СКАТ блокирует подсети? ICMP должны проходить?

Например сеть 91.108.4.0/22. Есть хост 91.108.4.10, который у оператора со СКАТом отвечает на ICMP но выдаёт заглушку при обращении через WEB. А как он с другими сетевыми портами поступает? Блочит?

Share this post


Link to post
Share on other sites

Аналогично с zapret.pl:

2018-04-19 13:41:38 | ERROR | main  | Eval: Can't call method "binip" on an undefined value at /usr/local/scripts/zapret/zapret.pl line 867.
2018-04-19 13:41:58 | INFO  | main  | Load iterations: 1, resolved domains ipv4: 0, resolved domains ipv6: 0
2018-04-19 13:41:58 | INFO  | main  | Added: domains: 1, urls: 2, IPv4 ips: 2, IPv6 ips: 0, subnets: 0, records: 3
2018-04-19 13:41:58 | INFO  | main  | Deleted: old domains: 15633, old urls: 13661, old ips: 58781, old only ips: 835, old subnets: 20, old records: 28162

Самое плохое в последней строчке. Похоже скрипт пропустил все, что после возникновения ошибки и почистил БД.

 

4 минуты назад, max1976 сказал:

Исправлено поведение zapret.pl при обнаружении пустого ip.

Пока писал, исправлено )) Спасибо.

Share this post


Link to post
Share on other sites
24 минуты назад, max1976 сказал:

Исправлено поведение zapret.pl при обнаружении пустого ip.

Спасибо, все работает

Share this post


Link to post
Share on other sites
29 минут назад, max1976 сказал:

Исправлено поведение zapret.pl при обнаружении пустого ip.

Спасибо.

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

Share this post


Link to post
Share on other sites

Если кому-то интересно, я выложил новую версию zapret.pl. Из кода удален функционал резолвинга доменов. Переделан алгоритм разбора xml, работы с реестром, что существенно сократило время обработки реестра. Можно ставить в крон вызов скрипта каждые 10 минут, что позволит оперативно обновлять БД. Теперь, при возникновении нештатных ситуаций с реестром, не будет очистки БД.

Edited by max1976

Share this post


Link to post
Share on other sites

Сделал скриптик, который считает статистику по дампу.

Статистика по дампу
  Сводка по URL: 
  - всего записей: 58627
  - наиболее длинный URL: 1133
  - протокол HTTP: всего 50721; порты 80 81 888 8001 8080 8081 
  - протокол HTTPS: всего 7894; порты 443 16869 
  - другие протоколы: всего 12; newcamd525 
  - top-10 доменов: vidoevo.com myvido1.com exyi.com agaclip.com viduba.com molodegka.xyz graniru.info paktune.pk voroniny-online.pw pixiv.net 
  Сводка по доменам: 
  - всего доменов: 68318
  - из них с маской: 3641
  - top-10 доменов без маски: sl.pt googleusercontent.com bcdl.rocks bkfind.space amazonaws.com ru.com bookolimp.site sl-reverse.com graniru.info sexros.net 
  - top-10 доменов с маской: bkfind.space ru.com olimp9b55.gdn olimp6301.site olimpa88c.site olimpa89a.top olimp98b4.top olimp656f.top olimp58e8.top olimp4859.top 
  Сводка по IP-адресам: 
  - всего адресов: 2612
  - top-10 для адресов: 188.42.196 185.49.71 188.42.189 185.106.140 185.82.210 173.0.153 188.124.247 87.117.232 185.164.174 125.209.252 
  - всего подсетей: 61
  - top-10 для подсетей: 
      34.192.0.0/10
      52.192.0.0/11
      35.192.0.0/12
      35.208.0.0/12
      35.224.0.0/12
      52.64.0.0/12
      54.144.0.0/12
      54.160.0.0/12
      34.240.0.0/13
      34.248.0.0/13
  - общий размер подсетей: 18197760

Сам скрипт под спойлером.

Скрытый текст

Для работы скрипта нужен сам дамп в XML, и пакет xmlstarlet.


#!/bin/bash

### Работа с дампом - статистика

ERDI_XML="/usr/bin/xmlstarlet"
DUMP="путь-к-дампу/dump_last.xml"
echo "Дамп: $DUMP (байт `stat --format='%s' $DUMP`, строк `wc --lines $DUMP | cut -d' ' -f1`)"

# | sed -e 's/\(.*\)/\U\1/' | xargs idn --quiet -u --no-tld

echo "Формируются списки из дампа..."

echo "- список адресов (list-url.txt)"
"${ERDI_XML}" select -T -t -m "/reg:register/content[not(@blockType) and url]" \
 -v "url" -n "$DUMP" \
 | sort -u | awk '{ print length, $0 }' | sort -nr | cut -d" " -f2- \
 > list-url.txt

echo "- список доменов (list-domain.txt)"
"${ERDI_XML}" select -T -t -m "/reg:register/content[@blockType='domain']" \
 -v "domain" -n "$DUMP" \
 | idn --quiet | sed 's/\(.*\)/\L\1/' \
 | sed 's/\.$//' \
 | sort -u | awk '{ print length, $0 }' | sort -nr | cut -d" " -f2- \
 > list-domain.txt

echo "- список доменов с маской (list-mask.txt)"
"${ERDI_XML}" select -T -t -m "/reg:register/content[@blockType='domain-mask']" \
 -v "domain" -n "$DUMP" \
 | idn --quiet | sed 's/\(.*\)/\L\1/' \
 | sed 's/\.$//' \
 | sort -u | awk '{ print length, $0 }' | sort -nr | cut -d" " -f2- \
 > list-mask.txt

echo "- список IP-адресов (list-ip.txt)"
"${ERDI_XML}" select -T -t -m "/reg:register/content[@blockType='ip' and ip]" \
 -v "ip" -n "$DUMP" \
 | sort -V -u \
 > list-ip.txt

echo "- список IP-подсетей (list-net.txt)"
"${ERDI_XML}" select -T -t -m "/reg:register/content[@blockType='ip' and ipSubnet]" \
 -v "ipSubnet" -n "$DUMP" \
 | sort -V -u \
 > list-net.txt

echo "Статистика по дампу"
echo "  Сводка по URL: "
echo "  - всего записей: `wc --lines list-url.txt | cut -d' ' -f1`"
echo "  - наиболее длинный URL: `head -n 1 list-url.txt | wc --chars`"
echo "  - протокол HTTP: всего `grep -c -E '^http://' list-url.txt`; порты `grep -E '^http://[^/]+:[0-9]+' list-url.txt | grep -E -o '^http://[^/]+:[0-9]+' | cut -d':' -f3 | sort -u -n | tr '\n' ' '`"
echo "  - протокол HTTPS: всего `grep -c -E '^https://' list-url.txt`; порты `grep -E '^https://[^/]+:[0-9]+' list-url.txt | grep -E -o '^https://[^/]+:[0-9]+' | cut -d':' -f3 | sort -u -n | tr '\n' ' '`"
echo "  - другие протоколы: всего `grep -c -E -v '^https?://' list-url.txt`; `grep -E -v '^https?://' list-url.txt | grep -E -o '^.+://' | cut -d':' -f1 | sort -u | tr '\n' ' '`"
echo "  - top-10 доменов: `grep -E -o '^https?://[^/]+' list-url.txt | cut -d':' -f2 | cut -c3- | cut -d'.' -f2- | grep -F '.' | sort | uniq -c | sort -nr | head -n 10 | cut -c9- | tr '\n' ' '`"
echo "  Сводка по доменам: "
echo "  - всего доменов: `wc --lines list-domain.txt list-mask.txt | tail -n 1 | grep -E -o '[0-9]+'`"
echo "  - из них с маской: `wc --lines list-mask.txt | cut -d' ' -f1`"
echo "  - top-10 доменов без маски: `rev list-domain.txt | cut -d'.' -f1-2 | rev | sort | uniq -c | sort -nr | head -n 10 | cut -c9- | tr '\n' ' '`"
echo "  - top-10 доменов с маской: `rev list-mask.txt | cut -d'.' -f1-2 | rev | sort | uniq -c | sort -nr | head -n 10 | cut -c9- | tr '\n' ' '`"
echo "  Сводка по IP-адресам: "
echo "  - всего адресов: `wc --lines list-ip.txt | cut -d' ' -f1`"
echo "  - top-10 для адресов: `cut -d'.' -f1-3 list-ip.txt | sort -V | uniq -c | sort -nr | head -n 10 | cut -c9- | tr '\n' ' '`"
echo "  - всего подсетей: `wc --lines list-net.txt | cut -d' ' -f1`"
echo "  - top-10 для подсетей: "
sort -n -t'/' -k2 list-net.txt | head -n 10 | sed  's/^/      /'
echo "  - общий размер подсетей: `cut -d'/' -f2 list-net.txt | awk '{s+=2^(32-$1)}END{print s}'`"

Скрипт вначале выгружает разные типы записей в разные файлы, а затем по ним получает статистику.

 

Share this post


Link to post
Share on other sites

Перешел на dev ветку, потестю

 

Наверное, так лучше $logger->info("Starting RKN at ".(localtime()));

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Тоже клон гита сделал, но потестить пока не могу. Мне ресурс выгрузки vigruzki.rkn.gov.ru уже второй день недоступен ни через один аплинк :)

Share this post


Link to post
Share on other sites
44 минуты назад, big-town сказал:

Мне ресурс выгрузки vigruzki.rkn.gov.ru уже второй день недоступен ни через один аплинк :)

А пальчиком РКН еще не грозил? А то у мена была похожая ситуация года два назад.

Share this post


Link to post
Share on other sites
4 минуты назад, arhead сказал:

А пальчиком РКН еще не грозил? А то у мена была похожая ситуация года два назад.

А мы уже ученые. Сделал скрины трэйсера и отослал в обл. отделение РКН, где явно видно что проблемы не у меня. Интернет ломал не я ;).

Edited by big-town

Share this post


Link to post
Share on other sites
2 часа назад, max1976 сказал:

Если кому-то интересно, я выложил новую версию zapret.pl. Из кода удален функционал резолвинга доменов. Переделан алгоритм разбора xml, работы с реестром, что существенно сократило время обработки реестра. Можно ставить в крон вызов скрипта каждые 10 минут, что позволит оперативно обновлять БД. Теперь, при возникновении нештатных ситуаций с реестром, не будет очистки БД.

 

Спасибо за труд, а в zapret.sql появились изменения и лучше БД новую залить?

 

 

Share this post


Link to post
Share on other sites
Только что, hsvt сказал:

Спасибо за труд, а в zapret.sql появились изменения и лучше БД новую залить?

Можно в новую, а можно и текущую обновить:

alter table zap2_records add column hash varchar(60) NULL;
CREATE INDEX record_id_idx ON zap2_domains(record_id);
CREATE INDEX record_id_idx ON zap2_only_ips(record_id);
CREATE INDEX record_id_idx ON zap2_urls(record_id);
CREATE INDEX record_id_idx ON zap2_subnets(record_id);

 

Share this post


Link to post
Share on other sites

Еще надо:

ALTER TABLE zap2_domains CHANGE COLUMN `domain` `domain` varchar(255) DEFAULT NULL;

Share this post


Link to post
Share on other sites
8 минут назад, SokolovS сказал:

Еще надо:


ALTER TABLE zap2_domains CHANGE COLUMN `domain` `domain` varchar(255) DEFAULT NULL;

Зачем оно изначально varchar(255) DEFAULT NULL

+--------------+-----------------+------+-----+-------------------+----------------+
| Field        | Type            | Null | Key | Default           | Extra          |
+--------------+-----------------+------+-----+-------------------+----------------+
| id           | int(6) unsigned | NO   | PRI | NULL              | auto_increment |
| date_add     | timestamp       | NO   |     | CURRENT_TIMESTAMP |                |
| record_id    | int(6) unsigned | NO   | MUL | NULL              |                |
| domain       | varchar(255)    | NO   |     | NULL              |                |
| domain_fixed | varchar(60)     | NO   |     | NULL              |                |
+--------------+-----------------+------+-----+-------------------+----------------+

 

Share this post


Link to post
Share on other sites
5 минут назад, big-town сказал:

Зачем оно изначально varchar(255) DEFAULT NULL


+--------------+-----------------+------+-----+-------------------+----------------+
| Field        | Type            | Null | Key | Default           | Extra          |
+--------------+-----------------+------+-----+-------------------+----------------+
| id           | int(6) unsigned | NO   | PRI | NULL              | auto_increment |
| date_add     | timestamp       | NO   |     | CURRENT_TIMESTAMP |                |
| record_id    | int(6) unsigned | NO   | MUL | NULL              |                |
| domain       | varchar(255)    | NO   |     | NULL              |                |
| domain_fixed | varchar(60)     | NO   |     | NULL              |                |
+--------------+-----------------+------+-----+-------------------+----------------+

 

См. определение таблицы:

https://github.com/max197616/zapret/blob/master/zapret.sql

И у вас в колонке Null стоит NO.

Edited by SokolovS

Share this post


Link to post
Share on other sites
8 минут назад, SokolovS сказал:

И у вас в колонке Null стоит NO.

Извиняюсь, на размер смотрел, упустил из виду NULL.

Share this post


Link to post
Share on other sites
3 часа назад, max1976 сказал:

Если кому-то интересно, я выложил новую версию zapret.pl. Из кода удален функционал резолвинга доменов. Переделан алгоритм разбора xml, работы с реестром, что существенно сократило время обработки реестра. Можно ставить в крон вызов скрипта каждые 10 минут, что позволит оперативно обновлять БД. Теперь, при возникновении нештатных ситуаций с реестром, не будет очистки БД.

Если в конфиге переменная our_blacklist закомментирована, то в логе будет ошибка открытия файла.

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