Вроде данная тема довольно сильно заезжена, в интернете 1001 инструкция по настройке своего виртуально сервера за 5$, но я хотел рассказать немного о другом. А именно – об аренде выделенного «сервера» в России.
Вопросы и ответы
q: Зачем?
a: Все просто, если не планируем взламывать кремль пентагон, нужна большая скорость и маленький ping, то этот вариант будет идеальным, особенно если требуется пользоваться видеосервисами.
q: Почему слово «сервер» в кавычках и почему именно желание приобрести выделенный?
a: Это ширина канала, он ваш и только ваш, как и загрузка ресурсов данного сервера.
Смысла арендовать настоящий сервер нет, но есть датацентры которые предлагают в аренду «малинку», она нам и нужна. Как собственно и нет смысла заморачиваться с бекапами.
q: Что из этого получим?
a: Ping 4–8, скорость: при безлимитном тарифе ~100Мбит (при гигабитном канале малинка выдаст около 600–700Мбит, зависит от типа VPN соединения и нагрузки на процессор).
РКН
Хочу сказать сразу, некоторые датацентры находятся под ограничениями РКН, а некоторые – нет, писать какие не буду, ибо это реклама.
q: Цена???
a: Все это выйдет 800р в месяц, дорого? Но вы можете подключить друга.
q: Что будет работать?
a: Все, кроме сервисов, которые считают российский IP «неугодным», но не забываем что будет работать Tor (без мостов).
Выбор протокола
Протоколы VPN: для смартфона — однозначно WireGuard ибо он "тихий". Не держит открытый туннель, потому не расходует батарею/траффик, не расстраивается от постоянной смены ip/типа подключения. Для ПК (роутера): SSTP, IPsec, OpenVPN, еще можно добавить ZeroTier.
Настройка
Понадобится SSH клиент, самый простой вариант для Windows – «PuTTY», качаем весь архив с генератором ключей.
0. (необязательный шаг) Создаём пару ключей для сервера (puttygen.ene), открытый ключ добавляем в консоль управления сервером, закрытый прописываем себе в PuTTY.
1. Выбираем ОС на сервере Pi OS buster aarch64 и добавляем открытый ключ (шаг 0).
2. Ждем 10 минут, когда ОС будет установлена, подключаемся к своему серверу по SSH (putty.exe) используем пароль (или закрытый ключ, если выполнили шаг 0). Логин «pi»
3. (да простят меня истинные линуксоиды) в консоли набираем: $sudo su
#timedatectl set–ntp 1
#apt –y update
#apt –y upgrade
#git clone https://github.com/pivpn/pivpn
#bash pivpn/auto_install/install.sh
Выбираем WireGuard, настройки можно оставить «по умолчанию», после отработки мастера настройки, не перезагружаемся.
Устанавливаем SoftEther VPN, его настройка производится из Windows или web-интерфейса (выходит за рамки данной статьи)
#apt install –y cmake gcc g++ libncurses5–dev libreadline–dev libssl–dev make zlib1g–dev git
#git clone https://github.com/SoftEtherVPN/SoftEtherVPN_Stable/
#cd SoftEtherVPN_Stable
#./configure
#make –j4
#make –j4 install
Создаём файл (выйти и сохранить ctrl+x)
#nano /etc/init.d/softether
#!/bin/bash
#SoftEther
sleep 10
# REMOVE # before sudo to turn ON
# description: SoftEther VPN Server
sudo /usr/bin/vpnserver start
# description: SoftEther VPN Bridge
# sudo /usr/bin/vpnbridge start
# description: SoftEther VPN Client
# sudo /usr/bin/vpnclient start
exit 0
#chmod +x /etc/init.d/softether
#nano /etc/rc.local
добавляем выше линии «exit»
/etc/init.d/softether
#/usr/bin/vpnserver start
После запуска SoftEther обязательно сразу задайте пароль администратора (через приложение для ПК — SoftEther VPN server manager for Windows). Как настроить SoftEther
Настройка безопасности ТОЛЬКО ЕСЛИ НЕ ПРОПУСТИЛИ ШАГ 0
#nano /etc/ssh/sshd_config
добавляем строку
PasswordAuthentication no
Перезагружаем сервер
#reboot
ZeroTier
*как работает данная связка мне не понравилось, расход аккумулятора больше чем WireGuard, скорость работы - ниже.
#curl -s https://install.zerotier.com | sudo bash
Для того чтобы можно было использовать "малинку" как шлюз для выхода в интернет, нужно добавить правила iptables. Где eth0 - сетевой интерфейс сервера.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ztrtaqxslf -o eth0 -j ACCEPT
Настройка на сайте my.zerotier.com
Добавление пользователей WireGuard
$sudo pivpn add
показать qr код
$sudo pivpn –qr
Для WireGuard рекомендую использовать DNS «датацентра», 8.8.8.8 — тогда у вас будет работать "суверенный" и "не очень" интернет.
Комментарии (85)
aborouhin
09.04.2022 16:04+9Зачем арендовать физическую малинку, если виртуалка за те же деньги будет шустрее?
На наличие или отсутствие блокировок по спискам РКН для трафика из дата-центров полагаться нельзя. Оно может поменяться на лету без предупреждения. У меня виртуалки у reg.ru, длительное время ничего не блокировалось, потом в один прекрасный день стало (судя по traceroute, поменялся аплинк).
P.S. У самого VPN-сервер тоже в России как раз из-за пинга, скорости и доступа к российским ресурсам, не любящим зарубежные IP. Но адреса из списков РКН маршрутизируются через другой сервер, уже зарубежный.
edo1h
10.04.2022 15:44судя по traceroute, поменялся аплинк
анлинк это вообще не какая-то константа, обычно аплинков несколько, и балансировка трафика между ними меняется не самым предсказуемым образом.
поэтому полагаться на «у этого российского хостера заблокированные сайты открываются» не стоит точно.q: Что будет работать?
a: Все, кроме сервисов, которые считают российский IP «неугодным»,вот-вот, сегодня доступ к сайтам, блокирующим доступ с российских адресов, не менее актуален, чем борьба с РКН.
i7071270 Автор
10.04.2022 18:16Для этого есть Tor без мостов, либо ещё сервак заводить, причем желательно в США.
nidalee
11.04.2022 11:14Почему бы не ограничиться просто одним сервером в США? Впрочем, прокси в США для жителя РФ выбор не лучший — пинг достанет. Лучше Нидерланды, например.
i7071270 Автор
11.04.2022 12:33Почему бы не ограничиться просто одним сервером в США
Я уже писал, не всегда удобно иметь IP адрес чужой страны. Да про скорость и пинг - лучше не говорить тогда. Сейчас ещё добавить проблемы с оплатой и шанс блокировки (который намного выше, чем шанс что датацентр в РФ начнёт выполнят предписания РКН).
nidalee
11.04.2022 13:32Я уже писал, не всегда удобно иметь IP адрес чужой страны.
Так можно ведь все настроить, чтобы IP чужой страны был только там, где нужно. С VPN, конечно, посложнее будет, но с прокси вообще проще-простого.Сейчас ещё добавить проблемы с оплатой и шанс блокировки
Да, не без этого. Лучше выбирать компании, которые не проверяют регистрационные данные и имеют альтернативные способы оплаты в ассортименте.i7071270 Автор
11.04.2022 14:21Лучше выбирать компании, которые не проверяют регистрационные данные и имеют альтернативные способы оплаты в ассортименте
Я думаю, в первую очередь надо выбирать компании которые не сливают траффик кому попало :)
Bonio
09.04.2022 16:22Какой vpn протокол самый эффективный с точки зрения энергопотребления для мобильных девайсов? Что насчет outline vpn?
aborouhin
09.04.2022 16:41Про "самый эффективный" (это ж надо все попробовать) и про Outline ничего не скажу, но на Android после перехода с Wireguard на OpenVPN Connect (Wireguard хороший, быстрый, но для централизованного управления катастрофически неудобен, а Tailscale, который эту боль решает, с некоторых пор стал для российских реалий неудачным выбором) значимого изменения не заметил. Как кушал VPN пару процентов батарейки в сутки, так и кушает.
Aelliari
09.04.2022 17:14Для tailscale есть открытая реализация сервера, можно у себя развернуть. правда с iOS её не подружить
aborouhin
09.04.2022 17:27Про Headscale знаю. Но там и iOS не завести (а надо), и клиент под Android надо вручную пересобирать (и как-то удалённым пользователям-гуманитариям объяснять, как его потом ставить).
Плюс, кроме рисков, связанных с оплатой самого Tailscale (неприемлемых для VPN, ибо если он отвалится - это вообще апокалипсис), там ещё и без вариантов SSO, а с ними сейчас уже свои риски. По сути, более или менее рассчитывать можно только на собственный SAML или OIDC провайдер, но его ещё развернуть надо, да и поддержка кастомных провайдеров у Tailscale только в enterprise подписке, которая неведомо сколько стóит (а есть ли оно в Headscale вообще - честно говоря, не разбирался).
В общем, в превеликой печали похоронил я все свои труды по запуску Tailscale и запустил OpenVPN с авторизацией через OpenLDAP. И, надо сказать, неплохо работает.
Aelliari
09.04.2022 18:13SSO вроде как через OpenID есть, но у меня самого все руки не дойдут потрогать. А вот отсутствие iOS если он нужен - сразу делает неподходящим
aborouhin
09.04.2022 18:30+1Как оказалось, чем ниже уровень зарплаты специалиста (у меня юристы в основном) - тем больше шансов, что у него последний айфон, а не китайский андроид :) А поскольку я параноик и рабочая почта только через VPN, то на смартфоне он у каждого должен быть 100%. Так что iOS без вариантов нужен.
ValdikSS
09.04.2022 17:13+13Самый эффективный с точки зрения нагрузки на процессор — тот, что в ядре. Для мобильных устройств это IPsec. Однако он инкапсулируется в UDP, а не в TCP, а у мобильных провайдеров таймауты UDP-сессий, как правило, низкие, что вынуждает отправлять пакеты keep-alive каждые несколько десятков секунд, против нескольких минут в TCP, что приводит в учащённому пробуждению радиомодуля и увеличенному потреблению батареи.
Правильно настроенный OpenVPN через TCP не расходует сколь-либо значимое количество батареи.
i7071270 Автор
09.04.2022 17:18Я согласен что OpenVPN более гибкий, но когда делаешь для себя и важна скорость и экономия ресурсов - не лучший выбор.
Например простая маршрутизация в wireguard - исключение траффика корпоративной сети из VPN 10.x.x.x
без 10.0.0.0/8
255.0.0.0/8, 254.0.0.0/8, 253.0.0.0/8, 252.0.0.0/8, 251.0.0.0/8, 250.0.0.0/8, 249.0.0.0/8, 248.0.0.0/8, 247.0.0.0/8, 246.0.0.0/8, 245.0.0.0/8, 244.0.0.0/8, 243.0.0.0/8, 242.0.0.0/8, 241.0.0.0/8, 240.0.0.0/8, 239.0.0.0/8, 238.0.0.0/8, 237.0.0.0/8, 236.0.0.0/8, 235.0.0.0/8, 234.0.0.0/8, 233.0.0.0/8, 232.0.0.0/8, 231.0.0.0/8, 230.0.0.0/8, 229.0.0.0/8, 228.0.0.0/8, 227.0.0.0/8, 226.0.0.0/8, 225.0.0.0/8, 224.0.0.0/8, 223.0.0.0/8, 222.0.0.0/8, 221.0.0.0/8, 220.0.0.0/8, 219.0.0.0/8, 218.0.0.0/8, 217.0.0.0/8, 216.0.0.0/8, 215.0.0.0/8, 214.0.0.0/8, 213.0.0.0/8, 212.0.0.0/8, 211.0.0.0/8, 210.0.0.0/8, 209.0.0.0/8, 208.0.0.0/8, 207.0.0.0/8, 206.0.0.0/8, 205.0.0.0/8, 204.0.0.0/8, 203.0.0.0/8, 202.0.0.0/8, 201.0.0.0/8, 200.0.0.0/8, 199.0.0.0/8, 198.0.0.0/8, 197.0.0.0/8, 196.0.0.0/8, 195.0.0.0/8, 194.0.0.0/8, 193.0.0.0/8, 192.0.0.0/8, 191.0.0.0/8, 190.0.0.0/8, 189.0.0.0/8, 188.0.0.0/8, 187.0.0.0/8, 186.0.0.0/8, 185.0.0.0/8, 184.0.0.0/8, 183.0.0.0/8, 182.0.0.0/8, 181.0.0.0/8, 180.0.0.0/8, 179.0.0.0/8, 178.0.0.0/8, 177.0.0.0/8, 176.0.0.0/8, 175.0.0.0/8, 174.0.0.0/8, 173.0.0.0/8, 172.0.0.0/8, 171.0.0.0/8, 170.0.0.0/8, 169.0.0.0/8, 168.0.0.0/8, 167.0.0.0/8, 166.0.0.0/8, 165.0.0.0/8, 164.0.0.0/8, 163.0.0.0/8, 162.0.0.0/8, 161.0.0.0/8, 160.0.0.0/8, 159.0.0.0/8, 158.0.0.0/8, 157.0.0.0/8, 156.0.0.0/8, 155.0.0.0/8, 154.0.0.0/8, 153.0.0.0/8, 152.0.0.0/8, 151.0.0.0/8, 150.0.0.0/8, 149.0.0.0/8, 148.0.0.0/8, 147.0.0.0/8, 146.0.0.0/8, 145.0.0.0/8, 144.0.0.0/8, 143.0.0.0/8, 142.0.0.0/8, 141.0.0.0/8, 140.0.0.0/8, 139.0.0.0/8, 138.0.0.0/8, 137.0.0.0/8, 136.0.0.0/8, 135.0.0.0/8, 134.0.0.0/8, 133.0.0.0/8, 132.0.0.0/8, 131.0.0.0/8, 130.0.0.0/8, 129.0.0.0/8, 128.0.0.0/8, 127.0.0.0/8, 126.0.0.0/8, 125.0.0.0/8, 124.0.0.0/8, 123.0.0.0/8, 122.0.0.0/8, 121.0.0.0/8, 120.0.0.0/8, 119.0.0.0/8, 118.0.0.0/8, 117.0.0.0/8, 116.0.0.0/8, 115.0.0.0/8, 114.0.0.0/8, 113.0.0.0/8, 112.0.0.0/8, 111.0.0.0/8, 110.0.0.0/8, 109.0.0.0/8, 108.0.0.0/8, 107.0.0.0/8, 106.0.0.0/8, 105.0.0.0/8, 104.0.0.0/8, 103.0.0.0/8, 102.0.0.0/8, 101.0.0.0/8, 100.0.0.0/8, 99.0.0.0/8, 98.0.0.0/8, 97.0.0.0/8, 96.0.0.0/8, 95.0.0.0/8, 94.0.0.0/8, 93.0.0.0/8, 92.0.0.0/8, 91.0.0.0/8, 90.0.0.0/8, 89.0.0.0/8, 88.0.0.0/8, 87.0.0.0/8, 86.0.0.0/8, 85.0.0.0/8, 84.0.0.0/8, 83.0.0.0/8, 82.0.0.0/8, 81.0.0.0/8, 80.0.0.0/8, 79.0.0.0/8, 78.0.0.0/8, 77.0.0.0/8, 76.0.0.0/8, 75.0.0.0/8, 74.0.0.0/8, 73.0.0.0/8, 72.0.0.0/8, 71.0.0.0/8, 70.0.0.0/8, 69.0.0.0/8, 68.0.0.0/8, 67.0.0.0/8, 66.0.0.0/8, 65.0.0.0/8, 64.0.0.0/8, 63.0.0.0/8, 62.0.0.0/8, 61.0.0.0/8, 60.0.0.0/8, 59.0.0.0/8, 58.0.0.0/8, 57.0.0.0/8, 56.0.0.0/8, 55.0.0.0/8, 54.0.0.0/8, 53.0.0.0/8, 52.0.0.0/8, 51.0.0.0/8, 50.0.0.0/8, 49.0.0.0/8, 48.0.0.0/8, 47.0.0.0/8, 46.0.0.0/8, 45.0.0.0/8, 44.0.0.0/8, 43.0.0.0/8, 42.0.0.0/8, 41.0.0.0/8, 40.0.0.0/8, 39.0.0.0/8, 38.0.0.0/8, 37.0.0.0/8, 36.0.0.0/8, 35.0.0.0/8, 34.0.0.0/8, 33.0.0.0/8, 32.0.0.0/8, 31.0.0.0/8, 30.0.0.0/8, 29.0.0.0/8, 28.0.0.0/8, 27.0.0.0/8, 26.0.0.0/8, 25.0.0.0/8, 24.0.0.0/8, 23.0.0.0/8, 22.0.0.0/8, 21.0.0.0/8, 20.0.0.0/8, 19.0.0.0/8, 18.0.0.0/8, 17.0.0.0/8, 16.0.0.0/8, 15.0.0.0/8, 14.0.0.0/8, 13.0.0.0/8, 12.0.0.0/8, 11.0.0.0/8, 9.0.0.0/8, 8.0.0.0/8, 7.0.0.0/8, 6.0.0.0/8, 5.0.0.0/8, 4.0.0.0/8, 3.0.0.0/8, 2.0.0.0/8, 1.0.0.0/8
aborouhin
09.04.2022 17:33+5Например простая маршрутизация в wireguard - исключение траффика корпоративной сети из VPN 10.x.x.x
Не вполне понял, куда и зачем Вы эту простыню вставляете, но вообще "все IPv4 адреса, кроме 10.0.0.0/8" - это гораздо короче :)
1.0.0.0/8, 2.0.0.0/7, 4.0.0.0/6, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/1
i7071270 Автор
09.04.2022 17:36Вставил как пример кривой маршрутизации (за 5 минут), спасибо за совет, ваш вариант удобнее и лучше читаемый.
shichimi
11.04.2022 11:15Или так
AllowedIPs = 0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/1
ValdikSS
09.04.2022 17:50+1Что ваш пример должен показывать? В OpenVPN это делается добавлением маршрута:
route 10.0.0.0 255.0.0.0 net_gateway
i7071270 Автор
09.04.2022 18:04Спасибо за разъяснения, значит все же wireguard является более костыльным решением на данный момент.
edo1h
10.04.2022 15:47он не костыльный, он низкоуровневый. а вот попытка любой ценой пропихнуть его его туда, где нужен более высокоуровневый инструмент, и правда может обернуться костылями )
shichimi
11.04.2022 11:28AllowedIPs = 0.0.0.0/5, 8.0.0.0/7, 11.0.0.0/8, 12.0.0.0/6, 16.0.0.0/4, 32.0.0.0/3, 64.0.0.0/2, 128.0.0.0/1
Это можно просто получить по данным онлайн калькулятора "wireguard allowed ip calculator"
Zolg
11.04.2022 12:17Например простая маршрутизация в wireguard
Это не (совсем) маршрутизация: allowed ips wireguard использует для двух с половиной целей:
1) принимать ли от данного пира трафик с таким src ip
2) какому именно пиру на этом wg интерфейсе отправлять трафик с таким dst ip.
2.5) некоторые утилиты поднятия wg линка делают за вас "магию" и добавляют allowed ips в таблицу маршрутизации ос. С внутренней логикой работы wg этот шаг не связан
Обратите внимание на выделенное. Это решение принимается уже после маршрутизации трафика на конкретный интерфейс wg.
Если у вас на wg интерфейсе пир всего один, что для клиента верно почти всегда, можете смело указывать allowed ips в 0.0.0.0/0, а маршруты в таблицу маршрутизации заносить традиционными способами. Ну и про правила входящего трафика на фаерволе не забыть
13werwolf13
11.04.2022 18:56А вот с этого места поподробнее, как запретить стандартному systemctl start wg-quick@wg0.service прописывать allowedips в маршруты
i7071270 Автор
09.04.2022 17:20OpenVPN через TCP не расходует
Пример: автоматическое переключение сотовый/wifi - например метро/офис. Wireguard происходит мгновенно, ибо не требуется туннель. SSTP думает около 1-2 сек, этого достаточно для обрыва (заикания) IP телефонии/skype.
i7071270 Автор
09.04.2022 17:34-1@ValdikSS я все присматривался к ?вашему проекту https://bitbucket.org/anticensority/antizapret-vpn-container/src/master/
Но останавливает именно OpenVPN, дело в том что он хорошо детектируется всякими корпоративными dpi. Которые, в последнее время настраивают именно на популярные стандарты. Не знаю почему, но wireguard пока эта участь обходит стороной (скорее всего он как тот "неуловимый Джо". Очень хотелось бы увидеть "антизапрет" на wireguard.
ValdikSS
09.04.2022 17:51+5Wireguard недалеко ушел от обычного IP-туннеля, вроде IPIP или GRE. Он не позволяет даже назначить клиенту IP-адрес, не говоря уже о передаче таких параметров, как маршруты и адрес DNS-сервера.
У него нет никаких преимуществ, кроме скорости шифрования и туннелирования.Поддержка Wireguard для сервиса вроде АнтиЗапрета — обуза. Гораздо более вероятно появление IPsec IKEv2 в среднесрочной перспективе — он, аналогично Wireguard, реализован в ядре и обладает высокой скоростью работы, но имеет почти такой же широкий функциональный набор, как OpenVPN.
Tarakanator
11.04.2022 10:42-1На одном VPN сервисе уже отказались от ipsec в пользу wireguard, так что думаю будущее всё-таки за wireguard.
SlimShaggy
11.04.2022 11:18Пользуюсь Антизапретом много лет, но в последнее время появились ощутимые лаги - в частности, на фейсбуке картинки грузятся с задержкой, а про видео вообще лучше промолчать. Нет ли в планах платного сервиса с гарантированной пропускной способностью? Интересует именно антизапрет, про платный "просто VPN" я в курсе. Если заблочат ютуб, думаю придется разворачивать ваш контейнер на хостинге, но я предпочел бы минимизировать геморрой и за разумную плату пользоваться готовым сервисом.
avelor
09.04.2022 18:24+1Ваергард детектируется лучше. Имхо ваергард неплохдля site2site (в плане простоты настройки), а для клиентского - ну такое. Openvpn с stunnel лучшее проходит dpi (кажется, есть в пакете стрейзанд). Ну или шедоусокс, который ажно великий китайский ваервол проходит.
Из относительной экзотики понравился ocserv - это реверс цисковского эниконнекта ссл-ного, по сравнению с ovpn киллерфича - отсутствие необходимости в клиентском конфиге. Совместим с клиентами эниконнекта, которые есть под любую платформу.
rogoz
09.04.2022 19:29Самый эффективный с точки зрения нагрузки на процессор — тот, что в ядре. Для мобильных устройств это IPsec
Вроде если есть рут на андроиде, wireguard может свой ядерный модуль подсунуть, по крайней мере настройка в мобильном клиенте есть такая, не выяснял насколько успешно это работает.Tangeman
10.04.2022 00:06С Android 12 Wireguard уже есть в ядре. Гугль даже добавил его в Android 11 для ядра 4.19, так что для новых устройств не нужен даже рут.
Впрочем, с учётом скоростей которые обычно бывают на мобильных устройствах, это не играет существенной роли — в ядре он или нет, на скорости пожирания батарейки это едва ли отразится, разве что если грузить его длительное время по максимуму на высокоскоростном канале.
AlexHighTower
10.04.2022 11:09+3Правильно настроенный OpenVPN через TCP не расходует сколь-либо значимое количество батареи.
А можно попросить пример правильной настройки? (как сервера, так и клиента)
чтобы tls-crypt был, как я понял из описания его сложнее детектировать для dpi
Gutt
10.04.2022 14:47а у мобильных провайдеров таймауты UDP-сессий, как правило, низкие,
Пожалуйста, поясните. что такое "таймауты UDP-сессий"? О каких сессиях идёт речь, что меняется по достижению таймаута?
ValdikSS
10.04.2022 15:28+1Речь о таймаутах NAT-сессии для протокола UDP, по истечении которой сервер не сможет отправить пакет клиенту.
Zolg
11.04.2022 11:43С ipsec на андроиде есть нюанс: с удивлением обнаружил, что на всех имеющиеся под рукой андроид устройствах (в том числе работающих на opensource прошивках) IKE умеет максимум DH group2 (1024 бита), что в 2022 году выглядит не очень безопасным.
DaemonGloom
11.04.2022 12:12Samsung на 11 версии android предлагает такие DH: ecp384, ecp256, modp2048, modp1536. При этом 1024 он не предлагает вообще, судя по отладочному логу на Микротике. Более того, если сервером ограничить на DH modp1024 — он не подключится вообще.
Zolg
11.04.2022 12:22Самсунга среди моей выборки не было. А вот LOS18 (11 андроид) предлагает именно 1024.
Такчто нюанс, увы, есть
rostislav-zp
09.04.2022 23:33+1Я уже лет 6 переодически использовал pritunl,outline,openvpn и softetherVPN. На ios и android они никак не влияют на автономность вообще.скорее вы посадите телефон от мобильного интернета,чем увидите разницу от vpn
Tarakanator
11.04.2022 10:39Точно не знаю, но думаю что-то без шифрования. Я бы посмотрел в сторону l2tp, pptp. Ну как-то так.
Zolg
11.04.2022 11:47Применительно к телефону шифрование чуть ли не последнее, что жрет батарею. Гораздо важнее, насколько качественно телефон спит не роняя впн.
AlexHighTower
09.04.2022 16:23Вопрос про клиента sstp на ios — что посоветуете?
поставил под убунту sstpd (пинотовский), родной виндовый клиент прекрасно подключается, а вот под ios не вижу клиентов. пробовал AnyConnect — но не подключаетсяEvengard
09.04.2022 16:38AnyConnect это даже близко не SSTP. Единственное схожее у них - что они инкапсулируют свой трафик в HTTPS, но на этом сходство заканчивается. Из того что я слышал - SSTP под iOS вот этот неплохой: https://apps.apple.com/ru/app/sstp-connect/id1543667909
Точнее не подскажу (у меня нет iOS), но ограниченно контактировать с его разработчиком (domosekai) приходилось, как раз по теме SSTP, так что должен работать.
Akuma
09.04.2022 19:51+2А зачем вам именно VPN?
Чем старые добрые прокси не угодили?
В любой ОС настраивается. У меня вообще просто в браузере расширение вкл/выкл, больше и не нужно.
На мобильном вообще ничего не расходует, потому что нет никакого постоянного подключения.
Если не можете купить, можно настроить очень просто на той же vds
select26
09.04.2022 22:00-1Согласен. И работает при этом быстрее и надёжнее, т.к. работает на более высоком уровне OSI.
Почему народ убивается VPNами?
i7071270 Автор
09.04.2022 22:31+2Почему народ убивается VPNами?
Траффик легко отслеживать, не все ПО корректно работает через прокси. А поднимать локальный ВПН для прокси - будет также занят единственный юнит для ВПН (android).
edo1h
10.04.2022 15:52Трафик легко отслеживать
нет, обращаться к прокси вполне можно (нужно) по https
Zolg
11.04.2022 11:52Понятно, что теоретически это возможно, но практически под https прокси в большинстве случаев подразумевается работающий по http прокси, умеющий команду connect.
И большинство прикладного софта умеют работать только с такими
edo1h
11.04.2022 14:17браузеры при указании в proxy.pac https-прокси отлично работают.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_fileвот тут, например, написано как организовать автоматическое получение настроек на виндовых (ив некоторых случаях на линуксовых) машинах
https://wiki.gentoo.org/wiki/ProxyAutoConfigну и большинство консольных (да и не только консольных) линуксовых приложений понимает
export http_proxy=https://1.2.3.4:56789 export https_proxy=$http_proxy export HTTP_PROXY=$http_proxy export HTTPS_PROXY=$http_proxy
inferrna
11.04.2022 11:08Shadowsocks + obfs плагин и весь ваш трафик маскируется в, например, обычный http с некой ахинеей, неподдающейся анализу DPI железками. А VPN канал от домашнего компа к буржуйскому серверу сразу попадает под подозрение.
aborouhin
09.04.2022 22:54+1Ну, наверное, потому, что VPN - это не только обход блокировок, но и доступ к ресурсам внутренней сети, который отнюдь не всегда легко через прокси протянуть, и настраивать это надо для каждой конкретной софтины, что геморрой.
И даже если говорим только про обход блокировок - как приложения всех заблокированных ныне соцсетей на смартфоне научить ходить через прокси?
А скорость и надёжность нормально организованного VPN для конечного пользователя превышает скорость и надёжность канала, по которому этот пользователь выходит в интернет, т.е. точно не является узким местом.
i7071270 Автор
09.04.2022 23:00+3Можно ещё добавить, что через VPN можно соединить друзей с Plex и другими сервисами в одну сеть, которые будут доступны везде и всегда. Как, например, файлы рабочего ПК, домашнего хранилища, домашнего хранилища друга. И при этом надо иметь всего 1 белый ip на всех. Есть варианты через zerotier, но мне не понравилась скорость работы (так что как резервный вариант).
Aelliari
09.04.2022 23:12+1ZeroTier шикарная вещь, но оно про L2, а это нужно далеко не всегда. Хотя заявленное - он выполняет отлично, и даже умеет jumbo frame внутри себя, не смотря на его возможное отсутствие на более низком уровне. И скорее всего, между ZeroTier и tailscale (headscale) я скорее выберу второй, просто потому что функционал ZeroTier мне не нужен
P.S. можно ещё упомянуть, что в случае ZeroTier/Tailscale 1 белый IP для всех, но при этом соединения между машинами по максимуму возможного будут напрямую, а не через координирующий сервер
Vilgelm
09.04.2022 23:25+2РКН умеет лазить в прокси. Когда Твиттер замедляли через прокси он тоже был замедлен.
13werwolf13
11.04.2022 08:38+3потому что прокси работает для конкретного приложения и не любое приложение умеет в прокси
в случае vpn просто делаешь тоннель между роутером и виртуалкой, заворачиваешь забанненные ркн маршруты в тоннель, добавляешь маршруты до тех кто сам забанил россию и пользуешься. для всех устройств в сети сразу, не надо настраивать на каждом отдельно, не надо ставить доп по, и ходишь через тоннель только до нужных ресутсов а не до всех сразу
Akuma
11.04.2022 09:06Прокси можно настроить на уровне системы и с ним будет работать практически все.
Учитывая для каких целей тут статья - системное прокси покроет 100% приложений (браузер, да и все, скорее всего).
13werwolf13
11.04.2022 09:14опять же, на уровне системы а не всех систем в локалке
да и практически всё не равно всё
и опять же это будет заворачивание всего трафика в проксю а не только заблокированных и заблокировавших хостов
edo1h
11.04.2022 09:34и опять же это будет заворачивание всего трафика в проксю а не только заблокированных и заблокировавших хостов
необязательно, есть же proxy.pac
посмотрите как сделано у https://antizapret.prostovpn.org/
Tarakanator
11.04.2022 10:47+1В моём случае:
1)настроить VPN 1 раз на роутере, а не на всех устройствах.
2)Не тыкать постоянно вкл\выкл VPN в браузере(я не нашёл расширения, нормально работающего со списком куда ходить через VPN. Платные не пробовал)
3)как настроить в webos?
4)как настроить в VR шлеме, если он пока не соединится с серверами ничего настроить не даёт?
5)как настроить в игре, которыя про прокси не знает?
goldrobot
09.04.2022 20:27Я так и не понял зачем нужен VPN из вашей же локации.
i7071270 Автор
09.04.2022 21:03+1Я так и не понял зачем нужен VPN из вашей же локации
Для обхода блокировок РКН. У некоторых датацентров в правилах написано, что вы сами должны заниматься фильтрацией траффика согласно реестру РКН.
А делать это или нет - ваше право :)
А смысл в локальных серверах своего региона - это скорость и пинг.
aborouhin
09.04.2022 23:01+4VPN в России нужен по трём причинам:
а) Те десятки тысяч маршрутов, которые надо построить через зарубежный сервер, чтобы обойти блокировки, существенная часть пользовательских устройств (смартфоны, недорогие роутеры) просто не потянут.
б) Ходить через зарубежный сервер на ВСЕ ресурсы - чревато блокировками (последнее время многие гос. сайты огородились так, что с зарубежных IP не пускают, но и до этого какое-нибудь Авито в основном с зарубежных адресов отправляло в бан). Плюс иногда критична скорость и latency, которые в случае прогона всего трафика через Европу вырастают в разы.
в) Если вдруг дёрнут за рубильник и Чебурнет останется изолированным от слова "совсем" (не верю, что сие случится надолго, но при каких-то потрясениях таки может быть реализовано в качестве чрезвычайной меры) - по крайней мере, мы сохраняем доступ к внутренним ресурсам, которые были доступны через VPN, в отличие от случая, когда сам VPN-сервер за рубежом.
Соответственно, нужен некий промежуточный сервер, который уже маршрутизирует запрещённые адреса через заграницу, а российские - напрямую. И именно этому серверу логично выступать точкой подключения для мобильных и маломощных VPN-клиентов.
Это не та схема, которую описывает автор в посте, т.к. автор самонадеянно верит, что если какой-то российский датацентр сейчас имеет неограниченный доступ ко всем внешним ресурсам - так оно и останется. Но реально, если хочется комфортной работы и с заблокированными ресурсами, и с российскими - то это оптимальный вариант.
i7071270 Автор
09.04.2022 23:57Спасибо за развернутый ответ
т.к. автор самонадеянно верит, что если какой-то российский датацентр сейчас имеет неограниченный доступ ко всем внешним ресурсам - так оно и останется
Я не говорю что это навсегда, поэтому и не называл название провайдера. Пока работает - можно напрямую, потом вариант второй (присматриваюсь к антизапрет), на случай если Tor тоже блокировать начнут. И да, придется уже 2 VPN сервера арендовать тогда... Как говорится - хочешь интернета плати, хочешь свободного интернета - плати ещё.
Сейчас забавная ситуация, AWS (у меня также есть, и пока работает без оплаты) блокирует российские сайты у себя (или наоборот наши блокируют).
13werwolf13
11.04.2022 08:41a) зачем мучать смартфон непонятно, но недорогой салями с openwrt прожовывает 10+ тысяч маршрутов из списка РКН (не считая ещё около десятка нужных для работы) моментально и работает без просадок производительности
б) на ВСЕ ресурсы ходить и не надо, достаточно завернуть маршруты до нужных (забаненных или забанивших) узлов
в) в таком случае нужен уже не доступ до внутренних ресурсов а знакомство с человеком способным вывезти тебя и твою семью из страны
TheChief5055
11.04.2022 09:49+2Я делаю несколько иначе.
1) Белый IP дома. Недорогой хостинг в ойропе, не попадавший ранее в блокировки.
2) Роутер с OpenVPN либо WireGuard, первый обязательно с AES/NI-ускорением (модели ASUS на т.н. HND platform).
3) Туннель (у меня сейчас это wireguard) из дома на хостинг в ойропе. Выборочная маршрутизация в туннель по ручному списку требуемых доменов (ipset/dnsmasq). DNS-over-TLS на роутере.
4) OpenVPN и WireGuard серверы на роутере для клиентов.
5) Соответствующие клиенты на… мнэээ… клиентах. Внутри домашней сети тоннельный клиент уже не нужен, так что прекрасно работают всякие спотифаи на ресивере.
6) PROFIT.
Godless
11.04.2022 14:18Выборочная маршрутизация в туннель по ручному списку требуемых доменов (ipset/dnsmasq)
при загрузке список парсится? можно чуть подробнее как из списка DNS получается список маршрутов ?
TheChief5055
11.04.2022 16:02+2Раз при загрузке и периодически раз в час. В jffs лежит файлик /jffs/configs/rublack-dns.txt такого вида:
; digikey.com akamaiedge.net ; instagram.com cdninstagram.com facebook.com facebook.net fbcdn.net ;
Дальше он парсится примерно так:
#!/bin/sh DNSMASQ_CFG=/etc/dnsmasq.conf.add.shadow regexp_fqdn='(?=^.{1,254}$)(^(?>(?!\d+\.)[a-zA-Z0-9_\-]{1,63}\.?)+(?:[a-zA-Z]{2,})$)' logger "$DNSMASQ_CFG recreating..." rm -f $DNSMASQ_CFG 2>/dev/null touch $DNSMASQ_CFG 2>/dev/null echo "#" >> $DNSMASQ_CFG for fqdn in $(cat /jffs/configs/rublack-dns.txt | /opt/bin/grep -P "$regexp_fqdn") do echo "ipset=/$fqdn/rublack-dns" >> $DNSMASQ_CFG done # Create ip set if [ "$(ipset swap rublack-dns rublack-dns 2>&1 | grep 'does not exist')" != "" ]; then ipset create rublack-dns hash:ip fi cru d ipset-flush > /dev/null 2>&1 cru a ipset-flush "0 */1 * * * /jffs/scripts/ipset-flush" > /dev/null 2>&1 service restart_dnsmasq
В результате в /jffs/configs/dnsmasq.conf.add появляется такое:
ipset=/digikey.com/rublack-dns ipset=/akamaiedge.net/rublack-dns ipset=/instagram.com/rublack-dns ipset=/cdninstagram.com/rublack-dns ipset=/facebook.com/rublack-dns ipset=/facebook.net/rublack-dns ipset=/fbcdn.net/rublack-dns
И в ASUSWRT это автоматически дописывается к конфигу dnsmasq, а при реcолве любого домена с указанным корнем (т.е. *.fbcdn.net) пополняется адресами ipset rublack-dns.
Дальше совсем просто, в скрипте WireGuardManager говорим, что туннель, например, wg11 у нас policy-based и в качестве policy указываем искомый ipset. Собственно, всё. Скрипт WGM сейчас усилиями коммюнити стал умненький-благоразумненький и все колдунства с iptables/ip route проделывает сам (раньше надо было руками).Почему там .shadow? Это линк из jffs в tmpfs, чтобы не насиловать nand. Он создаётся в /jffs/scripts/init-start:
#!/bin/sh DNSMASQ_CFG=/etc/dnsmasq.conf.add.shadow DNSMASQ_LN=/jffs/configs/dnsmasq.conf.add if [ ! -f $DNSMASQ_LN ]; then { ln -sf $DNSMASQ_CFG $DNSMASQ_LN 2>/dev/null logger "$DNSMASQ_LN -> $DNSMASQ_CFG link recreated..." } fi
Godless
12.04.2022 11:04Интересно, спасибо. У меня просто схема сильно другая, много VLAN/NAT на шлюзе (x86, linux), стоит unbound и тп. А для маршрутизации думаю bgp использовать.
TheChief5055
12.04.2022 13:08Ну, у меня простая домашняя схема. Для меня bgp и прочие ужасы — лютый оверкилл.
hbrsck
11.04.2022 09:11Как точка обмена трафиком в случае отвала основной. Это если у вас от 3 точек без статика.
gecube
10.04.2022 00:57+7статья не понравилась - как обычно по рабоче-крестьянскому make install, вместо того, чтобы собрать нормальный докер или rpm/deb пакет. Там хотя бы можно как-то кому-то доверять (те же подписи GPG), а тут - скачай репо непонятных чуваков и запусти на своей впске...
13werwolf13
11.04.2022 08:44к этому добавляется sudo su и
/etc/init.d/..
в systemd дистрибутиве.. и вера автора в то что в россии хостинги реально игнорят РКН
справедливости ради такие хостинги есть, только вот инфа о них передаётся из уст в уста и не всем.
Rebeiro1976
10.04.2022 08:14+3не, спасибо, я зарекся поднимать vpn в России, толку ноль, порезано абсолютно все, и нафига мне такой чебурнет, просто мой за бугром почикали на 2 недели, потом вроде вернули, вот это настоящий инет, ничего не порезано, пинг 40, скорость по тарифу как у провайдера моего, не режется, не инет а сказка, а с нашими оплевался просто, и стоит 250 р
sunbeam
10.04.2022 13:01+3всё прямо расписано как будто в шоколаде, вот только иногда пропадает на две недели..
amarao
Исайд из индустрии: скоро начнёт дорожать. Хуавейные сервера сейчас в РФ в 8 раз дороже, чем эквиваленты от HP/Dell/Supermicro.
i7071270 Автор
ну что же делать, раз так сказал Песков vpn - YouTube, значит придётся платить дороже :)
Akuma
Почему скоро? Уже.
Мой хостер поднял цены на 60-80%.
Смотрел Яндекс облако, там с 14 апреля плюс те же 80%