Форум OlegON > Компьютеры и Программное обеспечение > Сеть

Mikrotik. Блокировка доступа к HTTPS сайтам

29.05.2020 14:19


06.11.2016 09:34
OlegON
 
Потребовалось для определенных сайтов, в определенное время блокировать определенные сайты. Открыл кучу док и Wiki, прочитал про Layer7, создал правило для Youtube и ... Не работает.

Собственно, после некоторого разбирательства и размышлений понял, что правило работает исключительно для HTTP, что вполне объяснимо, поскольку HTTPS-траффик шифрованный и в его пакетах текст не разглядишь.

Почесал затылок. Получается, что единственное, где можно отловить обращения к ресурсам - DNS. Все было бы проще, если бы надо было заблокировать доступ всем, прописать бы в DNS другие адреса.

Придумал только следующее. Запретил проход DNS дальше рутера и Layer7 применил к пакетам DNS в INPUT-цепочке. По задумке в определенное время браузер не сможет разрешить имя сайта и тот не откроется. Понятное дело, что для доменов, которые можно надолго закешировать, такое не сработает.

У кого-то есть еще идеи? Необязательно Mikrotik. Общие принципы могут быть реализованы и в нем.
07.11.2016 06:49
EugeneT
 
Без подмены сертификата на прокси никак не сделаешь. запрет DNS решает проблемы лишь отчасти, никто ж не мешает юзеру взять и прописать ипы в hosts.
На сквиде делается примерно так:
Ессно браузеры будут ругаться на подмену сертификата.

По DNS, вместо layer7 лучше использовать, появившуюся в 6.37, возможность прописать в address list доменное имя, на его основе создается динамический список ипов, который обновляется с частой TTL SOA, и блокировать его.
07.11.2016 07:24
OlegON
 
Да, с подменой сертификата все понятно, спасибо, но, если отбросить эти ошибки с сертификатами, что серьезный минус, сквид пока некуда поставить. Да и подтормаживает он заметно, особенно на невыделенной машине.
А вот с доменными именами не знал, спасибо, переделаю.
07.11.2016 21:46
OlegON
 
Попробовал, что-то не работает :( Да, пинг, например, сразу помирает, а вот сам сайт youtube в браузере не сдыхает, видимо, пользуется кешем. И drop и reject пробовал... Сам стриминг идет из cache.google.com, а GUI вот хз как отрисовывает.
08.11.2016 10:10
EugeneT
 
а в ip/firewall/connections соединения видны? и они с запрещенными ипами?
Вообще гугл размещает у провайдеров свои сервера, Google Cache Engine и юзерам отдает ближайшие к ним адреса. Тобишь при запросе dns из сети например Ростелекома ипы отдадутся совершенно другие, чем при запросе из ТТК или кого-то еще. Не может быть, что микрот и подопытный комп используют разные dns сервера, о них тоже многое зависит?
08.11.2016 10:28
OlegON
 
Нет, однозначно использовался один DNS, подопытным был я сам, тестировал, другие DNS я перекрыл.

Суть проблемы в том, что имен у трубы достаточно много, в связи с чем отлавливать их все затруднительно. С CE все понятно, более того, географическое расположение того же 8.8.8.8 меняется в зависимости от расположения клиента, его ищущего. Можно по хопам посмотреть. Но, если браузер не получает отклика от DNS, он ведет себя совсем по другому, как если DNS есть, но не отвечает сам хост (видимо, берется из кеша содержимое), что ставит крест на идее временного ограничения. Кроме того, цепочка в FORWARD на кучу хостов по листу (а у трубы солидный такой список), я думаю, будет дороже, чем в INPUT и только на UDP(53), пусть даже с Layer7.
08.11.2016 13:31
EugeneT
 
Цитата:
OlegON ....Кроме того, цепочка в FORWARD на кучу хостов по листу (а у трубы солидный такой список), я думаю, будет дороже, чем в INPUT и только на UDP(53), пусть даже с Layer7.
Но блокировка хостов все-таки криво-косо решает поставленую задачу, а препарация dns пакетов - нет. Ведь юзер, при наличии мозгов, может поставить кеш dns или тупо прописать десяток ипов в hosts
08.11.2016 13:36
OlegON
 
Думаю, что такому юзеру нет смысла ставить какие-то ограничения :) С такими только договариваться или отбирать права/железку, в противном случае начнутся проблемы. Прокси и прочие TOR никто не отменял, война может быть слишком затяжной, чтобы тратить на нее свое время.
08.11.2016 13:54
EugeneT
 
в общем так, выдача ипов в ответ на днс запрос у гугла хитрая, выдает не все ипы и при каждой итерации их тасует, тобишь в микроте имеем неполный список ипов. Для эксперимента натравил микрот на яндекс днс, тот тоже тасует, но отдает адреса из одной подсети
Цитата:
nslookup youtube.com
Server: 10.74.15.250
Address: 10.74.15.250#53

Non-authoritative answer:
Name: youtube.com
Address: 173.194.44.71
Name: youtube.com
Address: 173.194.44.78
Name: youtube.com
Address: 173.194.44.67
Name: youtube.com
Address: 173.194.44.66
Name: youtube.com
Address: 173.194.44.64
Name: youtube.com
Address: 173.194.44.70
Name: youtube.com
Address: 173.194.44.65
Name: youtube.com
Address: 173.194.44.73
Name: youtube.com
Address: 173.194.44.69
Name: youtube.com
Address: 173.194.44.68
Name: youtube.com
Address: 173.194.44.72
Заблочил подсеть 173.194.44.0/24 и получил искомый результат.
Хотя возможно попутно какие-то сервисы гугла заблочились тоже, поиск работает
08.11.2016 13:58
EugeneT
 
И еще, в порядке бреда. Никто не мешает тебе взять десяток известных ипов, прописать их на микроте в dns/static, тогда микрот будет отдавать юзерам их и только их, а затем собственно их же и блокрировать по времени

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.