Всем привет, в этой небольшой статье я расскажу как установить и настроить свой собственный Wireguard VPN сервер на дистрибутиве Ubuntu Server 20.04, а так же рассмотрим некоторые важные параметры конфигурационных файлов.
И так что же такое этот самый 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