Чем заменить VPN
Что случилось?
Сервис GlobalCheck cообщил, что в это воскресенье (05.06.2022 года) пользователи стали жаловаться на проблемы в некоторых регионах страны с доступностью к корпоративным VPN, работающим по протоколам IPsec и IKEv2.
Проблемы со связью через шифрованные туннели наблюдались в регионах Западной Сибири и на юге России, включая сети в Краснодаре и Ростове-на-Дону. Причем на некоторых операторах, включая "Ростелеком", в регионах на ранее рабочих IPsec VPN туннелях перестали проходить данные между сервером и клиентами внутри РФ. Аналогичные проблемы наблюдаются с серверами на L2TP и при работе VPN через протокол IKEv2 в разных областях страны.
Через некоторое время по большей части проблема прекратилась, туннели стали работать штатно, но не во всех регионах. Операторы связи, провайдеры и Роскомнадзор ранее не предупреждали о возможных ограничениях в работе VPN по протоколам L2TP и IPSec в эти выходные. Вероятно, это были какие-то тестированные проверки механизма блокировки различных VPN-сервисов и механизмов VPN, но сейчас они отключены или продолжаются, в зависимости от места выбранных тестов.
Это говорит о том, что наши "регулирующие органы" вполне готовы решить проблему доступности гражданам VPN сервисов.
Как решить проблему?
Проблему доступности информации в сети решить можно, просто нужно вспомнить о доступной и интересной технологии: Shadowsocks. Если коротко - это прокси-сервер с шифрованием трафика и авторизацией по паролю. Проект с открытым исходным кодом, можно посмотреть страничку на Github. Shadowsocks пригодится:
- для защиты ваших данных в ненадёжных сетях (при подключении к публичным точкам Wi-Fi);
- для реализации права на свободу информации, если по каким-либо причинам интересующий сайт не открывается;
- для защиты от перехвата трафика и внедрения на страницы сайтов рекламы;
- для защиты от несанкционированных подписок на платные услуги, когда пользуетесь мобильным интернетом.
Единственный выход - купить (арендовать) собственный сервер и настроить шифрование трафика через него. Причем для настройки серверной части не понадобятся супер силы, достаточно VPS начального уровня с лишь 512 Мб ОЗУ, одним ядром процессора и минимум дискового пространства.
Предлагаю воспользоваться shadowsocks-libev, это легкий защищенный прокси-сервер SOCKS5, который написан на чистом Cи и разработан как облегченная реализация протокола shadowsocks, чтобы максимально снизить использование ресурсов.
Для работы мобильных устройств будем использовать Outline - это проект дочерней компании jigsaw входящий в Google, компания специализируется на создании инструментов для обхода блокировок или повышения приватности, Outline - один из их проектов.
Что нужно для Shadowsocks
- Нужен собственный VPS, Virtual Private, или Dedicated Server (VPS или VDS) – это два названия одной и той же услуги, представляющей собой сдачу в аренду физически удаленного сервера. Лучше c Ubuntu, так проще. Сойдёт любой дешёвый виртуальный сервер, подобрать под свои нужды лучше на этом сервисе.
- Потребуется умение заходить в терминал по SSH.
- Нужно поставить программы-клиенты на ПК и телефоны, в качестве клиентов для мобильных устройств будем использовать Outline.
Установка и настройка серверной части
Во всех популярных дистрибутивах Linux, которые установлены на виртуальных серверах, shadowsocks-libev есть в основных репозитория, устанавливается одной командой (пример для debian/ubuntu).
apt update apt install shadowsocks-libev
nano /etc/shadowsocks-libev/config.json
- Вставляем в файл следующий текст, заменив IP-адрес сервера на ваш, и придумав новый пароль в разделе `password`:
{ "server": "NNN.NNN.NNN.NNN", "server_port": "8388", "password": "your_password", "timeout": 600, "method": "aes-256-gcm", "fast_open": true }
systemctl restart shadowsocks-libev
systemctl enable shadowsocks-libev
ufw allow 8388/tcp ufw allow 8388/udp ufw reload
- Тюнинг настроек ядра сервера для максимальной производительности (разработчики рекомендуют следующие настройки):
- The priciples of tuning parameters for shadowsocks are:
* Reuse ports and conections as soon as possible.
* Enlarge the queues and buffers as large as possible.
* Choose the TCP congestion algorithm for large latency and high throughput.
Here is an example /etc/sysctl.conf of our production servers:
nano /etc/sysctl.conf
И вносим в конец файла следующий текст:
fs.file-max = 51200 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.core.netdev_max_backlog = 250000 net.core.somaxconn = 4096 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_mem = 25600 51200 102400 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_congestion_control = hybla
Настраиваем ПК Windows:
- скачайте Shadowsocks for Windows
- Запустите Shadowsocks.
- Нажмите правой кнопкой на значок Shadowsocks в трее рядом с часами, перейдите в `Servers > Edit server`
- Введите параметры:
* IP-адрес вашего сервера
* Порт 8388
* Метод aes-256-gcm
* Ваш пароль - Сохраните настройки.
- Снова нажмите на Shadowsocks правой кнопкой, выберите включение прокси для всей системы.
- Для удобства можно включить автозагрузку тут же в настройках.
Настройка мобильных устройств:
Тут как раз максимально просто: скачайте бесплатное приложение Outline для своего мобильного устройства, на официальном сайте есть ссылки для AppStore и Google Play. Для добавления в Outline необходимо сделать специфичную ссылку на свой сервер. Наберите в любом текстовом редакторе: method:password@hostname:port, именно так, без пробелов, это:
Скопируйте method:password@hostname:port и идите на сайт Base64, куда вставьте текст в окно конвертера и нажмите Encode text to Base64, получите текст примерно такого вида: `bWV0aG9kOnBhc3N3b3JkQGhvc3RuYW1lOnBvcnQ=`. Добавьте впереди `ss://`, получив ссылку вида:
ss://bWV0aG9kOnBhc3N3b3JkQGhvc3RuYW1lOnBvcnQ=
Эту ссылку отправьте на своё мобильное устройство (через Телеграмм, например), запустите программу Outline, скопируйте ссылку, Outline предложит вам добавить сервер. Согласитесь, с добавлением сервера и с созданием профиля VPN.