Главная Статті Wireguard Android не работает интернет. Настройка WireGuard клиента в Windows

Wireguard Android не работает интернет. Настройка WireGuard клиента в Windows

Настраиваем собственный сервер VPN WireGuard (с IPv4 и IPv6) для настольного компьютера и смартфона Android

В прошлой статье мы расказали, как обходить блокировки сайтов при помощи Tor в критериях его гипотетичной блокировки при помощи системы DPI. Это дозволит посетить хоть какой сайт, но у такового метода есть серьёзные минусы. Tor не предназначен для маршрутизации через его тоннель всего трафика с вашего компьютера. Хотя он и может употребляться таким методом, скорость при всем этом очень низкая. Заместо этого подразумевается внедрение Tor Browser, который заточен под анонимность, потому не сохраняет cookies, что делает повседневное внедрение очень неловким. Также доступ из Tor ко многим ресурсам заблокирован с их стороны либо просит нередкого ввода капчи.

Для маршрутизации всего вашего трафика через шифрованный тоннель мы хотим предложить использовать VPN WireGuard. Сейчас это один из самых передовых протоколов. Он реализован для многих платформ, включая Linux, macOS, Windows, Android и iOS, а скоро должен появиться во FreeBSD и в OpenBSD. В качестве транспортного протокола используется UDP, что даёт низкие накладные расходы на передачу данных. В качестве алгоритма симметричного шифрования используется ChaCha20, который эффективно работает на множестве процессоров даже без аппаратного ускорения. Реализация очень компактная (для Linux это 5500 строк кода), включена в официальный код ядра Linux, а значит прошла хорошее рецензирование, поэтому не должна иметь проблем с безопасностью.

WireGuard следует философии UNIX: делать что-то одно и делать это хорошо. Поэтому в нём не предусмотрены многие возможности, например использование в качестве транспортного протокола TCP и обфускация трафика. В последнее время в различных источниках стали появляться сообщения о блокировке в WireGuard с помощью системы DPI (IT и СОРМ, ЗаТелеком, ntc.party, ветка комментариев на Habr). Разве не становится такой минималистичный подход неприменимым в текущей ситуации?

Судя по всему, блокировка пока осуществляется по IP-адресам серверов конкретных известных поставщиков услуг VPN или по протоколу, но далеко не на всех портах. Это нас пока не волнует, поскольку мы будем настраивать собственный сервер и сможем указать альтернативный порт. Данное решение может оказаться временным, но тогда философия WireGuard тоже сыграет нам на руку, потому что мы сможем пробросить трафик в другой, уже более скрытный тоннель, например TCP, Tor или Shadowsocks с опциональной обфускацией. Гибкость такого подхода позволит нам выбрать решение в зависимости от ситуации. Мы постараемся предоставить соответствующие инструкции позже, а пока перейдём к настройке сервера WireGuard.

Настраиваем сервер WireGuard

Для следования инструкциям в данной статье вам понадобится любой сервер за пределами с операционной системой Ubuntu 21.04 или подобной и статическим внешним IP-адресом. Можно купить виртуальный сервер, например на DigitalOcean (партнёрская ссылка).

Также необходимо владеть навыками работы в консольном текстовом редакторе. Можно использовать Vim или Emacs, но они требуют изучения. Самым простым вариантом для новичков будет Nano. Устанавливается командой sudo apt install nano. Вызывается командой sudo nano. которой можно дополнительно передать имя файла: sudo nano /foo/bar. Далее можно разобраться по подсказкам в нижней части экрана. Они означают сочетания клавиши Ctrl с другими клавишами.

Все дальнейшие команды необходимо исполнять не просто от имени суперпользователя, а в его окружении. Если вы не вошли от его имени по SSH (а мы рекомендуем отключать такую возможность, о чём подробнее будет сказано в конце статьи), то выполните команду sudo su.

Для начала нужно разрешить пересылку пакетов IP. В файле /etc/sysctl.conf раскомментируем следующие строки (удалим символ # в начале строки):

Установим WireGuard и другие нужные пакеты:

Далее мы создадим файлы ключей и конфигурации. В целях безопасности необходимо ограничить доступ к ним только для суперпользователя, поэтому установим маску текущей сессии командной оболочки:

Сгенерируем ключи для сервера и пары клиентов (в дальнейшем мы будем подключать к VPN домашний компьютер и смартфон):

Выведем на экран сгенерированные ключи:

После окончания настройки сервера и клиентов или сейчас, если вы не собираетесь очищать экран, эти файлы можно удалить:

Теперь нужно выбрать порт и подсети IPv4 и IPv6. Мы будем использовать порт 37581 и подсети 10.73.105.0/24 и fd41:ce44:b4c9:44ca::/64. Вы можете использовать их же или выбрать любой другой порт (от 1 до 65535, кроме 22, поскольку он используется для SSH) и любые подсети из 10.0.0.0/8 и fd00::/8 (если знаете, как их рассчитывать). Вопрос выбора порта особенно интересен, так как есть информация о блокировках WireGuard по порту, но мы не столкнулись ни с какими проблемами такого рода. На всякий случай рекомендуем не использовать стандартный порт 51820.

Создадим файл /etc/wireguard/wg0.conf. Ключи нужно заменить на те, что мы сгенерировали. Название интеейса eth0 у вас может отличаться, узнать его можно командой sudo ifconfig :

Проверить работу сервера можно командой sudo wg show. На экране должна появиться следующая информация (ключи будут отличаться):

Создаем и настраиваем два сервера

Один сер­вер будет внут­ри стра­ны — через него тра­фик пой­дет на локаль­ные ресур­сы, а вто­рой — за гра­ницей. Даль­ше я их буду называть local и external.

Иде­аль­но, если local будет в тво­ей домаш­ней сети, потому что при этом тра­фик на внеш­ние ресур­сы не отли­чает­ся от тво­его домаш­него тра­фика. Но для это­го нужен какой‑то хост дома, белый IP и воз­можность проб­росить порт. У меня это вир­туал­ка на домаш­нем сер­вере, но, навер­ное, подой­дет и Raspberry Pi или ана­логич­ный одноплат­ник.

Ва­риант с одноплат­ником я не тес­тировал и не уве­рен, что он сра­бота­ет. Raspberry Pi при­дет­ся мар­шру­тизи­ровать весь тра­фик с устрой­ств и дер­жать в памяти око­ло 11 тысяч мар­шру­тов; ресур­сов на это может не хва­тить.

Ес­ли дома хос­та нет, мож­но взять любой сер­вер у хос­тера VDS. Увы, некото­рые сай­ты бло­киру­ют под­сети хос­теров, опа­саясь ботов, так что это менее пред­почти­тель­ный вари­ант.

А вот внеш­нюю машину мож­но арен­довать и у хос­тера. К при­меру, у RU VDS и VDSina есть зарубеж­ные пло­щад­ки. А мож­но выб­рать инос­тран­ного хос­тера, если най­дешь спо­соб опла­чивать его услу­ги. Нап­ример, я исполь­зую исланд­ский 1984.hosting, соз­данный спе­циаль­но для парано­иков.

Счи­таем, что на обо­их сер­верах у нас Debian 11.

Вклю­чаем перенап­равле­ние тра­фика: в этом слу­чае сер­вер, получив пакет, который не пред­назна­чает­ся ни одно­му из его IP-адре­сов, не отбро­сит его, а попыта­ется перенап­равить в соот­ветс­твии со сво­ими мар­шру­тами.

Оп­циональ­но (но очень удоб­но) сра­зу поменять hostname обо­их сер­веров, что­бы не запутать­ся, где какая кон­соль:

Настраиваем WireGuard для связи двух серверов

Для начала генери­руем клю­чи. Запус­каем два раза wg genkey и получа­ем два при­ват­ных клю­ча:

Ути­лита wg genkey не дела­ет ничего вол­шебно­го, это прос­то ана­лог чего‑то в таком духе:

Толь­ко навер­няка более слу­чай­ное: мы прос­то генери­руем 32 бай­та слу­чай­ных зна­чений и пред­став­ляем их в виде Base64.

Соз­даем два кон­фига. Один на internal:

/etc/wireguard/wg-internal.conf

PostUp = ip rule add from `ip addr show ( ip route | awk ‘/ default/ print 5 ‘) | grep «inet» | grep.v «inet6» | head.n 1 | awk ‘/ inet/ print 6500’ | awk.F/ ‘ print 450’` table main

PostDown = ip rule del from `ip addr show ( ip route | awk ‘/ default/ print 5 ‘) | grep «inet» | grep.v «inet6» | head.n 1 | awk ‘/ inet/ print 6500’ | awk.F/ ‘ print 450’` table main

/etc/wireguard/wg-external.conf

Сек­ция [Interface] — это нас­трой­ки кон­крет­ного сетево­го интеей­са WireGuard, того, что будет виден в IP a. Наз­вание интеей­са берет­ся из наз­вания текуще­го фай­ла кон­фигура­ции. У одно­го интеей­са всег­да одна клю­чевая пара: у пиров это­го интеей­са оди­нако­вый пуб­личный ключ.

Но ник­то не меша­ет, если хочет­ся, сде­лать для каж­дого пира отдель­ный кон­фиг и отдель­ный интеейс (прав­да, на сот­нях кли­ентов это будет неудоб­но).

Уп­равля­ются интеей­сы обыч­но при помощи ути­литы wg-quick: wg-quick down wg-external и wg-quick up wg-external

Ути­лита wg-quick — это на самом деле 400 строк на баше, которые авто­мати­зиру­ют час­то исполь­зуемые вещи, нап­ример уста­нов­ку мар­шру­тов. Наличие тун­неля само по себе не дает ничего, кро­ме защищен­ной «тру­бы», за которой находит­ся дру­гой пир. Что­бы твой зап­рос в бра­узе­ре попал в интеейс, сис­теме надо явно ска­зать: «Мар­шру­тизи­руй, пожалуй­ста, пакеты с таким‑то адре­сом наз­начения вот в этот сетевой интеейс».

Имен­но этим занима­ется wg-quick. Ну еще и нас­трой­кой адре­сов DNS, ука­зан­ных в кон­фиге, уста­нов­кой MTU и еще парой вещей. Но ничего слож­ного в этом нет, дос­таточ­но сде­лать cat / usr/ bin/ wg-quick. что­бы пос­мотреть на эту логику, и, если надо, пов­торить то же самое руками.

  • Interface-Address — это IP текуще­го пира. Вся адре­сация в WG ста­тичес­кая. С одной сто­роны, это упро­щает нас­трой­ку и бутс­трап, с дру­гой сто­роны, усложня­ет работу, если у тебя очень мно­го кли­ентов.
  • ListenPort — это UDP-порт для под­клю­чения извне. Если не ука­зать, будет прос­лушивать 51820.
  • Interface-PostUp и Interface-PostDown — скрип­ты, которые выпол­няют­ся пос­ле под­нятия и пос­ле оста­нов­ки интеей­са. Есть еще PreUP и PreDown.

Кро­ме пуб­личных и при­ват­ных клю­чей, есть еще опция PresharedKey, которая обес­печива­ет допол­нитель­ное шиф­рование SIM­метрич­ным шиф­ром. Ключ мож­но сге­нери­ровать, нап­ример, коман­дой wg genpsk и добавить в опцию PresharedKey в сек­циях Peer на обо­их пирах. Если не исполь­зовать эту опцию, наг­рузка по шиф­рованию и рас­шифров­ке не вырас­тет: ког­да ключ не ука­зан, исполь­зует­ся нулевое зна­чение клю­ча.

А что­бы по‑нас­тояще­му обес­печить пост­кван­товую безопас­ность (невоз­можность рас­шифров­ки дан­ных кван­товыми компь­юте­рами), раз­работ­чики рекомен­дуют допол­нитель­ный внеш­ний кван­тово‑устой­чивый механизм хен­дшей­ка, нап­ример SIDH, который Microsoft пиарит имен­но в таком кон­тек­сте. Соз­данный им общий ключ мож­но исполь­зовать в качес­тве PresharedKey.

Зак­линания в PostUp дос­таточ­но прос­ты. Вот коман­да для под­ста­нов­ки име­ни сетево­го интеей­са, куда по умол­чанию выпол­няет­ся мар­шру­тиза­ция:

Как пра­вило, это интеейс, обра­щен­ный к про­вай­деру или роуте­ру.

Та­ким обра­зом, страш­ная коман­да прев­раща­ется в такую:

Здесь про­исхо­дит вклю­чение NAT в режиме мас­карада: сер­вер будет отправ­лять при­шед­шие ему пакеты во внеш­нюю сеть, под­меняя адрес отпра­вите­ля сво­им, что­бы отве­ты на эти пакеты тоже при­ходи­ли ему, а не исходно­му отпра­вите­лю.

Вто­рая коман­да уже нем­ного слож­нее, но она под­став­ляет IP-адрес дефол­тно­го мар­шру­та.

` ip addr show ( ip route | awk ‘/ default/ print 5 ‘ ) | grep «inet» | grep.v «inet6» | head.n 1 | awk ‘/ inet/ print 6500’ | awk.F / ‘ print 450’ `

Сна­чала мы получа­ем, как и выше, сетевой интеейс мар­шру­та по умол­чанию:

По­том дан­ные о сос­тоянии это­го интеей­са:

И даль­ше вытас­кива­ем отту­да адрес, в дан­ном слу­чае 192.168.88.70.Ко­ман­да ста­новит­ся такой:

Это необ­ходимо для сер­вера internal, потому что ина­че при акти­вации мар­шру­та 0. 0. 0. 0/ 0 он начина­ет пересы­лать отве­ты на пакеты, при­ходя­щие ему на внеш­ние адре­са через тун­нель WG. Сер­вер на том кон­це, конеч­но, пересы­лает их по наз­начению, но тут уже не готов отпра­витель пакета: он при­сыла­ет что‑то на внеш­ний адрес сер­вера internal, а ответ ему при­ходит с external.

Ес­тес­твен­но, при вклю­чен­ном rp_filter пакет отбра­сыва­ется. В этом слу­чае сер­вер перес­тает быть дос­тупным, нап­ример по SSH сна­ружи. К нему при­дет­ся кон­нектить­ся толь­ко по внут­ренне­му IP WireGuard. Отклю­чать rp_filter — это стре­лять из пуш­ки по воробь­ям, а вот допол­нитель­ное пра­вило исправ­ляет ситу­ацию.

Я намерен­но не при­вожу готовые кон­фиги, потому что хочу показать механизм соз­дания кон­фигов в руч­ном режиме. В свое вре­мя я генери­ровал кон­фиги ути­лита­ми типа easy-wg-quick или веб‑сер­висами, которые спра­шива­ют тебя о наз­вании кли­ента и кра­сиво показы­вают QR-код. Это отнюдь не спо­собс­тву­ет понима­нию того, как работа­ет WG на самом деле, и может выз­вать проб­лемы.

Те­перь в оба кон­фига надо добавить сек­цию Peer, что­бы свя­зать сер­веры друг с дру­гом.

Ге­нери­руем из при­ват­ного клю­ча пуб­личный (вот в wg pubkey как раз и про­исхо­дит крип­томагия):

Это пуб­личный ключ сер­вера internal, его мы помеща­ем в сек­цию Peer на external:

/etc/wireguard/wg-external.conf

Там же, в Endpoint ука­зыва­ем адрес сер­вера internal и порт, который мы задали в ListenPort.

Клиент wireguard.

Пишем конфиг.

На основе сделанной настройки, пишем простой конфиг для клиента. Этот конфиг подойдёт и для десктопа, и для, например, Android приложения:

В данном случае, вместо CLIENT_PRIVATE_KEY и SERVER_PUBLIC_KEY мы опять же, подставляем ключи, сгенерированные ранее, а вместо SERVER_REAL_IP прописываем IP адрес нашего сервера, на котором установлен VPN.

Wireguard и десктоп клиент.

— Создаём директорию /etc/wireguard, а в ней сохраняем наш конфигурационный файл под именем wg0-client.conf. — Пробуем подключиться к серверу с помощью wg-quick:

Проверяем подключение, и если всё сделано верно, то весь наш трафик теперь будет проходить через VPN сервер.

Для отключения от VPN просто выполняем команду wg-quick down wg0-client:

При необходимости, мы можем управлять сервисом через systemd:

Wireguard на Android.

Для использоания wireguard на Android, достаточно скачать клиента из Play Market или из F-Droid репозитория, а для подключения просто выполнить импорт подготовленного wg конфига для клиента.

И, собственно, всё. Вот так, очень просто (куда проще чем тот же OpenVPN) мы можем настроить защищённый VPN туннель и использовать его в повседневной работе.

Дополнительно.

Быстрая установка.

wireguard-manager — инструмент для быстрой установки и настройки Wireguard на сервере. wireguard-install — ещё одна реализация быстрого установщика.

Использование iptables.

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

Несколько клиентов.

Для работы с несколькими клиентами, каждому из них нужно сгенерировать свои открытый и закрытый ключи. Затем, в конфиге сервера указать каждого из них. Пример такого конфига:

Просто, для истории.

В дополнение — на видео ещё один пример быстрой настройки WireGuard, но уже вручную:

Возвращаем WARP

WARP начали блокировать, поэтому у многих, (но не у всех), пропала возможность подключиться к данному VPN. Я нашел на просторах интернета способ вернуть доступ к WARP’у и сейчас поделюсь им с вами.

После начала блокировок WARP, появились проблемы с подключением к сети. Пробуйте несколько раз переподключаться с перерывами в несколько секунд между попытками. Если после 7-10 попыток ничего не поменялось, то пересоздайте по гайду подключение и пробуйте ещё раз.

Для доступа к WARP нам понадобится программа WireGuard. Способ работает на всех платформах, где он есть, суть одна и та же.

  • Скачайте WireGuard для своей платформы.
  • Переходим по ссылке и скачиваем файл с конфигурацией. Обратите внимание расширение файла, должно быть.conf
  • Импортируйте конфиг
  • Перед подключением редактируем поле Endpoint: нужно вместо текстового значения вставить обычный IP. 162.159.193.5:2408
  • Сохраните изменения и подключайтесь.

Вот и всё. Теперь можно пользоваться всеми преимуществами WARP. На гитхабе автора генератора конфига есть способ подключения WARP, если он имеется.

Щас бы один VPN пускать через другой VPN Наркоманы

Какие наркоманы нахер? Мели меньше! Я по 2 суто не сплю. Скоро русскую речь забуду. в одиночном плавании. А мне тулят то, в чём я понятия не имею. Я с этим дерьмом первый раз столкнулся.

Варп и так работает через WireGuard со своими плюшками, а тут просто меняешь ендпоинт.

Мне кажется проще открыть C:\ProgramData\Cloudflare\conf.json и там ендпоинт поменять

Открываем в Блокноте под админом C:\ProgramData\Cloudflare\conf.json

Работает 🙂 Можно не ставить конфигуратор.

Не сработало, хоть я всё сделал в точности как ты описал

Какой эндплоинт? Я сюда методом тыка добрался! Я не врубаюсь, что я сейчас делаю и в какое говно снова влажу. Потом снова ночами не спать и от шпаны сраной отстреливаться в собственном доме.? У меня вчера бригада ментов была. Я чуть жену не пристрелил. А за что? За ваши намеки и ребусы?

Пиздос и под моим микрогайдом люди тут писали что проще купить VPN чем поднимать свой сервер. А теперь пишут инструкции как подключаться к VPN через VPN. Вы там что, ебобо блять?

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

Понадеяться. это единственное, что мы сейчас можем

Если заглянет и прочитает коммент: в очко себе банхаммер засунь, клоун. Народ есть власть и ты уволен. должен уйти.

Насколько безопасно трафик через непонятный сервер пускать?

Генератор конфига лежит в открытом доступе на гитхабе и открыт для исследования. Можешь посмотреть и самостоятельно оценить безопасность. https://github.com/maple3142/cf-warp

чувак тут на dtf новость была что японская ассоциация манги подала многомилионный иск на эту компанию cloudflare за то что через их сервис пиратят кучу манги в японии, сказали им прекратить обслуживать площадки с пиратской мангой, компания отказалась закрывать доступ к пиратским сайтам! и сейчас они судятся. Также была новость что их угаваривали американские политики прекратить обслуживать на что они тоже отказались выполнять! Услугами cloudflare пользуется половина интернета, в осномном крупные компании. Если и есть их в чем упрекнуть то только в том что они скорее всего дают твои данные рекламным компаниям (что и так все делают) и что-то отправляют в ЦРУ (то опять вынуждены делать все у кого серьезный бизнес в США). Притом что WARP тебе дает фактически бесплатный 100 мегабит и безлимит vpn.

Етить вы любители пердолиться. Уже давно бы носки с обфускацией развернули, а не гоняли wireguard через wireguard. Этот способ очень временный: wireguard сильно палится и его легко заблокировать

Очень информативно, спасибо. Шерстяные носки или чулки подойдут?

че вы так привязались к этому варп купи акк нордвпн на плати за 300р, там и двойной VPN и обфускация серверов встроенная

У меня куплен Nord вообще не подключается к любому из серверов, а если и подключиться сайт будут 10 минут грузиться, он же заблочен в есть карточка зарубежная (даже с 0), то можно подключить зеро траст. там есть фри варп

Настройка WireGuard клиента в Linux

Несмотря на то, что WireGuard уже давно поддерживается на уровне ядра Linux с графическими инструментами для его настройки дело обстоит не совсем хорошо, многое зависит от конкретного дистрибутива, но управлять WireGuard из командной строки тоже очень просто.

С правами root или через sudo выполним установку и генерацию ключей точно также, как мы это делали на сервере, затем также создадим конфигурационный файл:

Секция [Interface] описывает сетевой интеейс, в ней мы указываем секретный ключ клиента, желаемый адрес в VPN-сети и DNS-сервера. Секция [Peer] отвечает за подключение к серверу, у всех клиентов она общая, содержит публичный ключ сервера, его адрес и порт, а также параметры подключения и роутинга.

Для управление туннелем в ручном режиме можно использовать утилиту wg-quick, для подключения выполните:

где wg0. имя вашего конфигурационного файла, с этим же именем будет создан сетевой интеейс. Если запустить команду от имени обычного пользователя будет автоматически запрошено повышение прав.

При этом не забудьте добавить секцию [Peer] для этого узла на сервере и перезапустить службу, для этого понадобится указать публичный ключ клиента и его адрес, точно также как мы это делали для Windows-клиента.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Записки IT специалиста

Рассматривая настройку WireGuard в наших предыдущих материалах, мы намеренно не касались Mikrotik, запланировав для этого отдельную статью. И для этого есть свои причины. RouterOS, под управлением которой работают данные устройства, имеет свои особенности и подходы к настройке, малоинтересные другим читателям. А для пользователей Mikrotik будет лучше, если все нужное будет в одной статье. При этом мы подразумеваем, что администратор, работающий с ROS, имеет более высокий уровень подготовки и владеет основами сетей, поэтому не будем пояснять простые настройки, а сосредоточимся именно на WireGuard.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Если вас интересует тема WireGuard в более широком ключе, безотносительно оборудования Mikrotik, то рекомендуем прочесть наши материалы:

Следующий очень важный момент: Wireguard доступен только в версии RouterOS 7, которая не смотря на статус stable все еще имеет достаточно «детских болезней» и прочих проблем, поэтому не стоит переходить на новую версию без вдумчивого анализа всех плюсов и минусов, а также предварительного тестирования.

В нашем случае будет использоваться CHR с RouterOS 7.2.1 запущенная в виртуальной машине нашей тестовой лаборатории.

Как мы уже говорили, WireGuard. это простой туннель без сохранения состояния, к нему не применимы понятия клиент и сервер, каждый узел WireGuard способен подключаться к другим узлам и сам принимать соединения. Более правильно называть узлы сети. пиры (peer). инициатором и респондером. Первый инициирует соединение, второй его принимает. Хотя даже в среде профессионалов к узлам WireGuard продолжают применяться термины клиент и сервер, первый подключается, второй принимает подключения. Большой беды в этом нет, но вы должны понимать, что любой узел WireGuard способен выполнять обе роли одновременно.

Mikrotik как респондер (сервер)

В RouterOS 7 появился новый пункт меню. WireGuard, переходим в него на одноименную закладку и создаем новый интеейс. Заполняем поля Name и Listen Port, их назначения понятны, советуем использовать осмысленные названия интеейсов, чтобы вы могли понимать, для чего тот или иной предназначен. Ключи будут созданы автоматически.

wireguard, android, работать, интернет

Если вы предпочитаете работать в терминале, то выполните команду:

Затем присвоим созданному интеейсу IP-адрес, для чего перейдем в IP. Addresses и просто добавим нужный адрес.

Или:

Также не забудьте разрешить входящие соединения на указанный при создании интеейса порт, в нашем случае 34567. Это можно сделать в IP. Firewall. Filter Rules добавив правило: Chain. input, Protocol. udp, Dst. Port. 34567, In. Interface. ether1. в его качестве следует указать внешний интеейс роутера. Действие можно не выбирать, так как по умолчанию. accept.

Данное правило следует расположить перед запрещающим принимать входящие подключения на внешний интеейс.

Чтобы к нашему роутеру могла подключаться другие узлы нужно создать для каждого из них пир, для этого возвращаемся в WireGuard. Peers и создаем новую запись. Здесь нам потребуется открытый ключ пира, который следует внести в поле Public Key и указать разрешенные сети в Allowed Address. В нашем случае мы реализуем сценарий удаленного доступа или объединения сетей, поэтому укажем там внутренний адрес в WireGuard сети, который мы выделили пиру и сеть за ним.

В терминале:

Затем назначаем интеейсу адрес, если все узлы ваши. то назначаете сами, если подключаетесь к чужому респондеру, то вводите адрес, выданный его администратором. Это действие производится в IP. Addresses.

Это же действие в терминале:

Wireguard, Install & Configure in Android Phone

Чтобы наш роутер смог куда-то подключиться мы снова должны создать пир. В WireGuard пир. это просто вторая сторона туннеля и не важно мы подключаемся к ней, или она к нам. В любом случае у нас должен быть интеейс. наша сторона, и пир. противоположная сторона.

Переходим в WireGuard. Peers и создаем новый пир, настроек тут будет побольше, указываем: Interface. созданный нами интеейс, Public Key. публичный ключ респондера, получаем с той стороны, Endpoint и Endpoint Port. адрес респондера и его порт, Allowed Address. 0.0.0.0/0. т.е. разрешаем любой трафик в туннеле. Если вы находитесь за NAT, то обязательно добавьте опцию Persistent Keepalive, рекомендуемое значение. 25 секунд.

В терминале тоже достаточно длинная команда:

Если же мы хотим направить весь интернет трафик в туннель, то нам нужно изменить нулевой маршрут, казалось бы, все просто, но не будем спешить. Обратим внимание на флаги текущего маршрута: DAd. динамический, активный, получен по DHCP, можно, конечно отключить получение маршрутов в DHCP-клиенте, но мы пойдем другим путем.

Вспомним, что если к одной цели ведут несколько маршрутов, то будет выбран тот, у которого самая узкая маска. Поэтому вместо одного нулевого маршрута добавим два, к сетям 0.0.0.0/1 и 128.0.0.0/1.

В терминале выполните две команды:

Вроде бы все сделано правильно, но интернет вообще перестал работать. Что случилось? Мы только что завернули в туннель весь исходящий трафик, в том числе и к нашему VPN-серверу, естественно, что соединение будет невозможно.

Поэтому добавим еще один маршрут к респондеру через основного провайдера.

Где 192.168.3.1. шлюз основного провайдера.

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

Более подробные настройки для того или иного конкретного сценария выходят за рамки данной статьи и, как таковые, уже не относятся к настройкам WireGuard. Сам же WireGuard в RouterOS 7 есть и работает, при этом достаточно несложен в настройке, в чем мы только что убедились.

Научиться настраивать MikroTik с нуля или систематизировать уже имеющиеся знания можно на углубленном курсе по администрированию MikroTik. Автор курса, сертифицированный тренер MikroTik Дмитрий Скоромнов, лично проверяет лабораторные работы и контролирует прогресс каждого своего студента. В три раза больше информации, чем в вендорской программе MTCNA, более 20 часов практики и доступ навсегда.

Как настроить WireGuard, ваш собственный VPN нового века

WireGuard — это новый, надёжный и легковесный VPN-протокол. Мы рассмотрим пошаговую процедуру настройки клиентов и сервера WireGuard в облаке и на домашнем роутере для защиты, например, подключений к публичным точкам доступа Wi-Fi

Напоминаем, что все действия, описанные в статье, пользователь делает на свой страх и риск. Материал приведен исключительно в ознакомительных целях. Если же вы собираетесь воспроизводить действия, описанные ниже, настоятельно советуем внимательно прочитать статью до конца хотя бы один раз. Редакция 3DNews не несет никакой ответственности за любые возможные последствия.

WireGuard — это современный протокол для организации VPN, написанный с нуля, бесплатный и с открытыми исходниками. В отличие от «мастодонтов» вроде OpenVPN или IPSec, он намного проще и легче. Это касается и скорости (пере)подключения, и производительности, и требований к ресурсам, и процесса настройки, и объёма кода. Недавно было объявлено, что WireGuard войдёт в состав будущих ядер Linux, а впоследствии попадёт и во все популярные дистрибутивы, что косвенно указывает на зрелость этого решения.

Как и было заявлено в анонсе, мы рассматриваем сценарий защиты подключения к публичным и другим недоверенным сетям. Естественно, этим использование WireGuard не ограничивается. В качестве примера рассмотрим настройку клиентов и сервера (правда, в данном случае это условные понятия — в силу специфики протокола), работающего в облаке и на домашнем роутере Keenetic. Как показывает практика, многие публичные VPN-сервисы не отличаются щепетильностью в отношении данных клиентов, поэтому всегда лучше иметь что-то своё, подконтрольное только пользователю. В нашем случае мы рассматриваем установку и настройку WireGuard, используя для этого компьютер на Windows и облачную виртуальную машину на Ubuntu.

Нам понадобится полный набор PuTTY, так что лучше скачать сразу MSI-пакет с инсталлятором (доступен по предыдущей ссылке), который всё установит и создаст новую группу в главном меню. Там нам нужна утилита PuTTYgen. После запуска генерируем новую пару ключей с настройками по умолчанию (RSA-2048), нажав кнопку Generate и поводив с полминуты мышкой в окне утилиты. Осталось заполнить несколько полей: в Key comment можно ввести название ключа в качестве напоминания, а в Key passphrase и Confirm passphrase ввести один и тот же пароль.

Пароль этот ещё пригодится, так что его надо запомнить или сохранить в надёжном месте. Далее в PuTTYgen сохраняем по отдельности приватный (Save private key, файл.ppk) и публичный (Save public key) ключи. Если планируется использовать несколько облачных провайдеров, то для каждого из них, а лучше и для каждого сервера, использовать собственные ключи.

Vscale — облачный провайдер, имеющий собственные площадки и Санкт-Петербурге и предлагающий неплохие конфигурации по низким ценам. Самый дешёвый сервер, мощностей которого вполне достаточно для наших задач, обойдётся в 200 /месяц. Хранение снапшота стоит ещё 40 /месяц. И его тоже можно перенести из одного региона в другой. Зато никаких ограничений по трафику нет.

Специально для читателей 3DNews Vscale подготовила промокод 3DNEWS500, чтобы можно было ознакомиться со всеми возможностями сервиса. После регистрации надо пополнить баланс хотя бы на 100 или привязать банковскую карту. Затем промокод надо активировать на этой странице. Код будет действовать до 23:59:59 18.02.2020.

Интеейс сервиса доступен на русском языке. Разобраться в нём просто, так что коротко опишем основные этапы. Для работы первым делом нужно в настройках аккаунта добавить публичный SSH-ключ, полученный в PuTTYgen. Затем в разделе серверов создать новый сервер с ОС Ubuntu 18.04, указав нужный регион, тариф и ключ. В течение минуты сервер будет готов и запущен.

Отдельного SSH-клиента для доступа к командной строке не требуется, так как Vscale предоставляет веб-консоль. Для входа вводим логин root и нажимаем Enter, далее по одной вводим нижеприведённые команды и на всё соглашаемся, нажимая Enter:

Пара замечаний на случай использования других облачных провайдеров. Во-первых, для Ubuntu 19.10 и более свежих версий ОС добавлять ppa не надо, достаточно будет первых двух команд. Во-вторых, доступ к командной строке возможен с помощью PuTTY. В поле Host Name надо ввести IP-адрес сервера, а в разделе Connection → SSH → Auth — путь до приватного ppk-ключа. Логин root, а пароль тот, что был указан при создании ключа (Key passphrase). Для удобства можно сохранить сессию (Save). По нажатии кнопки Open откроется окно консоли, при первом запуске предваряемое уведомлением о безопасности, с которым надо согласиться.

Обратите внимание, что даже за выключенным сервером сохраняются ресурсы, которые точно так же оплачиваются. Поэтому ненужный сервер надо удалять. Если VPN необходим не на постоянной основе, а лишь иногда, то можно сохранить все настройки, создав снапшот (бэкап). Сам снапшот можно перенести в другой регион и при создании нового сервера выбрать именно его в качестве основы. Создавать снапшот надо строго после завершения настройки VPN-сервера и весьма желательной в этом случае установки DDNS-клиента, выключив сервер непосредственно перед созданием бэкапа.

VPN для отдельного приложения

Благодаря этим действиям получится вернуть доступ к VPN.

Отдельно следует отметить возможность использовать данную конфигурацию только для конкретных приложений. Для настройки списка программ, в которых будет задействован этот VPN, необходимо:

  • Открыть приложение WireGuard.
  • Нажать на название конфигурации.
  • В правом верхнем углу нажать на карандаш, чтобы перейти в настройки.

wireguard, android, работать, интернет

Постоянно включенный VPN практически не расходует батарейку.

С помощью этих настроек можно оставить VPN постоянно включенным и не переживать о необходимости его включать при входе в какие-либо приложения. У многих из нас на тарифах подключен безлимитный трафик для различных приложений. Чтобы оператор связи при использовании таких программ корректно его учитывал, а не расходовал основной пакет, приходится VPN постоянно отключать. Если же настроить список программ по инструкции выше, то необходимости в этом просто не будет.

VPN SERVER WIREGUARD НАСТРОЙКА СВОЕГО СЕРВЕРА НА VPS С ПОМОЩЬЮ PIVPN | ВПН НА WINDOWS ANDROID LINUX

Если же вы предпочитаете включать VPN только по необходимости, то советую добавить переключатель в центр управления, чтобы не запускать постоянно приложение WireGuard. На примере смартфонов Xiaomi:

wireguard, android, работать, интернет

Благодаря переключателю не придется держать приложение запущенным.

  • Проведите от правого верхнего угла вниз для вызова центра управления.
  • Нажмите кнопку «редактировать» в правом верхнем углу.
  • Найдите приложение WireGuard и нажмите на зеленый «» в его правом верхнем углу.
  • Переместите кнопку на удобное вам место центра управления обычным перетаскиванием.

После этих действий запускать VPN можно прямо из центра управления. А вообще советую держать на смартфоне дополнительно AdGuard VPN. Без ограничения по скорости в нем доступно 3 Гб трафика, чего хватит для многих. Но если он вдруг закончится, можно просто сменить аккаунт, и трафик восстановится вновь.

Что потом?

wireguard, android, работать, интернет

После этого можно закрыть терминал. Чтобы подключиться к веб-интеейсу, введите в адресной строке: http://IP-адрес сервера:51821 (например, http://176.124.206.99:51821). Далее вы можете добавить клиентов и скачать файлы конфигураций для последующего подключения.

Можете дать доступ даже своим друзьям. Делитесь инструкцией с другими, чтобы всегда быть на связи.

Об авторе

В IT-журналистике 5 лет. Люблю Apple, коллекционирую старые телефоны Nokia, верю, что самые великие достижения человечества ещё впереди.

Пожаловаться на комментарий

Ну зачем уж настолько то утрировать? ВДсина для обывательских задач достаточна, в статье отмечено, что способ не стоит рассматривать как средство анонимайзинга. Извините, но за посещение Твиттера или других недоступных в соцсетей никто сажать или лишать жизни не будет. Это бред. Другой вопрос, если вы собираетесь публиковать контент, направленный против и противоречащий законам. Но тут уже вам не один VPN не поможет.