Активация Microsoft и файрволл PFSense
-
2.4.5-p1
Создан алиас с содержимым (networks, /32):activation-v2.sls.microsoft.com validation-v2.sls.microsoft.com go.microsoft.com activation-v2.sls.trafficmanager.net validation-v2.sls.trafficmanager.net go.microsoft.com.edgekey.net e11290.dspg.akamaiedge.net login.live.com activation.sls.microsoft.com crl.microsoft.com validation.sls.microsoft.com displaycatalog.mp.microsoft.com licensing.mp.microsoft.com purchase.mp.microsoft.com displaycatalog.md.mp.microsoft.com licensing.md.mp.microsoft.com purchase.md.mp.microsoft.com sls.microsoft.com www.microsoft.com microsoft.com activation-v1.sls.microsoft.com validation-v1.sls.microsoft.com co2.activation-v2.sls.microsoft.com co2.validation-v2.sls.microsoft.com activation-v3.sls.microsoft.com validation-v3.sls.microsoft.com activation.sls.microsoft.com.nsatc.net
Для алиаса создано разрешающее правило:
Это nslookup на pfsense:
Это на клиенте где активация не работает:
Как видно у клиента DNS'ом является pfsense и все dns запросы из локалки резолвятся только на pf
Вот так выглядит страница https://activation-v2.sls.microsoft.com/ у пользователя у которого разрешено все:
А так на компе где должно работать правило файрвола разрешающее доступ к ресурсам microsoft:
-
(Сорян за пикчи CMD. считает спамом...)
А это к примеру go.moicrosoft.com с машины где разрешено все:А это там где должно работать разрешающее правило:
Как видно и go.microsoft.com и e11290.dspg.akamaiedge.net есть в списке разрешенных, но толку от этого нет...Если добавлю ip (40.91.76.224, 23.32.88.234) в алиасы, то все работает. Но это же не дело.
Заранее благодарю.
-
@sirota
здр
такая схема работать не будет в лоб
по причине того , что dns ответ от сервера для утилиты pf и для хоста будет содержать разные ip адреса с высокой степенью вероятности (Netflix, YouTube, Amazon, Microsoft и тд и тп )для примера , покажу Вам суть проблемы
1 начало - таблица Netflix пуста
2 первый раз запускаю приложение Netflix ( в ней уже 39 адресов - сорри , не так сделал картинку , поверьте на слово )
3 второй раз запускаю приложение Netflix ( жду чуть больше минуты , в ней уже 77 адресов)
Проблема в том , что серверов очень много , а время жизни ip адреса в кэше локального DNS сервера очень мало ( например , для одного из серверов Netflix - 11 сек)
Поэтому и DNS ответы для PF и для хоста разные ( и содержимое алиаса не совпадает с тем ip , куда хочет соединиться клиент , и , как следствие, блок)
вот время жизни DNS ответа для go.microsoft.com (20 сек)
-
@konstanti это даже с тем учётом что dns сервером для компа является pf? Типа pf закэшировал в алиас один ip и при этом при обращении к нему за этим же доменным именем сам пошёл спрашивать у вышестоящего dns тут же?
И как тогда быть? -
@sirota
Абсолютно верно
Утилита , которая формирует таблицы на основе алиасов ( не помню название ) по умолчанию 1 раз в 5 мин ( в настройках можно изменить это значение ) запрашивает данные для обновления таблиц .
А какие данные получит клиент в промежутке между этими интервалами - неизвестно .
Для решения этой проблемы мне пришлось написать свою утилиту , которая по шаблону ( например , Microsoft) , используя BPF интерфейс , перехватывает весь DNS трафик , анализирует его и автоматически добавляет данные DNS-ответов в нужные мне таблицы . Я нашел для себя только такое решение.Мб , изменяя время обновления алиасов на меньшие значения , можно добиться нужного результата. Не знаю , не проверял.. У меня просто изначально другая задача стояла
-
@konstanti понял, принял. Спасибо большое.
-
@konstanti
У вас ПРИНУДИТЕЛЬНО все днс-запросы завернуты на пф?
Если это сделать, то локальные клиенты будут получать только те ip, к-ые имеет пф в своем днс-кеше.
И несоответствия с ip не будет, т.к. всеми днс-запросами рулит пф. Чтобы там у клиента в настройках ДНС не стояло.
Я таким образом блокировал youtube, у к-го тоже далеко не один ip. -
@werter
Это тоже вариант решения проблемы ТС ( на уровне блокировок DNS запросов )
А если задача стоит в направлении трафика через разные шлюзы с одного устройства ? Например , для "обмана" своей геопозиции для стриминговых сервисов .
Собственно , эту проблему я и решал
Вот как это выглядит на практике
Трафик Netflix идет через WAN интерфейс ( российский IP)А вот трафик Disney+ идет через VPN ( испанский ip)
При этом весь объем трафика генерит одно устройство (Apple TV) .
-
@konstanti ну у меня как пишет камрад weter. Весь трафик dns от клиентов резолвится на pf! Я это указал. И не работает.
-
@sirota
Werter предлагает осуществлять блокировки на уровне Dns запросов , а не на уровне ip-адресов.
В Вашем случае это может сработать. -
@konstanti какие блокировки? Он говорит что если dns принудительно заворачивются на pf, то проблем быть не должно. Мы с ним по этому поводу уже общались. Весь dns трафик принудительно заворачивются на pf у меня. И проблема по факту только с активацией Microsoft.
-
@sirota
По-моему , для таких блокировок используется пакет pfBlockerNG (DNSBL) в связке с DNS Resolver-ом PF.Проблемы будут , по причинам описанным мною чуть выше. Так как серверов много , то для уменьшения нагрузки на них вышестоящие DNS сервера дают разные ответы на одни и те же DNS запросы ( Round-Robin , скорее всего)
-
@konstanti да не нужны мне блокировки. Мне надо разрешить этот трафик!
-
@sirota
Я прекрасно понимаю , что Вам нужно
Мб , сработает таким образом
Хост , которому нужно разрешить доступ , использует внешний DNS сервер , и его запросы не "заворачиваются" на PF.
Все остальные используют Unbound + pfBlockerNG (DNSBL) , и в этом случае такие запросы блокируются -
@konstanti Да чтож... Без обид, но вы читать умеете?
Я в первом коммента написал "Как видно у клиента DNS'ом является pfsense и все dns запросы из локалки резолвятся только на pf"
На всех скринах с nslookup:
server pfsense.local
address: 192.168.0.1 -