Wi-CAT LLC

Wireless Comprehensive Advanced Technology. Build your network now.

Wi-CAT LLC
Навигация Форума
Вы должны войти, чтобы создавать сообщения и темы.

Настройка клиента Wireguard

Господа, подскажите как настроить клиента на Wive-NG-HQ ?

Сейчас проверить не могу, попробую позже(если найду открытый сервер для тестов). Но в целом нужно добавить в секцию Peer следующее:

Endpoint = адрес:порт

Также надо будет заменить ключи и возможно создать правила для сетевого экрана. Частично действия описывал в предыдущей теме. Остальное нужно проверить.

А какой у Вас тип подключения - статический, DHCP или VPN(PPPoE/L2TP/PPTP)? Я пока что добился работы с первым вариантом, осталось только понять, где маршруты прописать. Также не проверял проброс портов, если что.

Добрый день, dhcp

Ясно. Это будет несколько сложнее, особенно учитывая что у меня статика. Попробую найти маршрутизатор, что поставить перед своим. В идеале, конечно, надо попробовать всё подтянуть - VPN, проброс и IPv6. Так что это всё займёт какое-то время.

Посмотрел и оказалось что никаких сложностей. Т.к. прошивка сделана очень грамотно почти ничего делать не пришлось - метод получился универсальным как для статических настроек, так и для динамических. Правда маршрутизатор для 100% проверки я пока так и не нашёл, но по логике всё должно работать.

Примечание: в крайнем случае, если что-то не так, можно сделать сброс кнопкой, зажав секунд на 15.

Итак, поехали.

  1. Выставляем ключи. [ Сервисы - Сервер VPN - Сервер WireGuard ] - Включаем и жмём "Применить". Затем "Сгенерировать" и выше "Сохранить". Полученный архив открываем(не распаковывая) архиватором(я использовал 7-Zip), внутри открываем ещё один и прямо в нём открываем файл wg_client_public_key. Несмотря на название(я уже не стал переделывать), в нём надо заменить ключ на публичный ключ сервера. Если есть необходимость заменить личный ключ клиента, то это надо сделать в файле wg_server_private_key(опять же не зацикливаемся на названии). После изменения файлов архиватор должен 1-2 раза предложить обновить архив. Архив с обновлёнными ключами загружаем через веб-интерфейс в поле "Загрузить ключи из файла". Счётчик применения застревает на нуле, так что просто обновите страницу. После этого сервер пока что отключаем(не забываем нажать "Применить").
  2. Подключаемся к терминалу и проверяем ключи. Подключаемся к маршрутизатору по SSH(в поиске куча информации как это делать). Это можно сделать даже через Chrome(расширение Secure Shell). Ну или приложение вроде PuTTY. По умолчанию адрес 192.168.1.1 порт 22. Логин и пароль такие же, как в веб-интерфейсе. Пароль при вводе может не отображаться. Далее пишем команды, каждая из которых должна показать изменённый нами ключ:
    cat /pss/wg_server_private_key
    cat /pss/wg_client_public_key
  3. Вбиваем настройки удалённого сервера. Выполняем команды, указывая порт и реальный внешний адрес сервера(заменяем на свои):
    nvram_set wireguard_endpoint 51.75.74.253
    nvram_set wireguard_endpoint_port 1024
  4. Добавляем поддержку "режима клиента". Скачиваем приложенный к сообщению архив WGC.tar.bz2 и идём в [ Администрирование - Управление ]. Раскрываем "Загрузка RW-FS" и загружаем туда этот архив. Обращаем внимание на названия меню - будьте внимательны! Примечание: после каждого обновления ПО этот пакет нужно загружать заново.
  5. Возвращаемся в веб-интерфейс.  Идём в [ Сервер VPN ]. Ставим "Сервер WireGuard" - Включено. "Адрес клиента" выставляем в 0.0.0.0/0, если нужно весь трафик пропускать через VPN, в противном случае конкретный адрес в сети VPN(или саму сеть). В "Сетевой адрес" указываем внутренний адрес клиента. Для запуска клиента жмём "Применить".
  6. В случае проблем в DNS в [ Сервисы - Службы DNS ] включаем "Перенаправлять DNS на локальный сервер" и в "Список Upstream DNS" добавляем любой понравившийся DNS-сервер(например, 77.88.8.8). Жмём "Добавить" и "Применить".

Изменения:

  • 0.1(04.01) Добавил Endpoint, настройки NVRAM для него, хук iptables для уточнения правила маскировки и необходимые маршруты.
  • 0.2(05.01) Теперь хук только для 0.0.0.0/0 и маршруты строятся в зависимости от настройки "Адрес клиента". Метрики теперь используют переменные из global.sh Также добавляется правило маскировки при запуске сервера(т.к. при запуске сервис iptables не перезапускается). При остановке правила теперь удаляются.
  • 0.3(05.01) Добавил экспериментальную поддержку VPN включая хук на ip-down, останавливающий сервис во избежание ступора при перезапуске основного туннеля.
  • 0.4(07.01) Поддержка DNS. Для DHCP надо использовать $reallangw. Добавлены записи в журнал.
Загруженные файлы:
  • Вам нужно войти, чтобы просматривать прикрепленные файлы..

Если что, добавил ряд важных уточнений, особенно по DNS на последнем шаге - иначе имена не разрешаются(скорее всего это актуально только при маршрутизации всего трафика через WG). Надо будет на DNS отдельные маршруты написать, чтобы в Upstream не лезть. В "Сетевой адрес" указываем внутренний адрес клиента, а не сервера. Ну и т.д.

Благодарю, завтра попробую настроить.

Привет.

Настроил, работает.

Благодарочка)

Отлично. Значит можно расширять круг тестирования.

Было бы интересно увидеть статью по настройке выборочного vpn(wireguard) для сайтов из списка, для неграмотных. :)

Примерно так как в этой статье: https://habr.com/ru/post/428992/

Попробую сделать на неделе, если в больницу не уеду.

Цитата: Nelastermonf от 24/01/2022, 10:16

Было бы интересно увидеть статью по настройке выборочного vpn(wireguard) для сайтов из списка, для неграмотных. :)

Примерно так как в этой статье: https://habr.com/ru/post/428992/

Жаль нельзя сообщение отредактировать теперь, ну да ладно.

  • 0.5(08.02) Поддержка списка туннелирования. Добавил настройку wireguard_dns для перенаправления Upstream DNS в туннель. Поправил правила сетевого экрана. Прочие мелкие правки.

Чтобы добавить в список записи, перед четвёртым шагом откройте архив и также, как и ключи, отредактируйте файл wg, находящийся в папке etc. На каждую строку приходится одна запись - либо домен(wi-cat.ru), либо IP-адрес либо целая подсеть в виде CIDR(192.168.6.0/24). "Адрес клиента" выставляем в 0.0.0.0/0. Если опасаетесь подмены адресов, то вместо всяких dnscrypt я решил использовать подручные средства. Для этого нужно перед пятым пунктом выполнить шестой и дать команду:

nvram_set wireguard_dns 1

Изначально хотел использовать ipget, но там, к сожалению, так и не был реализован выбор сервера.

Загруженные файлы:
  • Вам нужно войти, чтобы просматривать прикрепленные файлы..

Привет, не могу настроить для удаленного сервера, какие настройки нужно поменять? Попробовал то что описано, вешает роутер, пришлось сбрасывать.

Список брал отсюда https://antifilter.network/ip самый первый.

У меня еще включен днс адблок и динамик днс с no-ip.com может это как то влияет? Или для удаленного сервера здесь нужно чтото другое прописывать?

p.s. я прописывал "Адрес клиента" выставляем в 0.0.0.0/0 просто на скрине уже дефолт после сброса.

У меня просто почему то отпал вайфай намертво, даже не ловился, поэтому мне только скидывать оставалось, логов нет.

Загруженные файлы:
  • Вам нужно войти, чтобы просматривать прикрепленные файлы..

Приветствую. Изначально список задумывался для ручного наполнения. Т.е. вписываете нужные Вам ресурсы по одному на строку. Я не интересовался, сколько маршрутов можно нарисовать в таблице маршрутизации и уж тем более, сколько адресов можно добавить в настройки Wireguard(хотя там можно и нули прописать), но при 20 тысячах возможно разумнее не использовать список вовсе, а пускать весь трафик. Ну либо наполнять только реально нужные, как описал выше. Я даже не уверен, что такой файл поместится в RWFS при загрузке. Я попробую для интереса использовать его, но всё же логичнее варианты выше.

Попробовал с выключеным адблоком и динамик днс тоже самое.

Т.е. основное подозрение что слишком большой список? Ок попробую со списком подсетей, он там меньше.

Отключил добавление в настройки Wireguard и в правила сетевого экрана и в результате после 15 секунд добавления маршрутов вывод в SSH прекращается и маршрутизатор в скором времени перезагружается. Так что лучше не мучить железку и вписывать вручную только нужные ресурсы.

Ну или пытаться прикручивать BGP, т.к. списки нацелены на него, как я понял. Также Вас млжет заинтересовать мой вариант с OpenVPN на форуме 4PDA.

Так, адреса свои я вписал, теперь ничего не падает, но получаю ошибку ERR_CONNECTION_TIMED_OUT в хроме когда захожу на адрес из списка, как понять где что не так? Если подключаюсь с винды через клиент wireguard все норм, сервер я настроил на удаленной впске.

Цитата: CHIPSET от 08/02/2022, 18:17

Также Вас млжет заинтересовать мой вариант с OpenVPN на форуме 4PDA.

поделитесь ссылочкой пожалста

В теме устройства.

Цитата: alex66 от 08/02/2022, 19:16

но получаю ошибку

В адресе клиента нули? С DNS всё что нужно сделали? Wireguard после всего этого выключали-включали?

Да, все это сделал

Могу по TeamViewer подключиться глянуть, если напишите в личные на 4pda. Если такой возможности нет, можно здесь попробовать.

Скиньте на sfstudio[at]wi-cat.ru wan mac  и ip, переключу на тестовую ветку. Накидал там sceleton под wg клиента. Что бы вот тот бедлам у вас в пакете поуменьшить + необходимые проверки перед подъёмом.

Т.е. пакет нужно  будет переделать. В init.d непосредственно теперь нет смысла что-то вносить, можно всё делать через /etc/wg*.d

Заодно просьба проверить не сломал ли серверную часть.

 

Скинул.  Этот бедлам изначально и задумывался, в смысле потому я и обозначил пакет версией 0.х. Так сказать минимально необходимые изменения для поиска решений и проверок возможностей. А ещё это лишь вторая попытка в жизни значительного вмешательства в Bash скрипт, но опыт интересный, потому продолжаю.

Переделывать готов. Насчёт init.d не знаю, т.к. мой "хитрый" механизм с Upstream предполагал с одной команды "start"один служебный запуск и один рабочий(с правильно разрешёнными доменными именами через служебный). Хотя это было сделано в стиле "всё по правильному" - чтобы прописать их в "Allowed IPs". Ну можно наверно и забить и прописать туда нули, а маршруты заменить на ходу. В общем сперва надо увидеть как теперь всё устроено.

Серверную часть я так и не проверял, добровольцев нет. Обойдусь тогда телефоном с мобильным интернетом, думаю для проверки подойдёт.

  • Версия 0.6 (29.03) В связи с частичной реализацией клиента в ПО всё допиливание маршрутизации и DNS перенесено в специализированные хуки. Для маршрутов на локальные DNS теперь используется только resolvipv4.conf, чтобы не переписывать аналогичные маршруты из VPN. Также для них теперь всегда используется $reallangw. Добавлена проверка наличия Upstream DNS сервера и включения соответствующей опции NVRAM перед разрешением имени из списка(в противном случае напрямую через ipget). Использование новой метрики $wgmetric. Добавлен перезапуск сервиса iptables. Сервер для разрешения имён из списка теперь указывается через wireguard_diffsrv. А маршруты на DNS создаётся только при включённой wireguard_dns.
  • !!! Необходимо ПО версий 4.3-4.4 и выше. Желательно последнее. !!!
  • Примечание: в крайнем случае, если что-то не так, можно сделать сброс кнопкой, зажав секунд на 15.
  1. Подключаемся к терминалу и прописываем ключи. Подключаемся к маршрутизатору по SSH(в поиске куча информации как это делать). Это можно сделать даже через Chrome(расширение Secure Shell). Ну или приложение вроде PuTTY. По умолчанию адрес 192.168.1.1 порт 22. Логин и пароль такие же, как в веб-интерфейсе. Пароль при вводе может не отображаться. Далее прописываем личный ключ клиента. Для этого выполняем команду:
    vi /pss/wg_cli_client_private_key

    Нажимаем букву i (после нажатия она отобразится в левом нижнем углу) и вставляем туда ключ(обычно нажатием правой кнопки). После этого жмём по очереди - ESC, двоеточие, W, Q и Enter. Таким же образом прописываем публичный ключ сервера:

    vi /pss/wg_cli_client_public_key

    И сохраняем их:

    fs saveps
  2. Скачиваем пакет, приложенный к сообщению. Если нужно заворачивать в туннель не весь трафик, а только к конкретным адресам/подсетям/доменам, то откройте его(не распаковывая) архиватором(я использовал 7-Zip), внутри откройте ещё один и прямо в нём открываем файл wg, находящийся в папке etc. На каждую строку приходится одна запись - либо домен(wi-cat.ru), либо IP-адрес либо целая подсеть в виде CIDR(192.168.6.0/24). После изменения файла архиватор должен 1-2 раза предложить обновить его. Идём в [ Администрирование - Управление ]. Раскрываем "Загрузка RW-FS" и загружаем туда этот пакет. Обращаем внимание на названия меню - будьте внимательны! В дальнейшем можно редактировать этот список таким же способом как и ключи, но командой:
    vi /etc/wg

    Сохранение в таком случае производится командой:

    fs save

    Если домены из списка нужно разрешать через туннель, то выполняем пятый пункт. Также все адреса DNS-серверов в таком случае нужно добавлять в список(файл wg). После чего выполняем указывая адрес DNS сервера:

    nvram_set wireguard_diffsrv 77.88.8.8

    Если DNS-сервера маршрутизатора(не Upstream) нужно пускать в обход туннеля(допустим нужны для разрешения имени VPN-сервера на доступе), то выполняем:

    nvram_set wireguard_dns 1

    Примечание: после каждого обновления ПО этот пакет нужно загружать заново.

  3. Производим настройку. Выполняем команды по одной, указывая свои значения. Адрес и порт сервера:
    nvram_set wireguard_cli_endpoint 51.51.51.51
    nvram_set wireguard_cli_endpoint_port 5151

    И адрес клиента:

    nvram_set wireguard_cli_netaddress 192.168.6.155/32
  4. Включаем и запускаем клиент:
    nvram_set wireguard_cli_enabled 1
    service wireguard start
  5. Желательно(в случае проблем, особенно при VPN на доступе[PPPoE/L2TP/PPTP]). Идём в [ Сервисы - Службы DNS ] включаем "Перенаправлять DNS на локальный сервер" и в "Список Upstream DNS" добавляем любой понравившийся DNS-сервер(например, 77.88.8.8). Жмём "Добавить" и "Применить".
Загруженные файлы:
  • Вам нужно войти, чтобы просматривать прикрепленные файлы..

Огромное спасибо! все работает 
обязательно прописывайте upstream dns в настройках роутера(Сервисы - Службы DNS ), даже если оставляете файл /etc/wg пустым, и планируете весь трафик пускать через тоннель

Спасибо за тестирование. Инструкцию обновил. Также внёс некоторые изменения касательно DNS, но обновляться не требуется.

Цитата: CHIPSET от 26/03/2022, 02:56
  • Версия 0.6 (29.03) В связи с частичной реализацией клиента в ПО ..............     
  • ... Если нужно заворачивать в туннель не весь трафик, а только к конкретным адресам/подсетям/доменам, то откройте его(не распаковывая) архиватором(я использовал 7-Zip), внутри откройте ещё один и прямо в нём открываем файл wg, находящийся в папке etc. На каждую строку приходится одна запись - либо домен(wi-cat.ru), либо IP-адрес либо целая подсеть 

Прошу прощения) , имеется у меня (как пример) конфиг wg с одного известного ресурса

вот такой wg.conf
Извините, только авторизованные пользователи могут видеть спойлеры.

Не очень понял как импортировать параметры имеющегося конфига в ваш пакет ?

В 7-zip хватает ума открыть, но что дальше делать не понимаю))
Извините, только авторизованные пользователи могут видеть спойлеры.

@chipset , @ganin    

помогите пожалуйста в конфигурации wg-клиента на основе вышепредставленного примера wg.conf .

 

Жмёте по файлу wg дважды и открываете блокнотом. У Вас в конфигурации есть параметр AllowedIPs со списком подсетей разделённым запятыми. Каждую надо вписать на отдельную строку. Т.е.:

1.1.1.0/24
1.0.0.0/24

И т.д. После чего закрываете блокнот, подтверждая изменения. Также и с архиватором. Далее по инструкции.

З.Ы. Я надеюсь Вы проверили эту конфигурация на каком-нибудь другом устройстве?

Цитата: CHIPSET от 30/03/2022, 21:58
 Я надеюсь Вы проверили эту конфигурация на каком-нибудь другом устройстве?
Да, проверял на винде с wg-клиентом(с сайта wg). Конфиг (был) рабочий (сейчас ключи из поста выше удалил). 
На роутере пока не ставил, но позже потестирую, отпишусь.
 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: