- Using WireGuard on iOS
- Option 1: use the Mullvad VPN app
- Option 2: use the WireGuard app
- Download WireGuard app
- Generate a configuration file
- Import the configuration file
- Connect and disconnect
- Using multiple devices?
- If you want to access your local network when connected
- On-demand activation
- Is it working?
- External resources
- WireGuard — прекрасный VPN будущего?
- Принципы работы
- Производительность
- Мой опыт использования
- Выводы
- WireGuard Client: iOS
- Get the Server Public Key
- Create Client Keys
- Create the Client WireGuard Config
- Configure the Server
- Add the Config to the iOS Device
- Import Client Config
- Activate the Tunnel
- Настройка vpn wireguard на примере маршрутизатора openwrt в роли сервера и macos в роли клиента
- Установить пакет wireguard
- Создать private и public ключи
- Настроить сетевой интерфейс
- Настроить peer
- Перезапустить сервис network
- Настроить firewall
- Перезапустить сервис firewall
- Клиент MacOs
- Установить приложение
- Пример конфигурации
- О песочнице
- О модерации
- How to configure a WireGuard iOS client
- What you’ll achieve
- Prerequisites
- Download WireGuard app from the App Store
- Add a tunnel
- Add your client to your server
- Connecting to the VPN
Using WireGuard on iOS
Последнее обновление: 28 Октябрь 2021
This guide for iOS (iPhone) users explains how to connect to Mullvad’s WireGuard® servers.
Option 1: use the Mullvad VPN app
The Mullvad VPN app for iOS only uses WireGuard, so all you need to do is connect.
Option 2: use the WireGuard app
Download WireGuard app
Download WireGuard on the App Store.
Generate a configuration file
- In a browser window on your iOS device, open our WireGuard configuration generator.
- If you’re not already logged in to our website, you will be prompted to do so.
- Tap Generate key. (Generate a separate key pair for each device that you use.)
- Select your desired exit location.
- Tap the Download button and save it to your device. You may have to wait 5-10 seconds for the file to begin downloading.
Import the configuration file
- Open the WireGuard app.
- Tap Add a tunnel.
- Tap Create from file or archive.
- Select the config or zip file that you downloaded.
- Tap Allow when WireGuard asks to add VPN configurations. You may need to enter your device’s passcode in order to confirm.
- The location server(s) will appear in the app, for example «mullvad-se2».
Connect and disconnect
- In the WireGuard app, tap the toggle button next to the location server you wish to use.
- You will either connect or disconnect. That’s it!
- To check your connection status, visit our Connection check.
Using multiple devices?
If you’re running the WireGuard app on multiple devices, generate a separate key pair for each device. You will otherwise likely run into connectivity issues.
If you want to access your local network when connected
- Tap the location server you want to use.
- Tap Edit.
- Enable the toggle next to Exclude private IPs.
- Add 10.64.0.0/10 to the Allowed IPs field.
- Tap Save and return to the location list.
- Toggle the location server that you edited off and then on.
On-demand activation
Enable this option if you are experiencing frequent disconnections or if you want to ensure that the VPN service is always active.
- Tap the location server you want to use.
- Tap Edit.
- Scroll down to the end.
- Enable Cellular or Wi-Fi or both.
Is it working?
While on your device, visit our Connection check to get a quick overview of your Mullvad-WireGuard connection status. It’s a good time to check if your browser is leaking information and therefore jeopardizing your privacy.
External resources
«WireGuard» is a registered trademark of Jason A. Donenfeld.
Источник
WireGuard — прекрасный VPN будущего?
Наступило время, когда VPN уже не является каким-то экзотическим инструментом бородатых сисадминов. Задачи у пользователей разные, но факт в том, что VPN стал нужен вообще всем.
Проблема текущих VPN решений в том, что их тяжело правильно настроить, дорого обслуживать, а так же в них полно legacy кода сомнительного качества.
Несколько лет назад канадский специалист по информационной безопасности Jason A. Donenfeld решил, что хватит это терпеть, и начал работу над WireGuard. Сейчас WireGuard готовится к включению в состав ядра Linux, он даже получил похвалы от Линуса Торвальдса и в американском сенате.
Заявленные преимущества WireGuard над другими VPN решениями:
- Простой в использовании.
- Использует современную криптографию: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и т.д.
- Компактный читаемый код, проще исследовать на уязвимости.
- Высокая производительность.
- Четкая и проработанная спецификация.
Неужели найдена серебрянная пуля? OpenVPN и IPSec пора закапывать? Я решил с этим разобраться, а заодно сделал скрипт для автоматической установки личного VPN сервера.
Принципы работы
Принципы работы можно описать примерно так:
- Создается WireGuard интерфейс, ему назначается приватный ключ и IP адрес. Загружаются настройки других пиров: их публичные ключи, IP адреса и т.д.
- Все IP пакеты, приходящие на WireGuard интерфейс инкапсулируются в UDP и безопасно доставляются другим пирам.
- Клиенты задают публичный IP адрес сервера в настройках. Сервер автоматически узнает внешние адреса клиентов, когда от них приходят корректно аутентифицированные данные.
- Сервер может менять публичный IP адрес не прерывая работы. При этом он отошлет оповещение подключенным клиентам и они обновят свою конфигурацию на лету.
- Используется концепт маршрутизации Cryptokey Routing. WireGuard принимает и отправляет пакеты на основании публичного ключа пира. Когда сервер расшифровывает корректно аутентифицированный пакет, проверяется его src поле. Если оно соответствует с конфигурацией allowed-ips аутентифицированного пира, то пакет принимается интерфейсом WireGuard. При отправке исходящего пакета происходит соответственная процедура: берется dst поле пакета и на основании его выбирается соответсвующий пир, пакет подписывается своим ключом, шифруется ключом пира и отправляется на remote endpoint.
Вся основная логика WireGuard занимает менее 4 тысяч строк кода, тогда как OpenVPN и IPSec имеют сотни тысяч строк. Для поддержки современных криптоалгоритмов предлагается включить в состав ядра Linux новый криптографический API Zinc. В данный момент идет обсуждение, насколько это удачная идея.
Производительность
Максимальное преимущество в производительности (по сравнению с OpenVPN и IPSec) будет заметно на Linux системах, так как там WireGuard реализован в виде модуля ядра. Кроме этого поддерживаются macOS, Android, iOS, FreeBSD и OpenBSD, но в них WireGuard выполняется в userspace со всеми вытекающими последствиями для производительности. Поддержку Windows обещают добавить в ближайшем будущем.
Результаты бенчмарков с официального сайта:
Мой опыт использования
Я не эксперт по настройке VPN. Однажды настраивал OpenVPN ручками и это было очень муторно, а IPSec даже и не пытался. Слишком много решений нужно принимать, очень легко выстрелить себе в ногу. Поэтому я всегда пользовался готовыми скриптами для настройки сервера.
Так вот, WireGuard, с моей точки зрения, вообще идеален для пользователя. Все низкоуровневые решения приняты в спецификации, поэтому процесс подготовки типичной VPN инфраструктуры занимает всего несколько минут. Нафакапить в конфигурации практически невозможно.
Процесс установки детально описан на официальном сайте, отдельно хочется отметить отличную поддержку OpenWRT.
Генерируются ключи шифрования утилитой wg :
Далее, нужно создать серверный конфиг /etc/wireguard/wg0.conf со следующим содержанием:
и поднять туннель скриптом wg-quick :
В системах с systemd вместо этого можно использовать sudo systemctl start wg-quick@wg0.service .
На клиентской машине, создать конфиг /etc/wireguard/wg0.conf :
И точно так же поднять туннель:
Осталось настроить NAT на сервере, чтобы клиенты могли выходить в Интернет, и все готово!
Такую простоту использования и компактность кодовой базы удалось достичь за счет отказа от функционала дистрибьюции ключей. Здесь нет сложной системы сертификатов и всего этого корпоративного ужаса, короткие ключи шифрования распространяются примерно как SSH ключи. Но в связи с этим возникает проблема: WireGuard будет не так просто внедрять в некоторых уже существующих сетях.
Из недостатков стоит отметить, что WireGuard не заработает через HTTP proxy, поскольку в качестве транспорта есть только протокол UDP. Возникает вопрос, возможно ли будет обфусцировать протокол? Конечно, это не прямая задача VPN, но для OpenVPN, например, существуют способы маскировки под HTTPS, что помогает жителям тоталитарных стран полноценно пользоваться Интернетом.
Выводы
Подводя итог, это очень интересный и перспективный проект, можно уже сейчас использовать его на личных серверах. Какой профит? Высокая производительность на Linux системах, простота настройки и поддержки, компактная и читабельная кодовая база. Однако, бросаться переводить комплексную инфраструктуру на WireGuard еще рано, стоит подождать включение в состав ядра Linux.
Для экономии своего (и вашего) времени я разработал автоматический установщик WireGuard. С его помощью можно поднять личный VPN для себя и своих знакомых даже ничего в этом не понимая.
Источник
WireGuard Client: iOS
In this tutorial, we setup a WireGuard client on iOS (iPhone, for example). Before following this tutorial, you should already have a WireGuard server running. Install the WireGuard app for iOS.
Get the Server Public Key
From the server, print the server’s public key. We’ll need this soon
Create Client Keys
Create private and public keys for the WireGuard client. Protect the private key with a file mode creation mask.
Print the client private key.
Create the Client WireGuard Config
Create the WireGuard client config file at
/wg-client.conf . (Use a command like nano
/wg-client.conf .) Notice the syntax of the client config is the same as the server config.
Configure the Server
Print the client public key.
Edit the WireGuard service config file at /etc/wireguard/wg0.conf . (Use a command like sudo nano /etc/wireguard/wg0.conf .) Add a [Peer] section to the bottom.
Apply the server config change.
Add the Config to the iOS Device
The client config file is on the server. The easy way to copy that config to the client is via QR code. Install qrencode on the WireGuard server.
Print the QR code in the server terminal.
Import Client Config
From the WireGuard iOS app, tap “Add a Tunnel”, or tap the plus symbol at the upper right corner. In the dialog, tap “Create from QR code”. (Allow the WireGuard app to use the camera.) The camera activates; point the camera at the QR code. Name the tunnel and tap “Save”. (Allow the WireGuard app to add VPN configurations.)
Activate the Tunnel
From the WireGuard app, tap the toggle switch next to your new tunnel.
Источник
Настройка vpn wireguard на примере маршрутизатора openwrt в роли сервера и macos в роли клиента
Установить пакет wireguard
Дополнительно можно установить модули для luci
Создать private и public ключи
Дополнительно можно сгенерировать preshared ключ
Настроить сетевой интерфейс
Где Wireguard название интерфейса
Настроить peer
Опция preshared_key не обязательная
Перезапустить сервис network
Настроить firewall
Открыть порт 1234
Занести интерфейс Wireguard в зону lan и включить опицию Masquerading
Без опции Masquerading на клиенте не будет доступен интернет и все что находиться за tap0 интерфейсом (в моем случае есть openvpn bridge с tap0 интерфейсом)
Перезапустить сервис firewall
Клиент MacOs
Установить приложение
Установить приложение WireGuard из App Store
Пример конфигурации
Опция PresharedKey зависит от настроек сервера
О песочнице
Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.
Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.
Чтобы исключить предвзятость при оценке, все публикации анонимны, псевдонимы показываются случайным образом.
О модерации
Не надо пропускать:
- рекламные и PR-публикации
- вопросы и просьбы (для них есть Хабр Q&A);
- вакансии (используйте Хабр Карьеру)
- статьи, ранее опубликованные на других сайтах;
- статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, неоправданным выделением слов и предложений и другим неуместным форматированием текста;
- жалобы на компании и предоставляемые услуги;
- низкокачественные переводы;
- куски программного кода без пояснений;
- односложные статьи;
- статьи, слабо относящиеся к или не относящиеся к ней вовсе.
Источник
How to configure a WireGuard iOS client
This is a coniutation of my free “mini-course” called Gain Flexibility & Increase Privacy with WireGuard VPN. Start there if you are new to WireGuard.
What you’ll achieve
- We will have our iPhone client connecting to our WireGuard VPN server
This is what it looks like:
Prerequisites
- You need a working WireGuard VPN Server (learn how to set that up here)
- You need an iPhone/iPad running the latest iOS version
Download WireGuard app from the App Store
Add a tunnel
We need to add a tunnel:
We then want to choose “Create from QR code”:
Using the QR code that we generated on our server, we can now hold our camera up to our QR code to import it. Give it a descriptive name for your connection.
You may be prompted to add this VPN configuration. Be sure to allow it so you can access it through the iOS settings page.
You’ll see it automatically imports everything, similar to our other clients that we have been working with.
You can set the On demand to be “on” if you want to always use your VPN (over LTE and Wi-Fi).
Add your client to your server
Before you can connect, you need to add the client to your server. I go through this on why we need to do this here, but here is the quick solution.
ON YOUR SERVER run this command:
IMPORTANT: You need to replace YOUR_CLIENT_PUBLIC_KEY and YOUR_CLIENT_VPN_IP
Connecting to the VPN
You can now access the VPN from the “Settings” page of iOS.
Источник