Инструкция по подключению к Wireguard VPN

Инструкция по подключению к Wireguard VPN Хостинг
Содержание
  1. Что еще нужно настроить на сервере?
  2. Что же такое wireguard?
  3. Register the AWS Free Account
  4. 2. AWS account creation
  5. 4. Specify billing information
  6. 5. Account Verification
  7. 6. Choosing an AWS support plan
  8. 1.1. Choose Instance type
  9. 1.2. Configure Instance details
  10. 1.3. Add storage
  11. 1.5. Opening ports
  12. 1.6. Review Instance Launch settings
  13. 1.7. Creating access keys
  14. 1.7.1. Save private keys (.pem)
  15. 1.8. Instance Launch Summary
  16. 2.1. Create an External IP
  17. 2.2. External IP setup
  18. 2.3. IP address overview
  19. 2.4. List of external IP addresses
  20. 2.5. Assign an external IP to Instance
  21. 2.6. Associate address with Instance
  22. 2.7. External IP assignment Summary
  23. Connect to AWS instance
  24. 1. Connect from a Windows PC via SSH
  25. 1.1.1. Import AWS key into Putty
  26. 1.1.2. AWS key in PEM format
  27. 1.1.3. Set the Key import parameters
  28. 1.1.4. Save the imported .ppk key
  29. 1.2.1. Make a connection
  30. 1.2.3. Use a private key for an SSH connection
  31. 1.2.4. Open the private key file
  32. 1.2.5. Save changes and launch an SSH remote connection
  33. 1.2.7. Set a trust between hosts
  34. 1.2.8. Enter the password to activate the key
  35. 1.2.9. Successful connection
  36. 1. Install Wireguard
  37. 1.1. Clone the scripts repository
  38. 1.2. Directory of scripts repository
  39. 1.3.2. Set internal IP address
  40. 1.3.3. Specify DNS Server
  41. 1.3.4. Specify WAN Interface
  42. 2.2. Client configuration with QR code
  43. 1. Android mobile Client setup
  44. 2. Windows Client Setup
  45. 2.1. Create a local text file to import configuration
  46. 2.3. Paste the configuration text to a local text file
  47. 2.4. Save the local configuration file
  48. 2.5. Import local configuration file
  49. 2.6. Establish a VPN connection
  50. Stages
  51. В чем преимущество собственного сервера?
  52. Инструкция по подключению к wireguard vpn
  53. Как настроить сервер?
  54. Мобильный клиент
  55. Настраиваем роутер на openwrt
  56. Теперь настроим dns
  57. 1.3.1. Set connection endpoint (IP:port)

Что еще нужно настроить на сервере?

Правильно, Firewall. Но сперва сменим порт для ssh подключения, т.к. боты сразу начинают пытаться подобрать пароль по словарям. По умолчанию в Debian, впрочем как и в любом другом дистрибутиве Linux, ssh сервер работает на 22 порту. Изменим этот порт, к примеру, на 23331. Открываем файл настроек /etc/ssh/sshd_config и изменяем следующую строку:

Port 23331

Сохраняем и рестартуем службу:

~# service sshd restart

Проверяем изменения:

~# netstat -tulnp | grep ssh

tcp 0 0 0.0.0.0:23331 0.0.0.0:* LISTEN 925/sshd
tcp6 0 0 :::23331 :::* LISTEN 925/sshd

Следующее подключение будем производить по порту 23331.

iptables я трогать не буду, т.к. им очень легко лишить себя доступа к серверу. Установим UFW:

~# apt install ufw

Откроем файл настроек /etc/default/ufw и убедимся, что параметр 

IPV6=yes

выставлен в yes. 

Прописываем настройки по умолчанию:

~# ufw default deny incoming

~# ufw default allow outgoing

Открываем порты:

~# ufw allow 23331/tcp # порт для ssh

~# ufw allow 53 # порт для DNS

~# ufw allow 51820/udp # порт для Wireguard

Наконец включаем UFW:

~# ufw enable

И проверяем его работу:

~# ufw status

Что же такое wireguard?

WireGuard — VPN-туннель нового поколения, созданный Джейсоном Доненфельдом (Jason A. Donenfeld), главой компании Edge Security. Проект разрабатывался как упрощенная и шустрая альтернатива OpenVPN и IPsec. Первая версия продукта содержала всего 4 тыс. строк кода. Для сравнения, в OpenVPN порядка 120 тыс. строк, а в IPSec — 420 тыс.

По словам разработчиков, WireGuard несложно настроить, а безопасность протокола достигается за счет проверенных криптографических алгоритмов: поточного шифра ChaCha20, криптографической имитовставкиPoly1305 и собственных криптографических хеш-функций.

Если вы используете OpenVPN, при смене сети: Wi-Fi, LTE или Ethernet нужно каждый раз переподключаться к VPN-серверу. Серверы WireGuard же не разрывают соединение, даже если пользователь получил новый IP-адреc. Стоит отметить также высокую скорость туннеля и низкие задержки, что является очень привлекательным для любителей он-лайн игр:

Register the AWS Free Account

To register an AWS account, you need to submit a valid phone number and a bank card (Visa or Mastercard). I recommend using virtual cards provided for free by Yandex.Money or Qiwi wallet.AWS checks the validity of the card by deducting 1$ at registration followed by the refund.

2. AWS account creation

Fill in the data and click the Continue button.

4. Specify billing information

Card number, expiry date, and a cardholder name.

5. Account Verification

AWS verifies your phone number and debits $ 1 from your bank card. Then you should get a 4-digit code on the computer screen and receive a call from Amazon. During a call, you need to dial the 4-digit code shown on the screen.

6. Choosing an AWS support plan

Choose a Basic plan (free).

1.1. Choose Instance type

The t2.micro instance type is set by default and is the right one to go with. Click the Next: Configure Instance Details button to proceed.

1.2. Configure Instance details

Disable the auto-assignment of the public IP as you will assign a static one to your Instance. Click the Next: Add Storage button.

1.3. Add storage

Specify the size of the Drive — the 16GB is enough.Click Next: Add Tags button.

1.5. Opening ports

Configure the firewall by assigning open ports. The set of open ports is called the «Security Group». You need to create a new «Security Group», give it a name, a description and a UDP port (Custom UDP Rule).In the Port Range field specify a port number from the range 49152 — 65535 of dynamic ports. In my case, I choose the 54321 port number.Click the Review and Launch button to complete this step.

1.6. Review Instance Launch settings

Review and check all the settings for Instance Launch, and if all is OK click the Launch button.

1.7. Creating access keys

Create or add an existing SSH key in the dialog box that you will use for remote connection to your instance.Choose the «Create a new key pair» to generate a new key. Give it a name and click the Download Key Pair button to download the generated key to the PC drive. Click the Launch Instances button.

1.7.1. Save private keys (.pem)

When you click the Download Key Pair you save the key as a .pem file.For better management, I assigned a wireguard-awskey.pem name to the file.

1.8. Instance Launch Summary

Next, you should see a message about the successful launch of the Instance that you have created. You can visit the list of your Instances by clicking the View instances button.

2.1. Create an External IP

Next is the creation of an external IP address, that you will use to connect to the VPN server.Find the Elastic IPs in the NETWORK & SECURITY category of the navigation panel. Click the Allocate new address button.

2.2. External IP setup

In the next step you need to enable the Amazon pool (which is by default), and click the Allocate button

2.3. IP address overview

The next window displays an external IP address assigned by the Amazon pool. Write it down, as you will need it fo the configuration process and for VPN server setup. In this guide, as an example, I use the IP address 4.3.2.1.Once you finish this step, click the Close button.

2.4. List of external IP addresses

Next, you should get a list of your public IP addresses (Elastics IPs).

2.5. Assign an external IP to Instance

Choose the IP address from the list (see 2.2.3), and click the mouse right button for a drop-down menu.In this menu choose the Associate address to assign an IP to the created Instance.

2.6. Associate address with Instance

In the drop-down menu select the created Instance, and click the Associate button.

2.7. External IP assignment Summary

You should now have a created Instance with an assigned public IP address. This enables you to make a remote connection to the Instance from outside (from your PC) via SSH.

Connect to AWS instance

SSH is a secure protocol to manage remote computer devices.

1. Connect from a Windows PC via SSH

Download and install a Putty to make a connection from the Windows PC.

1.1.1. Import AWS key into Putty

Launch a PuTTYgen utility to match your AWS key in .pem format with a .ppk format suitable for the Putty.To do this select Conversions -> Import Key from the top menu.

1.1.2. AWS key in PEM format

Next, choose the key that you dealt with in 2.1.7.1In my case it is wireguard-awskey.pem.

1.1.3. Set the Key import parameters

At this step, you need to specify the import parameters of the Key — the key comment and the key passphrase. You will need these at every connection. Also it protects the key itself with a password from unauthorized access.

1.1.4. Save the imported .ppk key

You can save your private key in a .ppk format suitable for Putty from the save file dialog box.Specify the key name (in my case, wireguard-awskey.ppk) and click the Save button.

1.2.1. Make a connection

Run the Putty program, choose the Session category (it is open by default) and in the Host Name field enter the public IP address of the server. I remind that you got your public IP address in step 2.2.3.Give any name to the connection in the Saved Session field (for me it is wireguard-aws-london). Click the Save button.

1.2.3. Use a private key for an SSH connection

Follow the path Connection -> SSH -> Auth subcategory and click on the Browse button to choose the private key file.

1.2.4. Open the private key file

Specify the key that you imported earlier in step 3.1.1.4 — wireguard-awskey.ppk, and click the Open button.

1.2.5. Save changes and launch an SSH remote connection

In the Session category of Putty configuration window press the Save button to apply all the changes you made in (3.1.2.2 — 3.1.2.4).Click the Open button to launch the ready-to-go SSH remote connection.

1.2.7. Set a trust between hosts

At the first connection, you should get a warning about the lack of trust between two computers (hosts). The system asks you whether you trust the remote host. Click Yes to add the remote host to the trust list.

1.2.8. Enter the password to activate the key

In a Putty terminal window enter the key password you set in step3.1.1.3. When entering the password it does not show any action on the screen. No worries, if you make a mistake, you can use the backspace key.

1.2.9. Successful connection

Once you enter the correct password, you should get a welcome text. It informs you that the remote system is ready to execute your commands.

1. Install Wireguard

Enter the following commands in the Putty terminal.You can copy them to the clipboard, and paste in the terminal by pressing the right mouse button.

1.1. Clone the scripts repository

Clone a Wireguard installation scripts repository:

1.2. Directory of scripts repository

Go to the directory of the cloned repository:

cd wireguard_aws

1.3.2. Set internal IP address

Enter the IP address of the Wireguard server in a secure VPN subnet. If you do not know what it is, press Enter key to set the default value (10.50.0.1).

Enter the server address in the VPN subnet (CIDR format) ([ENTER] set to default: 10.50.0.1):

1.3.3. Specify DNS Server

Enter the IP address of the DNS server, or press Enter key to set the default value 1.1.1.1 (Cloudflare public DNS).

Enter the ip address of the server DNS (CIDR format) ([ENTER] set to default: 1.1.1.1):

1.3.4. Specify WAN Interface

Enter the name of the external network interface. This interface will sense the internal network interface of the VPN.Press Enter to set the default for AWS (eth0)

Enter the name of the WAN network interface ([ENTER] set to default: eth0):

2.2. Client configuration with QR code

Execute the qrencode -t ansiutf8 command to get the QR of a created client config. (in my case, the new client name is Alex@mobile).

sudo cat /etc/wireguard/clients/Alex@mobile/Alex@mobile.conf | qrencode -t ansiutf8

1. Android mobile Client setup

Download the Wireguard mobile client for Android from the official GooglePlay store.

Scan the QR code to import the client configuration (see 4.2.2) and assign it a name.

After importing the configuration, you can enable the VPN tunnel. A little key symbol in the Android system confirms the VPN connection.

2. Windows Client Setup

Download and install the TunSafe, which is a Wireguard client for Windows.

2.1. Create a local text file to import configuration

Create a dummy text file on the desktop of your PC.

2.3. Paste the configuration text to a local text file

Paste the configuration text from the clipboard to dummy text file we created earlier on the desktop (see 5.2.1).

2.4. Save the local configuration file

Save the text file as the .conf format (in my case as london.conf)

2.5. Import local configuration file

Import the configuration file into the TunSafe program.

2.6. Establish a VPN connection

In TunSafe program select the imported configuration file and click the Connect button.

Stages

  1. Register the AWS Account.
  2. Create an AWS instance.
  3. Connect to AWS instance.
  4. Configure Wireguard server.
  5. Configure VPN Clients.
  6. Verify VPN connection.

В чем преимущество собственного сервера?

Никогда до этого я не арендовал виртуальный частный сервер, но опыт использования услуг VPN-провайдеров имелся. И как правило VPN-туннели организованы по технологии OpenVPN (для стационарных ПК) и IPSec (для мобильных устройств): чаще всего порты и каналы, по которым вы подключаетесь к серверу, перегружены — вы делите их со множеством таких же клиентов.

Но самое главное: нельзя быть до конца уверенным, не анализирует ли поставщик VPN-услуг ваш трафик? Арендованный виртуальный сервер дает вам полный контроль над вашим трафиком, шифрованный туннель защищает от атаки «человек-посередине» (т.н. MiTM),

Инструкция по подключению к Wireguard VPNв качестве MITM может выступать и ваш провайдер

а собственный DNS-резолвер позволяет не только скрывать все DNS-запросы от вашего провайдера или оператора бесплатных сетей Wi-Fi (тем более это необходимо, если вы пользуетесь общественным Wi-Fi от ДИТ Москвы: на улицах или в парках), но и обеспечит нужную фильтрацию ненужного контента (например, позволит блокировать трекеры, телеметрию и прочую Wi-Fi-аналитику, и сделает это не только для сайтов в браузере, но и для мобильных приложений и операционной системы вообще).

Инструкция по подключению к wireguard vpn

Если вы заказали услугу Wireguard VPN у нас, то выполните следующие шаги для настройки подключения к вашему VPN серверу

1. Перейдите по ссылке: http://<IP_АДРЕС_СЕРВЕРА>:5000/login

VPN

2. Войдите в web интерфейс управления вашим Wireguard VPN, данные для входа ниже.

Логин: admin

Пароль:ваш root пароль, полученный в письме об открытии услуги

3. Перейдите в раздел «Wireguard Clients»

Инструкция по подключению к Wireguard VPN

4. Справа сверху нажмите «New Client» и на появившейся форме заполните поле «Name», остальные поля не редактируйте, если не уверены нужно ли это вам. После указания имени пользователя, нажмите кнопку «Submit»

VPN

VPN

5. После добавления пользователя, не забудьте сохранить конфигурацию кнопкой «Apply Config» сверху справа. Для подтверждения операции также нажмите кнопку «Apply» на появившейся форме.

VPN

VPN

ВАЖНО: сохранять конфигурацию нужно каждый раз когда вы редактируете пользователей, например, когда создаете нового пользователя, удаляете или редактируете существующего пользователя.

6. Чтобы подключиться к вашему VPN, вам нужно установить приложение. Приложения есть для всех самых популярных OS.

Windows: https://download.wireguard.com/windows-client/wireguard-installer.exe

MacOS: https://itunes.apple.com/us/app/wireguard/id1451685025

iOS: https://itunes.apple.com/us/app/wireguard/id1441195209

Android: https://play.google.com/store/apps/details?id=com.wireguard.android

Полный список клиентов, в том числе для различных Linux систем:

https://www.wireguard.com/install

7. С телефона проще всего подключиться через QR код, для этого у созданного вами пользователя есть кнопка «QR code», нажмите ее чтобы получить код и сканируйте его вашим приложением Wireguard. Полная конфигурация будет добавлена автоматически, потребуется указать только произвольное имя добавляемого сервера.

VPN

8. С компьютера можно подключиться импортируя готовый файл конфигурации, скачать его можно по кнопке «Download».

Как настроить сервер?

Т.к. в блоге нет специального инструмента, чтобы выделять код, который необходимо вставлять в окно консоли, я буду каждую команду начинать с символов ~# (их вводить не надо).

Добавляем репозиторий Wireguard (в настоящее время Wireguard находится в процессе активной разработки, еще не выпущена стабильная версия, полностью прошедшая аудит — учитывайте это в работе):

Мобильный клиент

Для телефона на Android скачиваем соответствующий клиент в официальном Маркете (iOS клиент скачиваем отсюда). Осталось только импортировать нужный профиль из заранее подготовленного файла конфига (текстовый файл с разрешением *.conf):

[Interface]

PrivateKey = <insert mobile_private_key>

Address = 10.50.0.1/32, fd42:42:42:ffff::1/128

DNS = 10.0.0.1, fd42:42:42::1

[Peer]

PublicKey = <insert server_public_key>

AllowedIPs = 0.0.0.0/0, ::/0

Endpoint = <insert server_ip_address>:51820

PersistentKeepalive=25

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

Подключаемся и убеждаемся, что доступ по ipv6 у нас есть:

Настраиваем роутер на openwrt

В клиенте OpenWRT (наш маршрутизатор) мы будем использовать выборочную маршрутизацию трафика, выбирая между интерфейсами WAN и WG0. Для этого нам надо установить на наш маршрутизатор пакет VPN Policy-Based Routing. Чтобы его поставить, надо добавить сторонний репозиторий. В консоли маршрутизатора набираете:

Теперь настроим dns

Основной файл с настройками Unbound лежит по адресу /etc/unbound/unbound.conf. Если его открыть, можно увидеть следующую запись:

include: «/etc/unbound/unbound.conf.d/*.conf»

Это значит, что файл конфигурации сборный, собирается из всех файлов, лежащих в папке unbound.conf.d и имеющих расширение .conf. Поэтому мы этот файл закрываем и заходим в папку /etc/unbound/unbound.conf.d/, удаляем содержащиеся здесь файлы и скачиваем вместо них следующий файл main.conf.

~# ifconfig eth0

Смотрите строку inet и первую строку inet6.

Сохраняете файл, проверив кодировку. В консоли выполняете следующую команду

1.3.1. Set connection endpoint (IP:port)

Enter the external IP address (see 2.2.3) and the open port (see 2.1.5) of the Wireguard server. Use the following format IP:port, for example, 4.3.2.1:54321. Press Enter key to confirm.

Enter the endpoint (external ip and port) in format[ipv4:port] (e.g. 4.3.2.1:54321): 4.3.2.1:54321

Оцените статью
Хостинги