VPN (Virtual Private Network) — технология создания зашифрованного туннеля между двумя точками через публичную сеть (интернет). Трафик внутри туннеля зашифрован и недоступен для перехвата на промежуточных узлах. Применяется: удалённый доступ сотрудников к корпоративной сети, обход географических ограничений, защита трафика в публичных Wi-Fi.
Как работает
VPN-клиент устанавливает соединение с VPN-сервером, проходя аутентификацию. После аутентификации устанавливается зашифрованный туннель. Весь трафик клиента шифруется и направляется через сервер — для веб-сайтов клиент «виден» с IP VPN-сервера, а не своего реального IP.
Протоколы VPN:
- OpenVPN — open-source, TLS/SSL-шифрование, порты TCP/UDP. Надёжен, широко поддерживается.
- WireGuard — современный минималистичный протокол (2018), встроен в ядро Linux с версии 5.6. Быстрее OpenVPN в 3–5 раз, меньше кода (~4000 строк vs ~100000 у OpenVPN).
- IPsec/IKEv2 — корпоративный стандарт, встроен в iOS и macOS для нативного VPN.
- SoftEther — многопротокольный VPN-сервер.
История
PPTP (Point-to-Point Tunneling Protocol) — первый широко используемый VPN-протокол, разработанный Microsoft в 1996 году. L2TP/IPsec пришёл в 1999 году. OpenVPN выпущен Джеймсом Йонаном (James Yonan) в 2002 году. WireGuard разработан Джейсоном Донфильдом (Jason Donenfeld) и представлен в 2018 году. В 2020 году WireGuard включён в ядро Linux 5.6.
WireGuard: быстрый старт
WireGuard — предпочтительный протокол для VPN-сервера на VPS в 2024 году. Преимущества: работает в ядре Linux (модуль wireguard), скорость 1-3 Гбит/с на современных CPU, конфигурация в десятки строк против сотен у OpenVPN.
# Генерация ключей:
wg genkey | tee server_private.key | wg pubkey > server_public.key
# /etc/wireguard/wg0.conf:
[Interface]
PrivateKey = <server_private_key>
Address = 10.0.0.1/24
ListenPort = 51820
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
[Peer]
PublicKey = <client_public_key>
AllowedIPs = 10.0.0.2/32
Запуск: wg-quick up wg0 и systemctl enable wg-quick@wg0.
На что обращать внимание
VPN-сервер можно развернуть на собственном VPS с помощью WireGuard (apt install wireguard) или OpenVPN. Готовые решения: Algo VPN, Outline (Shadowsocks-based). Коммерческие VPN-провайдеры (NordVPN, ExpressVPN) подходят для личного использования, но трафик проходит через их серверы — требуется доверие провайдеру. В России VPN-сервисы подпадают под регулирование Роскомнадзора; для бизнеса предпочтительно собственное решение на VPS.
VPN-сервер на VPS
Развернуть VPN-сервер на VPS — популярный сценарий. OpenVPN — классический вариант, сложная настройка. WireGuard — современный, высокопроизводительный (в ядре Linux с версии 5.6), простая конфигурация. Установка WireGuard: apt install wireguard. Скрипты автоустановки: road-warrior-installer (GitHub). SoftEther — мультипротокольный, поддерживает L2TP/IPsec, OpenVPN, SSTP. VPN для команды разработчиков: Tailscale (mesh VPN поверх WireGuard) или ZeroTier. Fail2ban для VPN-сервера: защита от брутфорса аутентификации. Firewall: разрешить только UDP порт WireGuard (51820) через firewalld.