44 подписчика

Установка и настройка сервера WireGuard на Ubuntu Linux 20.04

Всем привет, в этой небольшой статье я расскажу как установить и настроить свой собственный Wireguard VPN сервер на дистрибутиве Ubuntu Server 20.04, а так же рассмотрим некоторые важные параметры конфигурационных файлов.

Всем привет, в этой небольшой статье я расскажу как установить и настроить свой собственный Wireguard VPN сервер на дистрибутиве Ubuntu Server 20.

И так что же такое этот самый WireGuard?

WireGuard - это простой и быстрый VPN, использующий современную криптографию. Он быстрее, проще, компактнее чем IPSec и значительно более производительный чем OpenVPN. WireGuard разработан как VPN общего назначения для работы как на встроенных интерфейсах, так и на суперкомпьютерах, подходит для самых разных задач. Первоначально выпущенный для ядра Linux, он теперь является кроссплатформенным (Windows, macOS, BSD, iOS, Android) и широко развертываемым. В настоящее время он активно разрабатывается, но уже сейчас его можно считать самым безопасным, простым в использовании и простым VPN-решением.

Подготовка операционной системы Ubuntu 20.04 к установке WireGuard

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

sudo ufw allow OpenSSH

Далее откроем порт на котором будет работать на WireGuard сервер:

sudo ufw allow 51840

Так же необходимо разрешить пересылку трафика на уровне ядра, для этого откроем и отредактируем файл /etc/sysctl.conf:

sudo nano /etc/sysctl.conf

В этом файле необходимо раскомментировать строчку:

net.ipv4.ip_forward=1 (удалить символ символ решетки в начале строки)

Сохраняем файл Ctrl+O и закрываем Ctrl+X.

Чтобы применить данные параметры выполним команду:

sudo sysctl -p

В окне терминала должен появится вывод net.ipv4.ip_forward = 1.

На этом базовая подготовка ОС закончена, переходим к установки и настройке сервера WireGuard.

Установка и настройка серверной части WireGuard

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

sudo apt update -y

Далее установим необходимые пакеты:

sudo apt install wireguard resolvconf

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

sudo su

Перейдем в директорию /etc/wireguard и сгенерируем открытый и закрытый ключи сервера:

cd /etc/wireguard
umask 077; wg genkey | tee server_private_key | wg pubkey > server_public_key

Создадим конфигурационный файл сервера:

nano server.conf

и добавим в него следующую конфигурацию:

[Interface]
PrivateKey = server_private_key  # подставьте сюда приватный ключ сервера (cat server_private_key)
Address = 10.0.10.1/24  # Внутренний ip адрес нашего сервера
ListenPort = 51840  # Порт на котором наш сервер будет принимать подключения
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# eth0 необходимо заменить на ваш сетевой интерфейс (ip route | grep default)

Далее сгенерируем пары ключей для клиента:

umask 077; wg genkey | tee client1_private_key | wg pubkey > client1_public_key

и добавим конфигурацию первого клиента в конфигурационный файл сервера:

[Peer]
PublicKey = client1_public_key # Подставьте сюда публичный ключ клиента (cat client1_public_key)
AllowedIPs = 10.0.10.2/32 # внутренний ip адрес клиента (client1)

Конфигурационный файл сервера должно получиться примерно таким:

[Interface]
PrivateKey = 6OPCENHn9Rueryuery747a78Gqvr4YOua92MIhg1GyLORYV0=
Address = 10.0.10.1/24
ListenPort = 51840
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = HXIzf+/OwNZBvfueryueyr7heVrZHojWdSZgI0Ul+7ltms=
AllowedIPs = 10.0.10.2/32

Сохраняем и закрываем файл. Далее запускаем наш сервер:

sudo wg-quick up server
sudo systemctl enable wg-quick@server

На этом настройка серверной части завершена, переходим к настройке клиента.

Установка и настройка клиента WireGuard на Ubuntu 20.04

Обновим список доступного ПО в репозиториях и установим необходимые пакеты:

sudo su
apt update && apt install wireguard resolvconf -y

Создадим конфигурационный файл клиента:

nano client1.conf

и добавим в него следующее содержимое:

[Interface]
PrivateKey = client1_private_key # Скопировать значение с нашего сервера (на сервере: sudo cat /etc/wireguard/client1_private_key)
Address = 10.0.10.2/24 # ip адрес клиента client1
DNS = 8.8.8.8
# Секция настройки подключения к серверу
[Peer]
PublicKey = server_public_key # Скопировать значение с нашего сервера (на сервере: sudo cat /etc/wireguard/server_public_key)
AllowedIPs = 0.0.0.0/0 # разрешаем клиенту доступ в сеть
Endpoint = your_public_ip:51840 # Публичный IP адрес вашего сервера
PersistentKeepalive = 15

Сохраняем и закрываем файл. Далее запускаем сервис командой:

sudo wg-quick up client1

После запуска проверяем доcтуп к серверу по виртуальной сети:

ping 10.0.10.1 -c 5

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

PING 10.0.10.1 (10.0.10.1) 56(84) bytes of data.
64 bytes from 10.0.10.1: icmp_seq=1 ttl=64 time=0.018 ms
64 bytes from 10.0.10.1: icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from 10.0.10.1: icmp_seq=3 ttl=64 time=0.044 ms
64 bytes from 10.0.10.1: icmp_seq=4 ttl=64 time=0.047 ms
64 bytes from 10.0.10.1: icmp_seq=5 ttl=64 time=0.041 ms
--- 10.0.10.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4085ms
rtt min/avg/max/mdev = 0.018/0.039/0.049/0.011 ms

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

Читайте так же:

Настройка подключения типа "Мост" в Ubuntu Linux 20.04

Установка Qemu-KVM в Ubuntu Linux 20.04

Создание виртуальной машины в гипервизоре QEMU-KVM и подготовка к установке Debian 10 в Ubuntu Linux 20.04

#wireguard #ubuntu #server #vpn #network