Форум Зейского сообщества любителей ОС Linux и Unix

Тематические обсуждения *nix => Сеть => Тема начата: Vena от Понедельник, 21 Августа, 2017, 04:57:20

Название: вопрос по блокировке сайтов на роутере с OpenWrt
Отправлено: Vena от Понедельник, 21 Августа, 2017, 04:57:20
Хочу заблокировать полностью доступ к сайту. По рекомендациям, вписываю в /etc/hosts
0.0.0.0 ya.ru
Потом перезапускаю
/etc/init.d/dnsmasq restart
Все работает, сайт недоступен. Но это работает только с сайтами без https, например на ютюб таким образом не могу выполнить блокировку.
Как правильно сделать блокировку по имени сайта?
Название: Re: вопрос по блокировке сайтов на роутере с OpenWrt
Отправлено: vovka от Вторник, 22 Августа, 2017, 11:46:40
Не всё так просто.
Для этих целей конечно лучше использовать прокси-сервер, который может "разбирать" запросы и применять к ним фильтры и маски, но если такой возможности нет, то блокируем и по ip, и по доменным именам.
 
Вышеописанная блокировка возможно и не будет работать, поскольку не указываются второстепенные сервера, с которых идёт подгрузка данных. Для примера, в линукс-терминале введём:
$ nslookup youtube.com
Server: 192.168.51.2
Address: 192.168.51.2#53

Non-authoritative answer:
Name: youtube.com
Address: 173.194.44.64
Name: youtube.com
Address: 173.194.44.65
Name: youtube.com
Address: 173.194.44.66
Name: youtube.com
Address: 173.194.44.67
Name: youtube.com
Address: 173.194.44.68
Name: youtube.com
Address: 173.194.44.69
Name: youtube.com
Address: 173.194.44.70
Name: youtube.com
Address: 173.194.44.71
Name: youtube.com
Address: 173.194.44.72
Name: youtube.com
Address: 173.194.44.73
Name: youtube.com
Address: 173.194.44.78

Другими словами, за youtube.com прячется кластер серверов - это раз. Теперь, откроем браузер Мозилла, перейдём на youtube.com. Далее откроем меню: "Инструменты" --> "Вэб-разработка" --> "Сеть". В табличке, в колонке "Домен" видим список сторонних ресурсов, контент которых используется для открытия страницы, которые, в свою очередь, тоже являются кластерами - это два. И в итоге, нужно вести блокировку и по ip и по доменным именам не только основной страницы, но и всех второстепенных страниц. Понятно что список "запрещённых" сайтов будет ооочень большой даже для малого количества сайтов. Точка блокировки - это фаирвол (или прокси-сервер), а не hosts или hosts.allow\hosts.deny) поскольку, если потребуется проверить связь или DNS на машине, то придётся перелопачивать hosts или его оперативно менять. Фаирвол же можно просто включить и выключить, если потребуется, а запросы DNS на резолв на запрещённые имена будет работать исправно.