Очередная статья про VPN
Добрый день. Статья сложнее чем установка VPN в 2 клика, но позволяет создать свой, более-менее, защищенный VPN сервер на связке WireGuard + Adguard Home. Связка, вам скажу - бомбическая. Мы не только шифруем трафик, а еще и чистим его от тонны всякого овна.
И это позволяет создать, во всех смыслах, безопасный интернет для вас и вашей семьи.
Статья разбиты на 3 раздела:
Часть 1: VPS сервер
Для начала нужно арендовать VPS сервер. Так как в РФ VPN не особо жалуют власти, то арендуем сервер не в РФ. Кстати, так получается намного дешевле. Подобрать дешевый VPS можно на сайте Lowendbox. Я например, в прошлом году арендовал сервер от RackNerd за 11 USD. И за 1 год, ни разу не получил каких-либо проблем. Для наших нужд нам хватит самый дешевый вариант, с 1 CPU и 1 Gb RAM.
Update: с некоторых пор оплатить хостинг за $ стало крайне сложно, поэтому рекомендую уже хостинг VPS на VDSina (реферальная ссылка, если хотите отблагодарить автора). Сервера дешевые (11 рублей в сутки), находятся в Голландии, IP мне выдал чистый по проверки в спам-базах.
Обязательно проверяем IP сервера, по наличию в спам-базах. Делается это просто, через сервис 2IP.
Купили сервер, начинаем его настройку.
Update 2: в качестве ОС я использую Ubuntu Server, статья написана именно под эту систему.
Для начала создадим ключ, для беспарольного доступа к серверу, для этого скачиваем утилиту PuTTYgen и генерируем в ней публичный и приватный ключи. Оба ключа сохраняем. Приватный ключ нам потребуется для входа на сервер, публичный вставляем в настройки SSH на сервере, как указано ниже.
Если мы используем хостинг от VDSina, публичный ключ вставляем в разделе Мои серверы -> SSH ключи.
После этого, можем заходить на наш сервер через SSH и производить настройку. Для SSH доступа, порекомендую приложение от MobaXterm, оно бесплатное и очень клевое.
Начинаем настройку сервера:
Внимание! Ниже кусок раздела применимый для других серверов, для VDSina мы уже добавили наш ключ, как указано выше.
Добавляем наш ключ на сервер:
Меняем порт на котором работает SSH и отключаем авторизацию по паролю:
Открываем только те порты, которые нам понадобятся и закрываем порт 22:
После ребута не забываем поменять номер порта, который поменяли, в настройках SHH-клиента.
Часть 2. Устанавливаем WireGuard
Далее, запускается мастер установки, соглашаемся со всем кроме:
Which DNS provider would you like to use?
1) Unbound (Recommended)
2) Custom (Advanced)
Выбираем вариант 2.
Далее, соглашаемся с DNS сервером по дефолту.
В итоге, скрипт сгенерирует QR-код, который можно отсканировать, например, в мобильном приложение WireGuard, и даст ссылку на .conf файл, в которым зашиты настройки для приложения.
Чтобы посмотреть всех клиентов WireGuard, устанавливаем Midnight Commander и смотрим конфиги по адресу etc/wireguard/cliens.
Для того, чтобы совершить какие-то настройки над WireGuard, например, добавить новых клиентов, используем команду:
Все, WireGuard установлен и настроен, но на некоторых серверах клиент не будет получать трафик, если еще не произвести несколько манипуляций с фаерволом UFW. Это раздел для VDSina, на других серверах у меня все и так работало.
Сохраняем — CTRL + X, Y и Enter.
Сохраняем — CTRL + X, Y и Enter.
Откроется файл, необходимо вставить код ниже, ДО начала данных файла. т.е. вставленные данные у нас будут идти самыми первыми.
Перезапускаем фаервол:
Часть 3. Установка AdGuard Home
Выполняем команды в консоли:
Далее, переходим в браузер http://IP_сервера:3000 или на домен, если уже прилинковали его к IP и проходим квест установщика.
Кстати, домен можно бесплатно парковать у хостинга Beget, они крутые ребята.
Внимание! В полях ‘Веб-интерфейс администрирования‘ и ‘DNS-сервер’, выбираем сетевой интерфейс с IP адресом нашего сервера, это важно.
После прохода установщика, жмем CTRL + C и далее, вводим команды.
И обратите внимание, что если прилинковываем домен и хотим шифровать трафик, то к IP нужно прилинковать домен и выпустить для него сертификат через certbot.
Все, заходим на адрес вашего сервера http://IP_сервера:3000 или http://домен.ru, выбираем и при желание доустанавливаем фильтры (настройка Adguard Home — тема для отдельной статьи) и наслаждаемся более быстрым и безопасным интернетом.
В конфиге клиента VPN, в поле DNS = 1.1.1.1 (например), мы можем указать IP адрес нашего сервера с VPN ,и трафик будет фильтроваться от рекламы и шифроваться. Такое 2 в 1.
Так же можно использовать отдельно DNS сервер, чтобы фильтровать трафик без VPN. На ПК с Windows мы указываем адрес DNS в программе Yoga DNS и пускаемся трафик по DNS over HTTPS.
Для смартфона на Android или iOS есть нативная поддержка DNS over HTTPS и сервер можно поменять в настройках. Но это верно не для всех версий Android и не для всякого трафика, поэтому для Android рекомендую использовать приложение Intra для фильтрации трафика или WireGuard с нашими настройками DNS.
DNS сервер и VPN можно установить в роутере, например я приобрел Keenetic, теперь весь трафик шифруется и чистится, перед тем как зайти в мой дом.
Если будут вопросы, предложения и конструктивная критика — пишите в комментариях. Спасибо!
Мысли на эту тему:
1. Люди не могут перейти на платный VPN, просто купить, а мы им про купи и настрой сложное.
2. Если человек не программист и не администратор, то настраивать сервер ОЧЕНЬ мучительно. Я настраивал много раз, для меня это всегда боль. И я всегда косякну, что может привести к проблемам с безопасностью.
3. Готовые решения всегда сервиснее и дешевле — приложения для телефона, всех платформ, выбор локации. И всё это за $2–3. И настраивать не надо ничего.
Единственный минус — могут заблокировать централизованно. Ну пока этого нет.
Считаю, что бесплатный ProtonVPN — это мегапрорыв для большинства.
https://protonvpn.com/ru/pricing
Так себе прорыв, если честно, ProtonVPN еще недавно сотрудничал с Роскомнадзором. Бесплатный VPN можно использовать чисто чтобы запостить фоточку в Инстаграм, как то не более.
Да, сервисы подкупают тем, что куча локаций, для работы удобно, особенно из РФ, всегда может понадобиться мимикрировать под конкретный регион.
И то и то по своему хорошо.
Ну и как протон, братан?
Может хватит уже, а?
Хватит чего, разве была статья про сращивание VPN + AdGuard Home ?
Ну вот дополню тебя, какую ОС ставил? Нигде не написано про это
похоже на ubuntu
тоже хотел этот вопрос задать
Пардон, я использовал Ubuntu Server 20
Одна из лучших статей которые встречал за последнее время, обычно о безопасности никто не пишет
спасибо ! попробую по вашему пути пойти
а есть ли возможность точечно по списку РКН обходить блокировку?
чтобы не бить все через впн, а то у меня канал 600 мбит, а впн 200 мбит макс при хорошей погоде
Спасибо большое, это очень мотивирует еще писать статьи )
По поводу выборочного тунелирования, подозреваю что есть такая возможность, попробую узнать и ответить вам позднее
На клиенте в конфиге VPN добавляем блок AllowedIPs и указываем там необходимые IP. Можно построчно. Например, так:
AllowedIPs = 103.4.96.0/22 #instagram/Facebook
С такой настройкой весь трафик будет идти через наш стандартный канал, а трафик на 103.4.96.* будет идти через VPN.
Пока не нашел решение с выборочной работой, подозреваю что надо купить документацию WireGuard
Пандемия COVID: десятки однообразных статей на vc типа «как легко и быстро перевести свой бизнес на удаленку»
Спец.операция в Украине: «мы расскажем вам, как организовать свой VPS с блэкджэком и ...😁👍
Спасибо большое за статью. Но AdGuard Home почему то не работает. Добавил кучу фильтров с гитхаба, и ничего. Может как то ДНС настроить нужно? На клиенте где прописан DNS =1.1.1.1 написано ещё куча всего, и это удалять или оставить?
Спасибо!
На клиенте WireGuard, в поле DNS, надо прописать IP адрес своего сервера.
Например по дефолту:
DNS = 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001
надо
DNS = IP адрес вашего сервера
Точно так же это работает, если прописать этот IP в поле DNS на сетевой карте, wi-fi, роутере, смартфоне и т.д. Будет работать фильтрация трафика, но без шифрования. Чтобы было шифрование, почитайте раздел Инструкция по установке в AdGurd Home (к клиенту WireGuard это не относится).
Спасибки за стетейку, ребятки, ето здорово, но цены почему взвинтили?
Обратите внимание
https://vc.ru/opinions/397623-vdsina-podnyala-ceny-na-100
Комментарий недоступен
Честно говоря, статья полный провал. Потрачено часов 7 на всякие разные способы по этой инструкции и этой же, но с другого сайта за этим же автором, с изменениями.
В результате проще оказалось 3 часа потратить на инструкции с офсайтов и размышления. Кстати, при установке wireguard пришлось прописать свой DNS установленной AdGuard Home — установив ее первой. Только так заработало.
Это реально сложно обычному человеку, но реально безопасней. Я попробовал настроить, плюнул... Пришлось искать кто это сделает за деньги
Я по сути расписал все действия
Может кому интересно будет - есть купон - 17,88$ в год https://my.racknerd.com/aff.php?aff=5195&pid=649
2 GB KVM VPS Special (San Jose Location)
1x vCPU Core
25 GB PURE SSD RAID-10 Storage
2 GB RAM
3000GB Monthly Premium Bandwidth
1Gbps Public Network Port
1 Dedicated IPv4 Address
Ой как некрасиво, на чужом труду выезжать.
Большое спасибо за статью!
Почему-то у меня так и не получается выжать из VPN'а скорость, близкую к скорости провайдера... Есть идеи, что я могу делать не так?
Сейчас экспериментирую в Ереване с айфона через Speedtest:
1. Без VPN: 94.1/54.1 Mbps, ping 4ms
2. Через Wireguard и нидерландский сервер VDSina: 43.3/23.9 Mbps, ping 67ms
3. Через MyVPN (L2TP), установленный на нидерландский сервер Cryptoservers: 44.0/31.9 Mbps, ping 73 ms
Везде арендую самые дешевые сервера. Но, так понимаю, лишнее ядро и оперативка не помогут раскачать скорость?
И еще, правильно ли я понял, что без стороннего софта (собственно, проги Wireguard) подключиться к VPN на Wireguard с Macos и iOs нельзя?
На роутерах, на Keenetic например, можно весь трафик пустить через Wireguard или L2TP, на Windows 11 есть нативная поддержка L2TP, но не Wireguard.
Больше памяти и CPU не поможет в этом случае, можно задать вопрос провайдеру, они охотно отвечают на вопросы.
Немного странно что L2TP оказался быстрее, хотя если провайдеры разные, то дело в этом скорее всего. L2TP по идее, менее безопасный и быстрый чем Wireguard.
торренты можно юзать?
64 ТБ вообще за глаза хватит
для обхода ограничения скорости ОпСоСов
Да, все работает, скорость почти не режется
Автору респект. В закладки себе добавил, хотя пока не нуждаюсь в личном ВПНе, но кто знает что будет завтра. Вдвойне респект за труды и подробное описание.
Evil Pechenka автор не писал, что это для тех юзерей, которые, чтобы винду переустановить мастера себе приглашают. А по поводу публичных ВПН сервисов - не стоит столь обольщаться. Те регулярно "текут" например так: https://www.rbc.ru/society/04/11/2021/618322459a794776cb004550
А некоторые, что заявляют об отсутствии у них якобы логов - текут вместе с логами. Ну такое себе. А тут всё чистенько, подконтрольно тебе, и трафик твой в т.ч. А уж отсутствие в спам адресах ИП твоего ВПНа - тоже даёт тебе плюс времени на отсутствие необходимости вводить капчи лишние разы.
Спасибки за стетейку, ребятки, ето здорово, но цены почему взвинтили?
Обратите внимание
https://vc.ru/opinions/397623-vdsina-podnyala-ceny-na-100
Сегодня проверил, все норм на младшем тарифе. Цена не изменилась - 11 рублей в сутки, что в целом приемлемо.
Все настроил, но при подключении в логах вижу такую информацию, ничего не грузит, будто инета нет:
handshake did not complete after 5 seconds
Скрин скиньте
Та же ерунда... получилось починить?
Комментарий недоступен
Ещё вопрос - а как можно задействовать списки с https://antifilter.download/ ?
Чтобы не всё заворачивать в VPN, а только заблокированные адреса как здесь например https://habr.com/ru/post/440030/
WireHole
https://zen.yandex.ru/media/kiberlis/svoi-vpn-server-c-wirehole--kombinaciia-wireguard-vpn-pihole-i-unbound-instrukciia-po-bystroi-i-legkoi-nastroike-vpn-servera-61edd231b6019a7d3efd67b9
Будьте осторожны, используя бесплатные VPN сервисы.
Совсем недавно писали про то, как они воруют данные
https://zen.yandex.ru/media/i2crm/zachem-biznesu-korporativnyi-vpnservis-62b1beae37703f171653dbd8?&;
и к чему это здесь?
на VDShina дешевле можно взять:
1 ГБ память / 1 core процессор / 30 ГБ диск / 32 ТБ трафик - за 200 рублей в месяц
Здесь и так ссылка на этот хост
Не стартует сервис почему-то:
root@racknerd-3ed439:~# sudo wireguard-manager.sh
What do you want to do?
1) Show WireGuard
2) Start WireGuard
3) Stop WireGuard
4) Restart WireGuard
5) Add WireGuard Peer (client)
6) Remove WireGuard Peer (client)
7) Reinstall WireGuard
8) Uninstall WireGuard
9) Update this script
10) Backup WireGuard
11) Restore WireGuard
12) Update Interface IP
13) Update Interface Port
14) Purge WireGuard Peers
15) Generate QR Code
Select an Option [1-15]:2
[#] ip link add wg0 type wireguard
RTNETLINK answers: Operation not supported
Unable to access interface: Protocol not supported
[#] ip link delete dev wg0
Cannot find device "wg0"
root@racknerd-3ed439:~#
После рестарта ошибка интерфейса пропала, но появилась другая :)
root@racknerd-3ed439:~# sudo wireguard-manager.sh
What do you want to do?
1) Show WireGuard
2) Start WireGuard
3) Stop WireGuard
4) Restart WireGuard
5) Add WireGuard Peer (client)
6) Remove WireGuard Peer (client)
7) Reinstall WireGuard
8) Uninstall WireGuard
9) Update this script
10) Backup WireGuard
11) Restore WireGuard
12) Update Interface IP
13) Update Interface Port
14) Purge WireGuard Peers
15) Generate QR Code
Select an Option [1-15]:2
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/8 dev wg0
[#] ip -6 address add fd00:00:00::1/8 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] sysctl --write net.ipv4.ip_forward=1; sysctl --write net.ipv6.conf.all.forwarding=1; nft add table inet wireguard-wg0; nft add chain inet wireguard-wg0 PREROUTING {type nat hook prerouting priority 0\;}; nft add chain inet wireguard-wg0 POSTROUTING {type nat hook postrouting priority 100\;}; nft add rule inet wireguard-wg0 POSTROUTING ip saddr 10.0.0.0/8 oifname eth0 masquerade; nft add rule inet wireguard-wg0 POSTROUTING ip6 saddr fd00:00:00::0/8 oifname eth0 masquerade
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
Error: Could not process rule: No such file or directory
add chain inet wireguard-wg0 PREROUTING {type nat hook prerouting priority 0;}
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[#] ip link delete dev wg0
Автор не упомянул самое главное. Установить Wireguard не всюду получится. Centos 8 Stream, Centos 8 и выше, AlmaLinux 9 требуют модуль kmod-wireguard, который не везде есть, а если версии ниже - то ядро старое.
Пробуем Debian - у моего провайдера только 10, в backports ничего нет, пришлось обновляется полностью до Debian 11. И только тогда смог поставить. Ubuntu не пробовал, но не думаю, что меньше чем на 20 встанет без бубна.
Далее не забываем, чтобы была правильная виртуализация...
Автор указал, что статья написано под Ubuntu Server. И кстати, статья обновлена, я публикуюсь теперь только на своем блоге.
А что - VDSina разве дает виртуалки на всяких OpenVZ где ядро одно на всех и никак прям не пересобрать и не обновить? Мне казалось у них KVM.
Или пользователи Linux пошли такие что ядро пересобрать не могут?
Комментарий удален модератором
По такому методу с openvpn будет работать?
Без понятия если честно