Всем привет. Сегодня хочу разобрать тему самостоятельного хостинга 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:
[Interface]
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
[Peer]
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 стоит на постоянной основе — какую юрисдикцию выбрали и почему, и был ли реальный опыт с запросами к провайдеру.
Почему свой 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:
[Interface]
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
[Peer]
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 стоит на постоянной основе — какую юрисдикцию выбрали и почему, и был ли реальный опыт с запросами к провайдеру.