Всем привет. Сегодня хочу разобрать тему самостоятельного хостинга VPN — почему это в ряде сценариев лучше коммерческого провайдера, как это делается технически и где у этого подхода реальные ограничения.


Почему свой VPN а не коммерческий


Коммерческий VPN решает конкретную задачу — переносит доверие с провайдера интернета на VPN-провайдера. Это полезно, но у этого подхода есть фундаментальное ограничение: вы всё равно доверяете третьей стороне. Провайдер может логировать трафик несмотря на заявления о no-log политике, может получить юридический запрос, может быть скомпрометирован.


Свой VPN на VPS решает другую задачу — вы контролируете сервер полностью. Нет третьей стороны которой нужно доверять на уровне логирования. Вы сами решаете что писать в логи и что нет.


Важная честная оговорка: свой VPN не даёт анонимности — VPS арендован на ваше имя или на карту привязанную к вам, и IP сервера уникален для вас. Это инструмент для шифрования трафика и обхода блокировок, а не для анонимности. Для анонимности — Tor.


Выбор протокола


WireGuard — современный выбор. Кодовая база в десятки раз меньше чем у OpenVPN (около 4000 строк против 400 000), что означает меньшую поверхность атаки и проще аудит. Значительно быстрее по производительности, встроен в ядро Linux начиная с версии 5.6. Единственный минус — UDP-only, что теоретически легче детектировать и заблокировать через DPI.


OpenVPN — старый проверенный вариант. Может работать поверх TCP на порту 443, что делает трафик практически неотличимым от обычного HTTPS — это важно в странах с активной блокировкой VPN. Медленнее WireGuard, сложнее в настройке.


Выбор VPS и юрисдикции


Юрисдикция важна потому что определяет под какие законы попадает сервер при юридическом запросе. Популярные варианты с точки зрения приватности — Швейцария, Исландия, Нидерланды, Панама. Провайдеры: Mullvad VPS, 1984 Hosting (Исландия), FlokiNET.


Оплата — идеально Monero или Bitcoin через обменник без KYC чтобы не связывать личность с сервером. Часть провайдеров принимает крипту напрямую.


Минимальные характеристики для личного VPN: 1 CPU, 512 МБ RAM, 10 ГБ диска — этого более чем достаточно.


Установка WireGuard — максимально быстрый путь


Самый простой способ развернуть WireGuard на чистом сервере Ubuntu/Debian — скрипт от Nyr который автоматизирует всю настройку:

curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
./wireguard-install.sh


Скрипт задаст несколько вопросов — IP сервера, порт, DNS — и сгенерирует конфигурационный файл и QR-код для подключения клиента. Весь процесс занимает 5-10 минут.


Для ручной настройки без скрипта последовательность такая:


Установка пакета:

apt update && apt install wireguard -y


Генерация ключей сервера:

wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key


Создание конфигурации сервера в /etc/wireguard/wg0.conf:


PrivateKey = <приватный ключ сервера>
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


PublicKey = <публичный ключ клиента>
AllowedIPs = 10.0.0.2/32


Включение форвардинга пакетов:

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
sysctl -p


Запуск и автозапуск:

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


Установка OpenVPN через скрипт


Для OpenVPN аналогично есть автоматизированный скрипт:

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh


Генерирует .ovpn файл для клиента. Для маскировки под HTTPS — выбрать порт 443 и протокол TCP при настройке.


Усиление безопасности сервера


После базовой установки обязательно несколько шагов:


Отключить вход по паролю через SSH — только ключи:

sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
systemctl restart ssh


Установить fail2ban против брутфорса:

apt install fail2ban -y
systemctl enable fail2ban


Настроить файрвол — разрешить только нужные порты:

ufw allow 22/tcp
ufw allow 51820/udp
ufw enable


Автоматические обновления безопасности:

apt install unattended-upgrades -y
dpkg-reconfigure unattended-upgrades


Минималистичная политика логов


По умолчанию система пишет логи. Для минимизации следов — отключить или ограничить системные логи:

# Ограничить размер и время хранения journald логов
sed -i 's/#SystemMaxUse=/SystemMaxUse=50M/' /etc/systemd/journald.conf
sed -i 's/#MaxRetentionSec=/MaxRetentionSec=1week/' /etc/systemd/journald.conf
systemctl restart systemd-journald


В самом WireGuard по умолчанию нет логирования соединений — это одно из его архитектурных преимуществ.


Где свой VPN проигрывает коммерческому


Один IP уникален для вас — коммерческий VPN даёт IP который делят тысячи пользователей, что само по себе даёт некоторую защиту через размытие в толпе. На своём VPS весь трафик с этого IP однозначно ваш.


Обслуживание — обновления, мониторинг, устранение неполадок лежат на вас.


Нет защиты от компрометации на уровне дата-центра — если дата-центр скомпрометирован или получил юридический запрос, ваш сервер в зоне риска.


Итоговый вывод


Свой VPN на VPS — правильный инструмент для шифрования трафика от провайдера и обхода блокировок с полным контролем над инфраструктурой. Неправильный инструмент для анонимности — для этого Tor. Комбинация своего VPN плюс Tor поверх него даёт и шифрование и анонимность, но это отдельная тема настройки.


Интересно услышать у кого свой VPS стоит на постоянной основе — какую юрисдикцию выбрали и почему, и был ли реальный опыт с запросами к провайдеру.