Usg pro 4 / VPN «site to site» — не удаётся получить доступ к шлюзу., UniFi Network
sk7575
Guest
09.07.2018 20:10:00
Это не критичная проблема, просто любопытно узнать. У меня настроен site-to-site VPN, и ресурсы на стороне Azure могут получить доступ ко всему на стороне PREM, кроме самого usg. Если пытаюсь подключиться к usg через ssh или открыть его в браузере, получаю отказ в подключении. Кто-нибудь знает, как это исправить, или так и должно быть?
sk7575
Guest
27.07.2018 21:35:00
Просто чтобы вы знали, причина, по которой я отключил vti, в том, что это был единственный способ заставить VPN-подключения удалённых пользователей видеть ресурсы Azure. Именно поэтому я добавил маршрут туннеля 192.168.2.0/24. Если есть более лучший способ сделать это, я готов его изменить.
sk7575
Guest
27.07.2018 21:21:00
Добавление этого правила было отчаянной попыткой. Я не ожидал, что это сработает. Но играть с этим оказалось довольно весело. Я только что заменил два из трёх своих домашних точек доступа на ваши ap-hp, и вся настройка прошла очень легко. Скоро заменю и третью.
UI-Team
Guest
27.07.2018 21:12:00
Я только что проверил, и всё сработало так, как ты сказал... когда я разместил сообщение в том форуме, на который дал ссылку, я не учёл адрес самого USG. Но это не логично и *не должно* работать именно так. В будущем мы планируем добавить правила фаервола для VPN, где будет легко фильтровать входящий VPN-трафик, направленный на USG или устройства за ним в локальной сети.
sk7575
Guest
27.07.2018 20:21:00
Подтверждаю. Когда я удаляю созданное правило, я больше не могу получить доступ к USG. Возвращаю правило — и доступ появляется снова.
UI-Team
Guest
27.07.2018 19:03:00
Это задокументировано в моём сообщении на форуме: . Причина, почему этого нет в базе знаний — ваш VPN настроен очень специфично, и это касается, наверное, меньше 1% пользователей. Всё дело в том, что нужно вручную отключить «auto-firewall-nat-exclude», а также использовать VPN без включённого VTI. Но судя по вашему json-файлу, вы не отключали автофаервол вручную, а значит, он всё равно создаёт следующие правила в цепочке iptables:
Второе правило (esp) именно разрешает трафик с удалённого VPN, направленный на адрес LAN-интерфейса USG и его подсеть. Поэтому совершенно не понятно, как добавление правила на WAN_LOCAL реально решило проблему. Можете удалить это правило и попробовать снова подключиться по SSH к LAN-адресу USG?
sk7575
Guest
27.07.2018 15:29:00
Я это исправил. Нужно было добавить правило фаервола на WAN LOCAL, чтобы разрешить доступ с моей сети Azure к USG. Наверное, вам стоило бы это где-нибудь задокументировать.
UI-Team
Guest
27.07.2018 15:25:00
Ты не увидишь ничего на tcpdump USG, потому что без VTI нет интерфейса, с которого можно захватить трафик. Пакеты будут отображаться в tcpdump, если тестировать клиентов за USG, потому что USG должен переслать пакет через LAN-интерфейс, и ответ тоже приходит через LAN... но если адрес назначения — сам USG, то пакет может «войти» и «выйти» только через интерфейс VTI или, в твоём случае, через WAN-интерфейс... но на WAN-интерфейсе ты не можешь захватить внутренний (нешифрованный) трафик туннеля. Вот почему VTI так полезен. Можешь показать захват пакетов Azure? TCP-повторы передач — обычное дело при асимметричной маршрутизации, интересно, не совпадает ли маршрут к USG и тот, по которому USG отправляет ответные пакеты.
sk7575
Guest
26.07.2018 18:53:00
Привет, Brandon. Я кое-что раскопал. Настроил захват пакетов на стороне Azure для одной из своих виртуальных машин. Затем запустил tcpdump на своём USG дома с командой «sudo tcpdump -n src 10.1.0.4 and not dst 192.168.1.53». Короче, я ловлю всё, что идёт с VM в Azure (10.1.0.4), кроме моего ноутбука, чтобы убрать лишний шум. С этой VM в Azure я без проблем могу достучаться до других IP в своей домашней сети — например, могу зайти на 192.168.1.12, и вижу этот трафик и на tcpdump в USG, и в захвате пакетов Azure.
Но когда пытаюсь достучаться до 192.168.1.1 — это IP моего USG дома — то в Azure вижу SYN-пакет, несколько повторных попыток, но ACK так и не приходит. А на стороне USG tcpdump в этой ситуации ничего не показывает. Если я всё правильно понимаю, по какой-то причине Azure не отправляет пакеты на 192.168.1.1 через VPN. Я уже голову сломал, почему так, поэтому открою тикет в поддержку Microsoft (я там работаю, так что проблем не будет).
В Azure в настройках локального шлюза указан диапазон удалённых IP 192.168.1.0/24. Я никак не могу понять, почему он нормально обрабатывает всё остальное, кроме 192.168.1.1.
sk7575
Guest
25.07.2018 22:06:00
Привет, Brandon! Спасибо огромное! Когда я запускаю команду "show interfaces", у меня отображаются только eth0, eth1, eth2, eth3 и lo. Если кто-то подключается по удалённому VPN, я вижу интерфейс l2tp. Но интерфейс site-to-site я не вижу, и, думаю, это из-за того, что у меня отключена динамическая маршрутизация, потому что это был единственный способ позволить как моим пользователям LAN 192.168.1.x, так и удалённым VPN-пользователям 192.168.2.x получать доступ к ресурсам. Вместо динамической маршрутизации у меня в расширенной конфигурации JSON прописано следующее:
Так что, думаю, теперь мне стоит пойти по пути wireshark и попытаться понять, что происходит? Как я уже говорил, из Azure у меня есть доступ ко всем остальным локальным ресурсам, только вот к USG — нет. На данном этапе это скорее «хочу понять, почему так», чем реальная большая проблема 😀
UI-Team
Guest
25.07.2018 16:52:00
С командой: sudo tcpdump -npi eth0 host 10.1.0.6 port 22 на самом деле нужно писать именно так, как я указал в первом ответе, с оператором «and»: sudo tcpdump -npi eth0 host 10.1.0.6 and port 22 Это частая ошибка и легко её упустить, не переживай!
Я тоже только что проверил — на LAN-интерфейсе вы не увидите ничего, если адрес назначения принадлежит интерфейсу USG... потому что пакеты технически не «входят» и не «выходят» через LAN-интерфейс при трафике, направленном на USG.
У тебя включён VTI на этом VPN? Проверить можно на USG командой: show interfaces Там должно быть что-то вроде: vti0 10.255.254.1/32 u/u
Если да — то можно смотреть трафик с помощью tcpdump на интерфейсе VTI0 (скорее всего, это будет интерфейс vti64, так как VPN «ручной», а не «автоматический»): sudo tcpdump -npi vti64 host 10.1.0.6 and port 22 и смотреть, что покажет.
Если VTI не включён, то перехватить трафик на самом USG, где IP LAN-адрес USG — источник или назначение, не получится. Тогда лучше снимать трафик на машине, с которой идёт SSH, с помощью Wireshark или tcpdump.
sk7575
Guest
25.07.2018 14:12:00
Jaffe – Есть мысли по поводу моего последнего ответа?