Страница 1 из 2

[BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 23 мар 2016, 16:25
Dragon_Knight
Всем привет.

Представляю Вашему вниманию скрипт блокировки плохих сайтов средствами DNS сервера в RouterOS.
Скрипт представляет собой установщик большого кол-ва статических записей DNS сервера, которые перенаправляют 'плохие' домены на адрес 127.0.0.1, что во первых Блокирует много рекламы, вирусные сайты, сайты отслеживающие Ваше поведение в сети и т.д, и во вторых ускоряют загрузку страницы и немного уменьшают общий трафик.

Для запуска и установки необходимо загрузить распакованные файлы в Ваш роутер, открыть консоль и выполнить команду "import file-name=BbDNS_Install.rsc". Установка происходит продолжительное время. После установки, файлы с Вашего роутера можно удалить.
Для удаление необходимо загрузить распакованный файл 'BbDNS_Uninstall.rsc' (если он был удалён) в Ваш роутер, открыть консоль и выполнить команду "import file-name=BbDNS_Uninstall.rsc". После удаления, файлы с Вашего роутера можно удалить.

Актуальная версия: 28.03.2016г.
Количество записей: 15198шт.

!!! ВНИМАНИЕ !!!
По сообщениям некоторых пользователей, после установки скрипта роутер перестаёт запускаться и требуется переустановки OS средствами NetInstall.
И хотя мне не удалось повторить проблему на нескольких железках, я должен сказать что я не несу никакой ответственности за возможные проблемы. Всё устанавливаете на свой страх и риск.

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 23 мар 2016, 21:32
podarok66
Ого, 15 тысяч записей. Недетский труд...

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 24 мар 2016, 00:41
Dragon_Knight
podarok66, гугл + скрипт на php + час ожидания. Вот и весь труд)

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 22 янв 2017, 05:19
Dragon_Knight
Итак, решил обновить свой скрипт, и столкнулся со следующей проблемой, и хочу поинтересоваться о вашем мнении...

Нашёл я актуальный, часто обновляемый список "плохих" сайтов разбитые на 5 категорий (число после названия это кол-во записей на данный момент):
Base - 32166 - Базовая защита от adware + malware.
Fakenews - 561 - Сайты фейковских новостей.
Gambling - 1521 - Азартные игры.
Porn - 7763 - Тут всё ясно :)
Social - 230 - Соц. сети.
Итого 42241 записи.

Решил проверить список для среднестатистического пользователя, т.е. без предпоследнего пункта и словил следующую проблему:
Не считая того, что скрипт работал минут 10, добавляя записи, размер занимаемой оперативной памяти вырос на 108962 KiB, при этом роутер загружался 10 минут 20 секунд, и это на CCR1009. Роутеры попроще просто физически не смогут отработать такой объём.
Список не очень грамотный, ибо например есть плохой домен zxc.ru и у него 500 поддоменов 3, 4... уровней. Итого получаем 501 запись, когда по факту одна нужна, но я не знаю как произвести фильтрацию, при этом не заблокировав полезные сайты...

Хотел услышать Ваши мысли по этому поводу.
Сам скрипт тут: http://mikrotik.globalzone.su/BbDNSv2.rsc, но я не рекомендую его использовать, т.к. последствия могут быть не предсказуемые, вплоть до восстановление роутера через NetInstall.

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 22 янв 2017, 10:30
Vlad-2
Работа была проделана большая и Вам за неё респект.

Я конечно не стал скрипт на рабочий CCR1016-12G раскручивать, честно - страшновато, да и без связи не хотел остаться.
Но когда дома есть ESX почему бы не попробовать Ваш скрипт на CHR и вот минут 10 -- скачал образ, развернул виртуалку,
(брал самую самую 6.39.15 - самый RC свежак) и залил туда Ваш скрипт и выполнил его (импортировал).
Итак, при 4х vCPU (2сокета и 2 ядра)(1750MHz) и 512 мб памяти он импортировал его 4 минуты, правда может можно было ещё быстрее,
но так как, в EXS у меня CHR был развёрнут в пуле, где я ограничиваю ресурсы тестовым виртуалкам (чтобы основные не схлопнулись).
Потом ребутнул CHR и после ребута меня винбокс не пускал с минуты 1,5-2 минуты, хотя через консольку виртуальной машины (то
есть локально вошёл под админом). Потом зашёл и винбоксом - запустил профайл и смотрел, DNS процесс 25% отжирал. Всё это длилось
около 4-5 минут и всё.
Итог: виртуальный микротик не схлопнулся, физически и виртуально работает, аптайм уже 2-3 часа. Трафик пока через него не гонял,
задача была проверить как скрипт импортируется и как поведёт себя виртуалка (умрёт или нет).

P.S.
Просто решил поделиться, вдруг будет интересно...

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 22 янв 2017, 16:33
Dragon_Knight
Vlad-2, спасибо за тест на физической машине. Результаты интересные, хотя и ожидаемые.
Вообще DNS инициализируется где то после базовой инициализации железа, свичей, бриджей, фаервола, но до инициализации wifi, ppp и так далее, поэтому роутер долго не подключается к интернету.

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 24 янв 2017, 19:57
Dragon_Knight
Смог актуализировать список доменов, путём проверки каждого у Google DNS.
Получился следующий список, где первое число столько сейчас а второе сколько было, однако всё равно список огромный..
Base - 26806 / 32166 - Базовая защита от adware + malware.
Fakenews - 558 / 561 - Сайты фейковских новостей.
Gambling - 1422 / 1521 - Азартные игры.
Porn - 6831 / 7763 - Тут всё ясно :)
Social - 194 / 230 - Соц. сети.
Итого 35811 / 42241 записи.

Сам скрипт тут: http://mikrotik.globalzone.su/BbDNSv2.rsc, но я не рекомендую его использовать, т.к. последствия могут быть не предсказуемые, вплоть до восстановление роутера через NetInstall.

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 30 дек 2017, 12:57
enzain
Может быть, проще добавить эти записи в аддрес лист и делать отбивку реджектед? (ну или редирект на свою заглушку)

А не средствами днс, никто не пробовал таким путем? для ип листов вроде это вменяемое количество записей, и не должно особо сильно тормозить, если что есть CHR - если кто переделает на адрес листы могу потестить.
Ну или сам могу переделать конечно .. но лениво, прямо скажем :)

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 31 дек 2017, 03:05
Dragon_Knight
Проблема IP адресов что их легко поменять, а вот домен - нет. Собственно для этого и использую домены в ботах, вирусах и рекламе.

Re: [BbDNS] Блокировка 'плохих' сайтов средствами DNS

Добавлено: 31 дек 2017, 14:57
enzain
Dragon_Knight писал(а):Проблема IP адресов что их легко поменять, а вот домен - нет. Собственно для этого и использую домены в ботах, вирусах и рекламе.

В IP листы можно добавлять как раз таки домены, и они будут обновляться там.

Попробуйте. (при этом будут получаться все записи А и АААА)

т.е. в лист вы можете добавить mail.ru - в итоге получите несколько адресов и ипв4 все, и ипв6 если добавите и в тот ип-лист