Как настроить VPN-доступ к внутренней сети сервера (OpenVPN/WireGuard)?

В статье разберём:

  • чем отличаются OpenVPN и WireGuard;
  • как установить и настроить VPN-сервер на VPS;
  • как подключить клиента и протестировать соединение;
  • как ограничить доступ и повысить безопасность.

Что понадобится

  • VPS на Linux (Ubuntu, Debian или CentOS) с доступом по SSH и правами sudo.

  • Открытый UDP-порт для работы VPN (по умолчанию 1194 для OpenVPN или 51820 для WireGuard).

  • Пакеты openvpn и easy-rsa или wireguard — в зависимости от выбранного решения.

  • Базовые знания сетевых интерфейсов и маршрутизации в Linux.

Перед началом рекомендуется обновить систему и включить фаервол для ограничения входящих подключений:

sudo apt update && sudo apt upgrade -y
sudo ufw allow OpenSSH

После настройки VPN фаервол потребуется дополнить правилами для разрешения VPN-трафика.

VPN на VPS для безопасного доступа

Совет: выбирайте WireGuard для современных конфигураций — он быстрее, проще и эффективнее OpenVPN. Однако OpenVPN может быть предпочтителен, если требуется совместимость с устаревшими клиентами.

Установка и базовая настройка OpenVPN

OpenVPN — классическое решение для создания защищённых туннелей между сервером и клиентами. Его преимуществами являются стабильность, гибкость настроек и поддержка большинства ОС.

Установка OpenVPN и Easy-RSA

sudo apt install openvpn easy-rsa -y

После установки создайте каталог для ключей и сертификатов:

make-cadir ~/openvpn-ca
cd ~/openvpn-ca

Генерация ключей и сертификатов

Инициализируйте PKI и создайте корневой сертификат центра сертификации (CA):

./easyrsa init-pki
./easyrsa build-ca

Создайте ключи для сервера:

./easyrsa gen-req server nopass
./easyrsa sign-req server server

После этого в каталоге pki/ появятся необходимые файлы: ca.crt, server.crt, server.key. Их нужно будет указать в конфигурации OpenVPN.

Генерация сертификатов OpenVPN

Совет: храните приватные ключи в защищённом каталоге и не передавайте их по нешифрованным каналам.

Настройка сервера OpenVPN и подключение клиента

После генерации сертификатов можно приступить к настройке самого VPN-сервера. Конфигурация OpenVPN хранится в файле /etc/openvpn/server.conf.

Пример конфигурации сервера


port 1194
proto udp
dev tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh none
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
keepalive 10 120
user nobody
group nogroup
persist-key
persist-tun
status /var/log/openvpn-status.log
verb 3
  

Сохраните файл и включите сервис:

sudo systemctl enable openvpn@server
sudo systemctl start openvpn@server

Разрешение трафика через VPN

Настройте маршрутизацию и разрешите форвардинг пакетов:

sudo nano /etc/sysctl.conf

Найдите строку и раскомментируйте:

net.ipv4.ip_forward=1

Примените изменения:

sudo sysctl -p

Создание клиентского профиля

Создайте ключ и сертификат для клиента:

cd ~/openvpn-ca
./easyrsa gen-req client1 nopass
./easyrsa sign-req client client1

Затем соберите клиентский файл .ovpn с указанием адреса вашего сервера:


client
dev tun
proto udp
remote your_server_ip 1194
resolv-retry infinite
nobind
persist-key
persist-tun
remote-cert-tls server
cipher AES-256-GCM
auth SHA256
verb 3

(вставьте содержимое ca.crt)


(вставьте содержимое client1.crt)


(вставьте содержимое client1.key)

  
Настройка OpenVPN клиента

Совет: передавая клиентский файл, используйте защищённый канал — SCP, SFTP или вручную через зашифрованный архив.

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

WireGuard — современный VPN-протокол с минималистичной архитектурой и высокой скоростью. Он использует криптографию последнего поколения и крайне прост в настройке.

Установка WireGuard

sudo apt install wireguard -y

Создание ключей

wg genkey | sudo tee /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key

Команда создаст приватный и публичный ключи, которые будут использоваться для установления защищённого соединения.

Настройка интерфейса

Откройте файл конфигурации:

sudo nano /etc/wireguard/wg0.conf

Пример настройки сервера:


[Interface]
Address = 10.9.0.1/24
ListenPort = 51820
PrivateKey = (содержимое private.key)
SaveConfig = true

[Peer]
PublicKey = (ключ клиента)
AllowedIPs = 10.9.0.2/32
  

Разрешите форвардинг пакетов и добавьте правило в фаервол:


sudo sysctl -w net.ipv4.ip_forward=1
sudo ufw allow 51820/udp
  

Запуск WireGuard

sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0

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

sudo wg show
Настройка WireGuard на VPS

Совет: WireGuard не использует сертификаты — только ключи. Это значительно упрощает конфигурацию, но требует внимательного контроля доступа к файлам /etc/wireguard.

Добавление клиентов WireGuard и проверка соединения

Для подключения нового клиента к WireGuard нужно создать пару ключей и добавить его в конфигурацию сервера. Каждый клиент получает собственный IP-адрес в подсети VPN.

Создание ключей клиента

wg genkey | tee client1_private.key | wg pubkey | tee client1_public.key

Добавьте клиента на сервере в файл /etc/wireguard/wg0.conf:


[Peer]
PublicKey = (client1_public.key)
AllowedIPs = 10.9.0.2/32
  

Теперь создайте конфигурацию клиента:


[Interface]
Address = 10.9.0.2/24
PrivateKey = (client1_private.key)
DNS = 8.8.8.8

[Peer]
PublicKey = (server_public.key)
Endpoint = your_server_ip:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
  

Сохраните файл, например, как wg0.conf, и перенесите его на клиентскую машину. Для запуска VPN выполните:

sudo wg-quick up wg0

Проверка подключения

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

sudo wg show

Вывод покажет публичные ключи, IP-адреса и статистику обмена пакетами. Для проверки доступности серверных ресурсов выполните:

ping 10.9.0.1
Подключение клиентов WireGuard

Совет: при необходимости ограничьте доступ клиентов к внутренним IP-адресам с помощью параметра AllowedIPs, чтобы разрешить доступ только к нужным подсетям или службам.

Итоги

  • Разобрали настройку VPN-доступа с использованием OpenVPN и WireGuard.

  • Создали серверные и клиентские конфигурации, ключи и сертификаты.

  • Включили маршрутизацию трафика и проверили соединение между клиентом и сервером.

  • Настроили шифрованный туннель для безопасного доступа к внутренним ресурсам VPS.

Вывод: собственный VPN-сервер на VPS обеспечивает полную безопасность при подключении к административным панелям и внутренним сервисам. OpenVPN подходит для классических сценариев с сертификатами, а WireGuard — для быстрой и современной настройки с минимальными затратами ресурсов. Оба решения позволяют защитить трафик и централизовать доступ к инфраструктуре.

Настройка VPN OpenVPN и WireGuard на VPS

Оставить комментарий