linux сделать собственный впн
linux сделать собственный впн
Свой VPN на Linux: безопасно, быстро и без обмана
linux сделать собственный впн — задача, с которой справится даже новичок, если понимает риски и знает, как не попасть в ловушку «бесплатной» безопасности. Большинство гайдов молчат о том, что ваш самописный сервер может стать точкой сбора данных, если настроить его неправильно. Мы разберём всё: от выбора шифрования до защиты от DPI и утечек WebRTC, с учётом реалий российского интернета.
Когда свой VPN — не роскошь, а необходимость
- Журналист в командировке подключается к Wi-Fi в аэропорту Домодедово и хочет защититься от перехвата трафика.
- Пользователь торрентов из Казани скачивает легальный open-source софт, но боится, что провайдер «Ростелеком» отправит уведомление о нарушении.
- IT-специалист из Екатеринбурга работает из кофейни и передаёт корпоративные данные через зашифрованный туннель.
- Обычный пользователь из Новосибирска хочет смотреть YouTube без ограничений, когда местный провайдер временно блокирует часть контента.
- Фрилансер из Минска использует публичный Wi-Fi и боится утечки cookies через WebRTC.
Эти сценарии объединяет одно: доверие к чужому сервису — это риск. Коммерческие VPN могут хранить логи, продавать трафик или выполнять требования суда. Свой сервер — ваша территория. Но только если вы знаете, как её охранять.
Выбор протокола: цифры вместо маркетинга
| Протокол | Шифрование | Скорость (на 100 Мбит/с) | Поддержка NAT | Устойчивость к DPI | Kill Switch |
|---|---|---|---|---|---|
| WireGuard | ChaCha20 + Poly1305 | 97 Мбит/с | Да | Высокая | Через iptables |
| OpenVPN (UDP) | AES-256-GCM | 82 Мбит/с | Да | Средняя | Встроен |
| OpenVPN (TCP) | AES-256-CBC | 65 Мбит/с | Да | Низкая | Встроен |
| IPsec/IKEv2 | AES-256 + SHA2-384 | 88 Мбит/с | Частично | Средняя | Зависит от ОС |
| Shadowsocks | AES-256-CFB / ChaCha20 | 90 Мбит/с | Да | Очень высокая | Нет |
WireGuard — современный выбор. Его ядро всего 4 000 строк кода против 100 000+ у OpenVPN. Это значит меньше уязвимостей и проще аудит. ChaCha20 работает быстрее AES на процессорах без AES-NI (например, на многих VPS). А Poly1305 обеспечивает аутентификацию без дополнительных накладных расходов.
OpenVPN по-прежнему популярен, но его TCP-режим страдает от «туннельного эффекта»: потеря одного пакета замедляет весь поток. UDP решает это, но легко детектируется DPI. Если ваш провайдер — «МТС» или «Билайн», будьте готовы к тому, что порт 1194 будет фильтроваться.
Shadowsocks не является классическим VPN, но отлично маскирует трафик под обычный HTTPS. Это важно в условиях усиленной цензуры. Однако он не предоставляет встроенного kill switch и требует дополнительной настройки фаервола.
Чего вам НЕ говорят в других гайдах
- Бесплатные VPS (типа Oracle Free Tier) часто блокируют исходящие подключения на популярные порты — ваш VPN просто не запустится.
- Даже если вы «не сохраняете логи», ядро Linux по умолчанию может писать conntrack-записи, которые хранят информацию о соединениях до перезагрузки.
- Kill switch на базе systemd-networkd может не сработать при аварийном отключении питания — проверяйте поведение после hard reset.
- WebRTC в Firefox и Chrome игнорирует системные настройки прокси и может раскрыть ваш реальный IP, даже если трафик идёт через VPN.
- Провайдеры в РФ могут применять «глубокую инспекцию пакетов» (DPI) и блокировать трафик по сигнатурам — простой OpenVPN на 1194 порту легко детектируется.
Многие гайды советуют «просто установить Pi-hole + WireGuard» и забыть о проблемах. На деле такой сервер без правильных правил iptables превращается в шлюз для всех желающих. Особенно если вы используете динамический IP и не настроили автоматическое обновление конфигурации.
Ещё один миф: «если я не качаю пиратку, мне ничего не грозит». Но даже легальный торрент-трафик может вызвать реакцию провайдера. А если вы случайно подключитесь к сети без kill switch — ваш IP уйдёт в трекеры. И это уже след.
Техническая реализация: от аренды до защиты
Шаг 1. Выбор хостинга.
Избегайте юрисдикций 14 Eyes (США, Великобритания, Канада и др.). Лучше взять VPS в Германии, Нидерландах или Финляндии. Стоимость — от 300 ₽/мес. Проверяйте, разрешены ли P2P-соединения.
Шаг 2. Установка WireGuard.
На Ubuntu 22.04 достаточно:
sudo apt update && sudo apt install wireguard
Генерация ключей:
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
Шаг 3. Настройка сервера.
Файл /etc/wireguard/wg0.conf:
[Interface]
Address = 10.200.200.1/24
ListenPort = 51820
PrivateKey = <ваш_приватный_ключ>
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
Шаг 4. Kill switch через iptables.
Добавьте правила до запуска туннеля:
iptables -P OUTPUT DROP
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o wg0 -j ACCEPT
iptables -A OUTPUT -o eth0 -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Это блокирует весь исходящий трафик, кроме туннеля и ответов на уже установленные соединения.
Шаг 5. Проверка утечек.
После подключения зайдите на ipleak.net и browserleaks.com/webrtc. Убедитесь, что:
- Отображается IP вашего сервера.
- Нет утечки DNS (все запросы идут через сервер).
- WebRTC не показывает ваш реальный IP.
Если WebRTC раскрывает IP — отключите его в браузере или используйте расширение типа uBlock Origin с соответствующими фильтрами.
Split tunneling: не всё подряд в туннель
Зачем гнать трафик к «Яндексу» или «ВКонтакте» через Германию, если они доступны напрямую? Split tunneling экономит трафик и ускоряет работу.
В WireGuard это делается через AllowedIPs в клиентской конфигурации:
[Peer]
PublicKey = <публичный_ключ_сервера>
Endpoint = your.vps.ip:51820
AllowedIPs = 0.0.0.0/1, 128.0.0.0/1, ::/0
Это направляет весь трафик через VPN. Чтобы исключить российские ресурсы, создайте список их CIDR-блоков и добавьте исключения через маршрутизацию на стороне клиента. Например, в NetworkManager можно указать «использовать этот шлюз только для этих сетей».
Вопросы и ответы
VPN замедляет интернет на сколько реально?
Зависит от протокола и расстояния до сервера. WireGuard добавляет 3–8 мс пинга и теряет не более 5% скорости. OpenVPN — до 20%. Если скорость падает больше — проблема в конфигурации или провайдере.
Меня найдёт спецслужба при использовании VPN?
Если вы используете коммерческий VPN с логами — да, по запросу суда. Если свой сервер без логов и правильно настроенный фаервол — только при физическом доступе к устройству или эксплуатации уязвимостей.
WireGuard или OpenVPN — что безопаснее?
Оба безопасны при правильной настройке. WireGuard проще, быстрее и имеет меньше кода (меньше багов). OpenVPN старше, лучше протестирован, но сложнее в настройке и медленнее. Для большинства пользователей WireGuard — лучший выбор.
Нужен ли мне kill switch на Linux?
Обязательно. Без него при обрыве туннеля весь трафик пойдёт в открытом виде. На Linux его реализуют через iptables или nftables — правила блокируют весь трафик, кроме VPN.
Можно ли использовать свой VPN для торрентов?
Технически — да. Но юридически — зависит от страны хостинга сервера и контента. Если сервер в РФ, торренты с копирайтом под запретом. Лучше выбирать юрисдикцию вне 14 Eyes и отключать логирование полностью.
Что делать, если мой провайдер блокирует порты?
Используйте WireGuard на 443 порту (HTTPS) или Shadowsocks с маскировкой под обычный трафик. Это обходит DPI провайдеров типа «МТС» или «Билайн».
Вывод
linux сделать собственный впн — это не просто способ сэкономить на подписке, а шаг к контролю над своими данными. Но контроль требует знаний: неправильно настроенный сервер опаснее открытого интернета. Выбирайте WireGuard, отключайте логирование, настраивайте kill switch через iptables и регулярно проверяйте утечки на browserleaks.com. Помните: в условиях российского законодательства важно не только техническое решение, но и юрисдикция сервера. Если вы готовы потратить вечер — вы получите инструмент, который не продаст ваши данные и не подведёт в нужный момент.
Good reminder about cashout timing in crash games. The wording is simple enough for beginners. Worth bookmarking.