Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1
RSS
Удалённый пользователь USG VPN L2TP – iPhone, UniFi Network
 
Привет! Я пытался настроить VPN для удалённых пользователей и ничего не вышло. WAN у меня настроен через PPPOE с фиксированным IP-адресом. Вот команды, которые я использовал:

set vpn ipsec auto-firewall-nat-exclude disable  
set vpn ipsec esp-group default compression disable  
set vpn ipsec esp-group default lifetime 3600  
set vpn ipsec esp-group default mode transport  
set vpn ipsec esp-group default pfs dh-group21  
set vpn ipsec esp-group default proposal 1 encryption aes256  
set vpn ipsec esp-group default proposal 1 hash sha1  
set vpn ipsec ike-group default dead-peer-detection action clear  
set vpn ipsec ike-group default dead-peer-detection interval 30  
set vpn ipsec ike-group default dead-peer-detection timeout 60  
set vpn ipsec ike-group default lifetime 3600  
set vpn ipsec ike-group default proposal 1 dh-group 21  
set vpn ipsec ike-group default proposal 1 encryption aes256  
set vpn ipsec ike-group default proposal 1 hash sha1  
set vpn ipsec ipsec-interfaces interface eth0  
set vpn ipsec nat-networks allowed-network 0.0.0.0/0  
set vpn ipsec nat-traversal enable  
set vpn l2tp remote-access authentication local-users username MYUSER password MYPASS  
set vpn l2tp remote-access authentication mode local  
set vpn l2tp remote-access client-ip-pool start 192.168.254.1  
set vpn l2tp remote-access client-ip-pool stop 192.168.254.200  
set vpn l2tp remote-access outside-address MY-PUBLIC-IP  
set vpn l2tp remote-access dns-servers server-1 8.8.8.8  
set vpn l2tp remote-access dns-servers server-2 8.8.4.4  
set vpn l2tp remote-access ipsec-settings authentication mode pre-shared-secret  
set vpn l2tp remote-access ipsec-settings authentication pre-shared-secret MYSECRET  
set vpn l2tp remote-access ipsec-settings ike-lifetime 3600  
set vpn l2tp remote-access mtu 1500  
set service nat rule 5010 description 'MASQ l2tp remote user vpn to WAN'  
set service nat rule 5010 log disable  
set service nat rule 5010 outbound-interface eth0  
set service nat rule 5010 protocol all  
set service nat rule 5010 source address 192.168.254.0/24  
set service nat rule 5010 type masquerade  
set service dns forwarding options listen-address=192.168.1.254  
set firewall name WAN_LOCAL rule 100 action accept  
set firewall name WAN_LOCAL rule 100 description 'allow IKE, L2TP, NAT-T for remote vpn'  
set firewall name WAN_LOCAL rule 100 destination port 500,1701,4500  
set firewall name WAN_LOCAL rule 100 protocol udp  
set firewall name WAN_LOCAL rule 101 action accept  
set firewall name WAN_LOCAL rule 101 description 'allow ESP for remote vpn'  
set firewall name WAN_LOCAL rule 101 log enable  
set firewall name WAN_LOCAL rule 101 protocol esp  

ПРИМЕЧАНИЕ: в конфигурации я поменял своё имя пользователя, пароль и публичный IP.

Когда я смотрел логи через tail -f /var/log/messages, получил ошибку:  
но никакое соединение не было авторизовано с policy=PSK.

Проверял с iPhone — и просто не подключается. Буду признателен за любую помощь.  

И, пожалуйста, если можете, дайте команды, а не JSON 😀  

Спасибо!  
Kash
 
Я только что обновил свой конфиг, потому что в нём не хватало правила allow для ESP, которое нужно, когда с обеих сторон соединения нет необходимости в NAT.
 
@yurim

Привет! Я имею в виду, что тебе стоит убрать этот узел из файла config.json (если он там есть). Этот узел нужен только если твой интерфейс НЕ использует DHCP. Если ты добавил в json файл узел 'vpn l2tp remote-access dhcp-interface interface pppoe0', то он будет конфликтовать с 'vpn l2tp remote-access outside-address', и, скорее всего, с узлом 'vpn l2tp remote-access outside-nexthop' тоже. Вот почему я советовал удалить их из конфигурации.

Другими словами, сначала тебе нужно выяснить, какой интерфейс используется для приёма входящего WAN-трафика из внешнего мира. В твоём случае это, скорее всего, pppoe0, но надо проверить, как я описывал в предыдущем посте. Затем нужно настроить ipsec на прослушивание этого интерфейса. Для этого в конфиге должен быть узел 'vpn ipsec ipsec-interfaces interface pppoe0'. [Также нужно открыть необходимые порты в файрволе и настроить другие параметры ipsec, как показано в примерах конфигов выше в этой ветке.]

Далее настроить l2tp с узлом 'vpn l2tp remote-access dhcp-interface interface pppoe0', чтобы слушать тот же интерфейс, что и ipsec, и задать остальные параметры l2tp, как в примере конфига. Узел 'vpn l2tp remote-access outside-nexthop' обычно используется для статических интерфейсов. При использовании DHCP сервер сам предоставляет IP адрес шлюза, и, скорее всего, тебе не нужно применять этот узел вместе с 'vpn l2tp remote-access dhcp-interface interface pppoe0'. Хотя, можно оставить и его, если IP-адрес в нём совпадает с тем, что выдаёт DHCP сервер.

Лично у меня нет pppoe-соединения, поэтому проверить эту конкретную настройку не могу, это мое общее понимание того, как всё должно работать. Чтобы проверить VPN-соединение, подключайся к VPN-шлюзу из внешней сети, а не из своей локальной подсети.
 
@yurim

Для начала я бы рекомендовал проверить ваш конфигурационный JSON-файл на простые синтаксические ошибки. Зайдите в Google, найдите валидатор JSON и проверьте файл. Затем убедитесь, что он загружен на USG (то есть конфигурация применена), и что USG находится в обычном состоянии «connected» (то есть не в бесконечном цикле настройки или что-то в этом роде).
 
Спасибо. Я не могу удалить команду "vpn l2tp remote-access outside-address", появляется ошибка: "L2TP VPN configuration error: Outside address not defined". Я удалил "vpn l2tp remote-access outside-nexthop" и установил интерфейс ipsec на pppoe0, как вы советовали. Можете подробнее объяснить это: "you must check that remote gateway of your provider matches that one you get via DHCP. Reprovision"? Не совсем понимаю, что вы имеете в виду.

Есть ли другой способ проверить VPN? Я тестирую с клиента Windows 10. Вот логи Windows 10:

Информационный лог: пользователь SYSTEM начал устанавливать VPN-соединение, используя профиль подключения на одного пользователя с именем L2TP. Настройки подключения: Dial-in User = user1, VpnStrategy = L2TP, DataEncryption = Require, PrerequisiteEntry =, AutoLogon = No, UseRasCredentials = Yes, Authentication Type = EAP, IPv4DefaultGateway = Yes, IPv4AddressAssignment = By Server, IPv4DNSServerAssignment = By Server, IPv6DefaultGateway = Yes, IPv6AddressAssignment = By Server, IPv6DNSServerAssignment = By Server, IpDnsFlags =, IpNBTEnabled = Yes, UseFlags = Private Connection, ConnectOnWinlogon = No, IPsec authentication for L2TP = Pre-shared key.

Информационный лог: пользователь SYSTEM пытается установить соединение с сервером удалённого доступа под именем L2TP, используя следующее устройство: Server address/Phone Number = "Server IP address", Device = WAN Miniport (L2TP), Port = VPN3-1, MediaType = VPN.

Ошибка: пользователь SYSTEM попытался подключиться к L2TP, но соединение не удалось. Код ошибки 789.

Возможно, я пропустил какие-то порты или службы? В некоторых форумах писалoсь про необходимость разрешить протокол ESP через файрволл. Я следовал этому руководству: https://help.ubnt.com/hc/en-us/articles/204959404-EdgeMAX-Set-up-L2TP-over-IPsec-VPN-server
 
@yurim

Предлагаю сделать следующее. Подключитесь к вашему USG через SSH, убедитесь, что вы подключены к интернету через вашего провайдера (то есть все динамические интерфейсы уже настроены), введите команду «configure», затем в командной строке наберите:

# show vpn ipsec ipsec-interfaces interface

и нажмите [TAB]. Вы увидите список всех ваших интерфейсов. Найдите номер pppoe-интерфейса. Допустим, он отображается как pppoe0. Именно этот интерфейс нужно добавить в ваш конфигурационный файл в разделе:

vpn ipsec ipsec-interfaces interface pppoe0

Выйдите из режима настройки командой: exit. Выйдите из USG: exit.

Далее добавьте в ваш конфиг новый раздел:

vpn l2tp remote-access dhcp-interface interface pppoe0

И уберите раздел «vpn l2tp remote-access outside-address», а также, скорее всего, придётся убрать раздел «vpn l2tp remote-access outside-nexthop», но в этом не уверен.

В любом случае, проверьте, совпадает ли внешний шлюз вашего провайдера с тем, что вы получите через DHCP. Выполните повторное Provision.
 
Почему? Если хочешь, чтобы VPN сохранялся после перезагрузки, всё равно придётся создать JSON.
 
У меня интерфейс eth2, но подключение к интернету через WAN1 настроено по PPPoE. Во вложении подробности ошибки на клиентском компьютере при попытке установить L2TP. Все необходимые порты фаервола открыты, как описано (1701, 500, 4500).

С точки зрения GUI, нужно ли сначала создать сеть и потом указать пул из этой сети в JSON?

Пожалуйста, посмотрите мою конфигурацию:  
ipsec {  
auto-firewall-nat-exclude enable  
ipsec-interfaces {interface eth2}  
nat-networks {allowed-network 0.0.0.0/0 {}}  
nat-traversal enable  
}  
l2tp {  
remote-access {  
authentication {  
local-users {  
username user1 {password "MYPASS"}  
username user2 {password "MYPASS"}  
}  
mode local  
}  
client-ip-pool {start 192.168.1.200 stop 192.168.1.220}  
dns-servers {server-1 "MY USG4 IP ADDRESS"}  
ipsec-settings {  
authentication {  
mode pre-shared-secret  
pre-shared-secret "MYKEY"  
}  
ike-lifetime 3600  
}  
mtu 1400  
outside-address "Myip"  
outside-nexthop "ISP gateway"  
}  
}  

Спасибо ещё раз!
 
@yurim

Скорее всего, ни то, ни другое. Моя конфигурация выше в этой ветке предназначена для USG3. В этом роутере eth0 — это WAN-интерфейс. В USG4 (если я правильно помню) eth0 и eth1 — это порты LAN1 и LAN2, а WAN1 — это на самом деле eth2. Нумерация слева направо, начиная с 0. Проверь расположение своих портов и исправь, если я ошибаюсь.

Если твоя WAN-линия подключена к WAN1, то нужно использовать eth2 в конфигурации. Меняй на pppoe только в том случае, если у тебя действительно PPPoE-соединение. DHCP или статический IP лучше всего настраивать через GUI контроллера — в целом это здесь не особо влияет.
 
Спасибо еще раз. Я уже проверил JSON-файл по крайней мере по трём стандартам RFC. У меня стоит последняя версия Unifi с USG4 Pro. Всё было настроено правильно, и я корректно загрузил JSON-конфигурацию. Значит, где-то я что-то сделал не так. Я видел два варианта для интерфейса IPSec — eth0 или pppoe? Нужно ли в конфиге назначать DHCP? Будет ли нормально, если я выложу свой JSON, и вы посмотрите повнимательнее? Заранее спасибо!
 
Спасибо за ваш ответ. Пока что я настроил radius на своем сервере 2016 — это была самая простая часть. Сейчас я застрял на этапе запуска l2tp IPSec с локальными пользователями. Я использовал все json-файлы отсюда, но ничего не работает. В логах клиента Windows 10 появляется ошибка 789. Буду очень благодарен за любые идеи или помощь.
 
@yurim

Для аутентификации через Radius вам нужно изменить две секции в вашей конфигурации (по сравнению с тем, что использовано выше) следующим образом:

vpn {
   l2tp {
       remote-access {
           authentication {
               mode radius
           }
       }
   }
}

и

vpn {
   l2tp {
       remote-access {
           authentication {
               radius-server ipv4 {
                   key yourkey
               }
           }
       }
   }
}

где ipv4 — это мульти-узел. IPv4-адрес RADIUS-сервера. Обязательно при режиме аутентификации radius. Вы можете определить более одного RADIUS-сервера, создав несколько конфигурационных узлов radius-server.

yourkey — пароль для RADIUS-сервера. Должен совпадать с тем, что записан на RADIUS-сервере. Обязательно при режиме аутентификации radius. Допустимые символы — буквы, цифры, пробелы и специальные символы. Строки с пробелами должны быть взяты в двойные кавычки.

Разумеется, у вас должен быть настроен RADIUS-сервер, чтобы это работало.
 
Нет, у меня нет сервера Radius.
 
Ты случайно не пробовал с Radius?
 
@doomer2

Большое спасибо за твою конфигурацию! Она помогла мне правильно настроить всё с прошивкой USG версии 4.3.30.4927105 и контроллером 5.3.4. В твоём конфиге не хватало некоторых правил файрвола для remote_user_vpn_network, isakmp и ipsec-nat-t. Я также поменял номера правил на более безопасные из диапазона 3100. У меня по pppoe всё отлично работает.

{
   "firewall": {
       "group": {
           "network-group": {
               "remote_user_vpn_network": {
                   "description": "подсети vpn для удалённых пользователей",
                   "network": [
                       "диапазон/маска локального ip пула"
                   ]
               }
           }
       },
       "name": {
           "WAN_LOCAL": {
               "rule": {
                   "3100": {
                       "action": "accept",
                       "description": "разрешить L2TP",
                       "destination": {
                           "port": "1701"
                       },
                       "ipsec": {
                           "match-ipsec": "''"
                       },
                       "protocol": "udp"
                   },
                   "3101": {
                       "action": "accept",
                       "description": "разрешить isakmp",
                       "destination": {
                           "port": "500"
                       },
                       "protocol": "udp"
                   },
                   "3102": {
                       "action": "accept",
                       "description": "разрешить ipsec-nat-t",
                       "destination": {
                           "port": "4500"
                       },
                       "protocol": "udp"
                   },
                   "3103": {
                       "action": "accept",
                       "description": "разрешить ESP",
                       "protocol": "esp"
                   }
               }
           }
       }
   },
   "vpn": {
       "ipsec": {
           "auto-firewall-nat-exclude": "enable",
           "ipsec-interfaces": {
               "interface": [
                   "pppoe2"
               ]
           },
           "nat-networks": {
               "allowed-network": {
                   "0.0.0.0/0": "''"
               }
           },
           "nat-traversal": "enable"
       },
       "l2tp": {
           "remote-access": {
               "authentication": {
                   "local-users": {
                       "username": {
                           "user1": {
                               "password": "mysecurepwd1"
                           },
                           "user2": {
                               "password": "mysecurepwd2"
                           }
                       }
                   },
                   "mode": "local"
               },
               "client-ip-pool": {
                   "start": "здесь начинается диапазон локального ip пула",
                   "stop": "здесь заканчивается диапазон локального ip пула"
               },
               "dns-servers": {
                   "server-1": "здесь ip твоего LAN dns-сервера"
               },
               "ipsec-settings": {
                   "authentication": {
                       "mode": "pre-shared-secret",
                       "pre-shared-secret": "mypresharedsupersecret1"
                   },
                   "ike-lifetime": "3600"
               },
               "mtu": "1400",
               "outside-address": "здесь ip твоего wan",
               "outside-nexthop": "здесь ip удалённого шлюза провайдера"
           }
       }
   }
}
Страницы: 1
Читают тему (гостей: 1)