X-ray и компания
3 поста
3 поста
После покупки сервера и установки на него Wireguard с дашбоардом я задумался что неплохо было бы выжать из сервера побольше. Да и сам дашбоард для впн сделать немного удобнее.
На глаза попались вопросы об использовании DNS over HTTPS, а почему бы и да, подумал я. В результате чего и получилась эта статья.
Все сайты в интернете имеют доменное имя, каждому доменному имени соответсвует IP адрес, по которому браузер сайт и находит, но IP адреса запоминать сложно, а доменные имена довольно легко. Перед подключением к сайту браузер сначала по открытому протоколу обращается к DNS серверу узнает IP и уже затем напрямую по IP обращается к сайту. Т.к. протокол открытый он легко перехватывается и просматривается его содержимое, на основе чего можно подменять ответы и перенаправлять трафик. И даже при использовании разных VPN DNS трафик зачастую идет мимо зашиврованного канала и может перехватываться.
Что бы немного усложнить задачу перехватчикам был разработан протокол DNS over HTTPS или DoH, суть его заключается в следущем, запрос на разрешение имени идет через HTTPS протокол и он уже зашифрован, а т.к. это не стандартный DNS трафик он в любом случае пойдет через VPN если вы его используете.
Поддержка протокола довольно быстро появилась во всех ОС и браузерах, при этом можно выбрать одного из публичных провайдеров DNS, включить ее довольно просто. И мне идея понравилась, но использовать публичные серверы ну совсем не хочется.
Собственный сервер с ОС Ubuntu 22 на борту
2. Доменное имя - ниже расскажу где как и забесплатно
3. 10 минут времени на настройку и небоязнь подключаться по ssh, нужно будет выполнить несколько команду, всю настройку я подготовил и завернул в простые башскрипты выложенные на гитхаб
И так, нам понадобится сервер, где купить и как купить решайте сами. RuVDS, VDSina, Veesp т.д.
Можете воспользоваться моей реферальной ссылкой на Veesp, в благодарность так сказать. Как купить у них я рассказывал в прошлой статье.
В общем покупаем или не покупаем сервер, находим его IP адрес и пароль пользователя root в письме от провайдера или панели управления вашего хостинга.
Тут нам понадобится доменное имя, но бесплатных доменных имен второго уровня к сожалению не бывает, зато есть бесплатные доменные именя третьего уровня, или субдомены. Для этих целей более чем и главное бесплатно.
Идем на https://www.duckdns.org/ и авторизуемся одним из предложенных способов, есть Google, persona, github или twitter
Далее придумываем своему серверу доменное имя, нажимаем кнопку add, если такой субдомен свободен то он появится в списке ниже, если нет нужно будет придумать что-то еще, главное что бы вы легко его запомнили. Потом в списке вводим IP адрес вашего сервера и нажимаем кнопку update ip.
Доменное имя получили и настроили, теперь можно проверить заработало ли оно, открываем терминал или cmd в windows и пробуем пропинговать его командой:
ping test-vps.duckdns.org
Вместо test-vps нужно указывать домен который вы придумали. Если видите ответы от IP адреса вашего сервера как на скришоте снизу значит все хорошо и можно переходить к следующему шагу
Подключаемся к вашему серверу по SSH, как это сделать можно узнать в интернетах и приступаем к настройке
1. Скачиваем скрипты и заходим в папку со скриптами
git clone https://github.com/mozaroc/bash-hooks.git
cd bash-hooks
Если git не установлен, то его нужно установить
apt-get install git -y
2. Выдаем права на исполнение
chmod +x cert-bot.sh dnsdist.sh wire-guard.sh
3. Запускаем первый скрипт, который установит установит необходимое ПО для получения SSL сертификата, получит его и настроит автопродление
test-vps.duckdns.org нужно заменить на ваше доменное имя полученное ранее
4. Запускаем второй скрипт, который установит и настроит необходимое ПО для DoH
Опять для скрипта указываем доменное имя, что бы все прошло хорошо. Данный скрипт установит DNS load balancer dnsdist. На обычные DNS запросы он отвечать не будет, только по протоколу HTTPS, в качастве аплинков указан набор публичных открытых DNS серверов, каждый следующий запрос будет отправляться на случайно выбранный сервер из списка
5. Запускаем третий скрипт, он установит и настроит Wireguard и WGdashboard для управления
Важно, если у вас уже есть установленный Wireguard или Wireguard и WGdashboard, то скрипт может не отработать, либо сотрет текущие настройки, лучше запускать скрипт на чистой системе.
Если же вы все равно хотите его запустить то рекомендую забекапить настройки Wireguard например вот так:
mkdir -p /root/backup
cp -r /etc/wireguard/* /root/backup
cp /wgdashboard/src/wg-dashboard.ini /root/backup/
А после выполнения скрипта положить бекапы на место
rm -rf /etc/wireguard/*
rm -rf /wgdashboard/src/wg-dashboard.ini
cp -r /root/backup/* /etc/wireguard/
cp /root/backup//wg-dashboard.ini /wgdashboard/src/wg-dashboard.ini
wg-quick down wg0
wg-quick up wg0
systemctl restart wg-dash
На этом можно считать настройку сервера законченной, теперь к интерфейс WGdashboard можно зайти по доменному имени, https://test-vps.duckdns.org:10086, ни каких ошибок сертификата и прочего. Какие настройки нужно произвести в панели управления и настроить клиентские подключения можно посмотреть в моей прошлой статье
Теперь настроим то ради чего была написана эта статья
Открываем настройки браузера, в поле поиска вводим dns. Я покажу на примере Firefox, в Chrome и Opera настройки примерно в том же месте и выглядят примерно аналогичным образом.
Ставим галочку Enable DNS over HTTPS, в поле Use Provider выбираем Custom, в поле Custom вводим адрес нашего сервера https://ДОМЕННОЕ-ИМЯ-ВАШЕГО-СЕРВЕРА/dns-query
Нажимаем ОК
Если не хотите делать свой сервер вполне можно остаться на дефолтном, но включить этот функционал я рекомендую в любом случае.
Проверить работу можно здесь
Заходим, нажимаем большую оранжевую кнопку Check My Browser, в результатах должно быть примерно такое:
Вот эти три галочки должны стоять, там есть еще четвертая, но на нее можно не обращать внимания.
Вот собственно и все, спасибо за внимание.
Многие VPN провайдеры либо уже перестали работать, либо скоро перестанут, а некоторые ресурсы ограничивают доступ если видят что вход осуществлен с адреса принадлежащего такому провайдеру. Хорошим выходом является покупка выделенного виртуального сервера и настройка собственного впн на нем. Но что делать если Linux, ssh и терминал слова незнакомые да и не нужные. В этой инструкции вы найдете способ где и как приобрести сервер и не знакомится с этими словами, вам понадобится только браузер.
Один из хостингов в Латвии подготовил хороший шаблон операционной системы с предустановленным и настроенным впн сервером а так же удобным веб интерфейсом для настройки.
Заходим по ссылке и выбирайте Virtual Private Servers
Дальше выбираете самый недорогой тариф
Затем нужно придумать имя для сервера, выбрать локацию, выбираем Riga, OS Template выбираете WireGuard
Ниже на этой же странице нужно заполнить форму регистарции, если хотите платить в рублях с российской карты, в поле Страна указывайте Russian Federation
Далее выбираем способ оплаты, соглашаемся с условиями и нажимаем оформить заказ
Откроется счет, нажимаем оплатить и оплачиваем картой
Далее обязательно подтверждаем email, на почту указанную при регистрации придет письмо.
После оплаты заказа и подтверждения email на почту упадет несколько писем, об оплате заказа и о том что сервер готов. После получения этих писем ждем 10-15 минут.
В письме о том что сервер готов будет ссылка на WEB интерфейс в котором можно будет управлять вашим VPN сервером.
Проходим по ней и авторизуемся, логин и пароль по умолчанию – admin, браузер будет ругаться что сертификат сервера недействительн, но не нужно боятся, просто сертификат бесплатный и сгенерирован на самом сервере, соглашаеся с риском и заходим.
Сразу идем в раздел Settings, проматываем страницу вниз и меняем пароль для доступа к управлению
Затем возвращаемся на главную страницу и заходим в главный VPN интерфейс
Здесь можно посмотреть статистику и список подключений. Как видим еще ни одного подключения нет, поэтому давайте создадим одно. Нажимаем на знак + в правом нижнем углу.
Здесь достаточно ввести только имя подкючения и нажать кнопку Add
Подключение готово, можно скачивать конфигурационный файл
Далее скачиваем и устанавливаем клиентское приложение
Открываем его, нажимаем кнопку добавить и импортировать туннель из файла
Находим наш скачанный файл и нажимаем добавить и активируем
Если вы хотите использовать впн на телефоне, нужно создать новое подключение и установить приложение
Создаем новое подключение как описано выше, и нажимаем в нем на значок QR-кода
Открываем приложение на телефоне, выбираем Добвить туннель, Создать из QR-кода, сканируем код появившийся на экране и присваем ему имя, сохраняем и активируем ползунком
И вот ваш впн работает и на телефоне
В озможные подводные камни и советы:
1. Если панель управления не октрылась через 15 минут попытайтесь переустановить сервер. Такое иногда случается, т.к. все ПО устанавливается и настраивается после создания сервера и какие-то внешние ресурсы могут не отвечать. В личном кабинете провайдера, в управлении сервисом есть кнопка переустановить, там опять выбираете шаблон WireGuard
2. Обязательно смените пароль для доступа в WEB интерфейс сервера
3. Скорость доступа сервера 400 мегабит в секунду, должно хватить для комфортного использования для 20 устройств
4. Для каждого устройства создавайте отдельное подключение
5. Через этот впн работают как зарубежные так и внутрироссийские ресурсы, пока проблем с доступом куда-либо не выявлено.