Каталог Поиск 0 Сравнить 0 Закладки 0 Корзина Войти
Каталог
105082, Москва, ул. Фридриха Энгельса, 75с21, БЦ Бауманский ИТКОЛ
Пн - Пт: с 09-00 до 18-00 Сб: с 10-00 до 18-00 Вс: выходной
Страницы: 1 2 След.
RSS
Настройка сервера WireGuard VPN на USG, UniFi Network
 
Здравствуйте, я успешно установил WireGuard и настроил его через команду configure, сохранив конфиг в json-файл для моего контроллера, который настроен на шлюз USG:  
"wireguard": {  
 "wg0": {  
  "address": [
   "10.0.100.1/24"  
  ],  
  "listen-port": "29875",  
  "mtu": "1420",  
  "peer": {  
   "**KEY**": {  
    "allowed-ips": [
     "10.0.100.2/32,10.120.0.0/16,10.121.0.0/16,10.122.0.0/16,10.123.0.0/16,10.8.0.0/16"  
    ]  
   },  
   "**KEY**": {  
    "allowed-ips": [
     "10.0.100.3/32"  
    ]  
   }  
  },  
  "private-key": "/config/auth/wg.key",  
  "route-allowed-ips": "true"  
 }  
},  

Однако, используя эту конфигурацию, я не могу воспользоваться "сервером", чтобы выйти NAT-ом из сети wg для моего удалённого Android-клиента (который настроен с разрешённым адресом 0.0.0.0/0). На обычной Linux-машине я обычно добавляю правило masquerade iptables:  
iptables -t nat -A POSTROUTING -s10.0.100.0/24 -j MASQUERADE  

Есть какие-нибудь советы?
 
Кто-нибудь этим занимался? Я использую torguard и пытаюсь найти способ подключиться через WG. Подождите немного. Ха.
 
Кто-нибудь может помочь? Как мне внести правки здесь, чтобы настроить клиента Wireguard для моего VPN-провайдера, который недавно начал поддерживать Wireguard?
 
У меня небольшая проблема. По какой-то причине, когда я подключаюсь к сессии wireguard-клиента, кажется, что маршрут не работает правильно. Из логов видно, что сессия активна. Я следовал инструкции с https://community.ui.com/questions/Tips-for-setting-up-wireguard-site-to-site-VPN/9788ff62-3923-4b34-a6e0-316524438acb, но безрезультатно.

Вот конфигурация USG:  
{  
 "firewall": {  
   "group": {  
     "network-group": {  
       "remote_user_vpn_network": {  
         "description": "Remote User VPN subnets",  
         "network": [
           "10.13.41.0/24"  
         ]  
       }  
     }  
   }  
 },  
 "interfaces": {  
   "wireguard": {  
     "wg0": {  
       "description": "VPN for remote clients",  
       "address": [
         "10.13.41.1/24"  
       ],  
       "firewall": {  
         "in": {  
           "name": "LAN_IN"  
         },  
         "local": {  
           "name": "LAN_LOCAL"  
         },  
         "out": {  
           "name": "LAN_OUT"  
         }  
       },  
       "listen-port": "51820",  
       "mtu": "1500",  
       "peer": [{
         "<-- KEY -->": {  
           "allowed-ips": [
             "10.13.41.10/32"  
           ],  
           "persistent-keepalive": 60  
         }  
       }],  
       "private-key": "/config/auth/wireguard/wg_private.key",  
       "route-allowed-ips": "false"  
     }  
   }  
 }  
}

И сама сессия выглядит нормально:  
interface: wg0  
public key: <-- KEY -->  
private key: (скрыт)  
listening port: 51820  

peer: <-- KEY -->  
endpoint: <-- IP -->:49591  
allowed ips: 10.13.41.10/32  
latest handshake: 53 секунды назад  
transfer: 1.67 KiB получено, 3.55 KiB отправлено  
persistent keepalive: каждые 1 минуту

Но по какой-то причине данные просто не маршрутизируются...  

Ещё момент: я смог с помощью tcpdump проверить, что трафик уходит и приходит на USG, и трафик также проходит на клиенте.
 
Ну, тогда получи доступ к бета-форуму — это очень просто: https://community.ui.com/questions/Tips-for-setting-up-wireguard-site-to-site-VPN/9788ff62-3923-4b34-a6e0-316524438acb
 
Если ты про то сообщение на бета-форуме, то нет, потому что у меня там нет доступа.
 
@PsYcRo Ты проверял мой туториал по WG? Там всё гораздо подробнее. По сообщению об ошибке видно, что у тебя на USG отсутствует файл /config/auth/wireguard/wg_private.key.
 
@mbello Я пытался установить WG на одном из своих сайтов, где у меня стоит usg-pro-4, но немного запутался. Позволь подытожить, что я сделал:

Установил wireguard-ugw4-0.0.20191219-2.deb с GitHub по этим инструкциям:  
sudo dpkg -i wireguard-<board>-<version>-1.deb — для установки пакетов  
sudo -i — чтобы упростить все  
umask 077 && mkdir wireguard && cd wireguard — для ключей сервера  
wg genkey | tee wg_private.key | wg pubkey > wg_public.key — для создания ключей сервера  
wg genkey | tee client1_private.key | wg pubkey > client1_public.key — для создания ключей первого клиента. Для каждого клиента, подключающегося к VPN, понадобится свой набор ключей.

Затем я перешёл в UniFi контроллер, чтобы создать конфигурацию для VPN. После этого создал json-файл на CK:  
root@UniFi-CloudKey:/srv/unifi/data/sites/default# ls -lat  
total 16  
drwx------ 3 unifi unifi 4096 Jan 4 18:29 .  
drwx------ 3 unifi unifi 4096 Jul 3 2014 ..  
-rw-r--r-- 1 root root 1477 Jan 4 18:29 config.gateway.json  
drwx------ 2 unifi unifi 4096 Nov 4 2017 map

Но после применения настроек получаю следующую ошибку:  
configuration commit error. Error message: {"COMMIT":{"error":"Error: Private key /config/auth/wireguard/wg_private.key not found\n\nCommit failed\n","failure":"1","success":"1"},"DELETE":{"failure":"0","success":"1"},"SESSION_ID":"a8afd4bb371d5574bff0bb832f","SET":{"failure":"0","success":"1"}}

Пытался создать этот путь и файл самостоятельно — ошибка осталась. Неужели я что-то пропустил? Потому что, на мой взгляд, все инструкции не до конца полные (вот этот момент, например).
 
@mbello

Я так не думаю. Интерфейс wireguard всё ещё присутствовал. Кстати, мне показалось странным, что удаление пользовательской конфигурации с cloudkey и принудительное переобеспечение не устранили сообщения об ошибках. Пришлось сделать полный сброс USG.
 
Вы недавно обновляли прошивку вашего USG? Недавно вышла версия 4.4.41, возможно, вы уже обновились до последней версии. Каждый раз при обновлении прошивки USG нужно заново устанавливать wireguard (просто скачайте и установите .deb файл).
 
Извиняюсь за вмешательство... скажите, если нужно открыть новую тему. Я следовал приведённому выше руководству по настройке VPN для удалённого пользователя, и всё работает! Мне удаётся установить соединение WireGuard и получить доступ к ресурсам, доступным только в LAN. Моя проблема в том, что спустя пару дней USG (3) зацикливается в режиме provisioning с ошибкой: ошибка подтверждения конфигурации. Сообщение об ошибке: {"COMMIT":{"error":"[ interfaces wireguard wg0 firewall in name LAN_IN ]\nНечего делать\n\n1\n[ interfaces wireguard wg0 firewall local name LAN_LOCAL ]\nНечего делать\n\n1\n[ interfaces wireguard wg0 firewall out name LAN_OUT ]\nНечего делать\n\n1\nПодтверждение не удалось\n","failure":"1","success":"1"},"DELETE":{"failure":"0","success":"1"},"SESSION_ID":"xxxx","SET":{"failure":"0","success":"1"}} После этого установить соединение уже не получается. Есть идеи?
 
@shagoy

Ты включил route-allowed-ips? Нужно включить. И ещё, настроил сетевые группы, как было написано раньше в этой теме? Именно сетевые группы автоматически настраивают PBR для тебя.  
Если проблемы всё ещё есть, пришли свой .json файл и расскажи, что именно не так. Также скажи, показывается ли в терминале USG при вводе команды «wg show» строка с «latest handshake». Если есть latest handshake — значит VPN работает, если нет — значит нет.  
И не забудь открыть порт 51820 (или тот, который ты используешь). Даже если VPN работает без открытия порта, всё равно создай явное правило в firewall для этого порта (в WAN_LOCAL).
 
Спасибо за ответ! Я тоже потратил кучу времени зря... Наверное, ещё рано использовать Wireguard, будем ждать официальной поддержки... Кстати, не понимаю, как некоторые умудряются настроить его в режиме «Site to site» и маршрутизировать трафик... Может, они используют его только в режиме клиент-сервер.
 
Прости, @shagoy, я так и не разобрался. Решил поставить клиентов WireGuard на несколько устройств, вместо того чтобы делать VPN для всего дома. Это было слишком сложно на настройку и слишком хрупкая конфигурация, чтобы на неё можно было положиться.
 
Привет, @lucasvd, ты нашёл способ? У меня точно такая же ситуация. Я могу пинговать между своим USG (& VM) и сервером Wireguard в обе стороны, но не могу маршрутизировать VLAN-трафик к нему... Я перепробовал много разных решений, которые находил здесь и в других местах (например, вот здесь), но всё безуспешно.
 
@mbello

Я не настраивал, route-allowed-ips в интерфейсе WireGuard стоит на «false». Нужно ли отключать DHCP, если поставить «true»? Будет ли WireGuard раздавать IP? Как настроить диапазон используемых IP? Эта статья заставляет меня думать, что надо поставить в брандмауэре source-validation в «disable»?
 
@lucasvd, ты пробовал включить route-allowed-ips и дать модулю WireGuard самому разобраться с маршрутизацией?
 
У меня настроен интерфейс wg0 на USG, и я могу пинговать в обе стороны между ним и моим VPS. Пытался безуспешно настроить PBR, чтобы маршрутизировать трафик через туннель. Вот правила, которые я использовал:

configure  
set protocols static table 1 interface-route 0.0.0.0/0 next-hop-interface wg0 distance 5  
set firewall modify SOURCE_ROUTE rule 10 description "Traffic to egress to wireguard VPN"  
set firewall modify SOURCE_ROUTE rule 10 source address 192.168.1.0/24  
set firewall modify SOURCE_ROUTE rule 10 modify table 1  
set interfaces ethernet eth1 vif 10 firewall in modify SOURCE_ROUTE  
commit  
save  
exit

tcpdump на интерфейсе wg0 молчит.
 
@mbello

Это была недостающая часть пазла. Огромное спасибо за помощь.
 
#wireguard был бы в Freenode (IRC). Я не пользовался iOS-клиентом, но, возможно, ты подумал, что он подключился, хотя на самом деле этого не было. В WG нет такого понятия, как «подключён/не подключён». Но могу и ошибаться. Ты открыл порт 51820 в файрволе?
Страницы: 1 2 След.
Читают тему (гостей: 1)