Назад

Шифруемся и предохраняемся вместе с AdGuard Home и WireGuard VPN

В этой статье мы подружим Wireguard VPN и AdGuard Home — создадим безопасный шифрованный канал для выхода в интернет и порежем 90%+ рекламы, метрик и прочих следящих штук, которые просто не дойдут до вашего компьютера, смартфона, телевизора и заблокируются еще на уровне запроса DNS.

Зачем это все и какую ценность мы получим?

WireGuard предоставляет быструю, безопасную и простую в использовании VPN-технологию, который очень слабо влияет на скорость соединения. А мы получаем защищенный интернет-канал для всех наших устройств.

Adguard Home — режет рекламу на уровне DNS т.е. он ее просто не загружает на устройство, в отличии например, от блокировщика рекламы в браузере. На данный момент, это наиболее эффективный инструмент против рекламы, который поддерживает все плюшки DNS — DNS Over HTTPS и т.д.

Вопрос тут стоит — не зачем это нужно, а почему вы все это еще не используете?

Выбор хостинга для VPN

Предлагаю вам на выбор 4 хостинга, которые можно использовать для VPN, исходя из своей субъективной оценки. Три ссылки реферальные, так вы сможете и отблагодарить меня, без всяких усилий, если статья вам оказалось полезной.

Американский хостинг Racknerd (ссылка) предлагает отличные тарифы для VPN, но только при условии аренды акционных серверов (ссылка на акцию). Тарифы без акций — напротив, сильно дорогие. Для РФ есть возможность оплаты через крипту, сейчас не проблема завести кошелек на Huobi или Kucoin.

Железо хорошее, любой тариф потянет VPN. Небольшой плюс — можно заранее пинговать сервера, выбрать IP адрес и его расположение. Сам хостинг зарекомендовал себя как очень надежный.

Speedtest показывает скорость Download 420 — 760Mbit/s, Upload 750 — 790 Mbit/s и Packet loss: 0 % — что является отличным результатом.

Минимальная сумма для пополнения счета — 10 — 20 $ за 1 год, что конечно очень выгодно.

Хостер Aeza (ссылка) предлагает очень хорошие тарифы с оплатой от 1-го часа и расположением в Европе и СНГ. По железу — все отлично, управлять сервером удобно. Не находятся в юрисдикции РФ и никаких персональных данных не просят. Из минусов — довольно часто меняют цены в сторону увеличения.

Speedtest показывают скорость Download 678 — 735 Mbit/s, Upload 632 — 668 Mbit/s и Packet Loss: 3 % — отличный результат, кроме пожалуй Packet Loss. С ним я столкнулся практически на всех локациях Aeza.

Минимальная стоимость сервера под VPN — в районе 5 Евро, но принимают оплату (без комиссии), в рублях. При регистрации по ссылке, у вас будет Wellcome бонус +15%, к первому пополнению счета, но за первые 24 часа.

VDSina стабильный и хороший по железу хостинг. Отлично подойдет под VPN и тесты, недавно полностью ушел в подполье и платить можно любым способом, кроме пожалуй карты

Не просят персональные данные, аренда сервера от 1-го часа, хорошая и стабильная стоимость сервера под VPN, в двух локациях — Москва и Голландия.

Минусы — это пополнение счета, не самая удобная форма. Пойдет если платить нечасто.

Панель управления — очень простая. При выборе сервера ориентируйтесь на ОС Ubuntu 20-22, эпичные сервера (AMD Epic) и уберите галочку с платных бэкапов. Тогда стоимость простой конфигурации у вас будет в районе 468 рублей.

Speedtest показывает скорость Download 650 — 711Mbit/s, Upload 591 — 615 Mbit/s и Packet loss: 0 % — что является превосходным результатом.

Из всех представленных хостинг, Timeweb (ссылка) — самый стабильный для клиента из РФ и предоставляет какие-то юридические гарантии своей работы. Для VPN можно использовать локацию в Нидерландах, Казахстане или Польше. И по своей стоимости, хостинг предоставляет очень хорошее железо, которое будет тянуть не только VPN.

Speedtest показывает скорость Download 191 — 199Mbit/s, Upload 193 — 197 Mbit/s и Packet loss: 0 % — что является средним результатом.

Стоимость сервера с железом на 2 CPU, 2 Gb RAM и 40 SSD при интернете коннекторе на 200 Mbit — 555 рублей.

Обратите внимание, что у многих хостеров есть веб-консоль, которую можно использовать для подключения к серверу SSH. Но будет намного удобнее, если вы будете использовать программы Termius или MobaXTerm.

Устанавливаем WireGuard

wget -O wireguard.sh https://get.vpnsetup.net/wg && bash wireguard.sh

Скрипт в процессе установки нам предложит:

  1. Выбрать порт — выбирайте любой из диапазона от 5 знаков до значения в 65535. Например, 54562, но не стандартный. Внимание! Запишем номер порта, далее, мы откроем ему доступ через фаервол
  2. Дать название первому юзеру (любое)
  3. Выбрать DNS-сервер. Пишем только IP адрес нашего сервера,
  4. Enter secondary DNS server (Enter to skip) — Enter

В итоге скрипт сгенерирует QR-код и даст ссылку на conf файл, которые используются как ключи для приложений (подробнее по ссылке)

Чтобы посмотреть всех клиентов WireGuard, устанавливаем Midnight Commander и смотрим конфиги по адресу etc/wireguard/cliens.

Для того чтобы совершить какие-то настройки над WireGuard, например, добавить новых клиентов, используем команду:

bash wireguard.sh

Скачать все ключи можно через SFTP, либо открыть файл редактором, как указано ниже, скопировать код и вставить его в приложение WireGuard:

nano /root/user.conf

Возможные проблемы из политика сервера

Если у нас не работают обновления сервера после установки Wireguard, это проверить просто — apt update, то действуем согласно схеме ниже:

nano /etc/default/ufw

Изменить параметр на ACCEPT

DEFAULT_FORWARD_POLICY="ACCEPT"

Сохраняем нажимая — CTRL + X, Y и Enter

nano /etc/ufw/sysctl.conf

Убрать ‘#’ перед этими значениями:

net.ipv4.ip_forward=1
net/ipv6/conf/default/forwarding=1
net/ipv6/conf/all/forwarding=1

Перезапускаем фаервол.

 ufw reload

Установка AdGuard Home

Выполняем команды в консоли:

apt install dnsutils
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

Далее, переходим в браузер http://IP_сервера:3000 или на домен, если уже прилинковали его к IP и проходим квест установщика.

Внимание! В полях 'Веб-интерфейс администрирования' надо выбрать сетевой интерфейс (примеры ens1, eth0) с IP адресом нашего сервера, аналогично выбираем в 'DNS-сервер'.

После прохода установщика, жмем CTRL + C. Adguard Home у нас установлен.

И обратите внимание, что если прилинковываем домен и хотим шифровать запросы DNS, то к IP нужно прилинковать домен и выпустить для него сертификат через certbot.

Установка сертификата выглядит так:

cd /opt/AdGuardHome
./AdGuardHome -s stop
apt install snapd
snap install core; snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
sudo certbot certonly --standalone

Пишем название нашего домена — dns.domain.com (пример) и нам будет выпущен сертификат

Автоматический перевыпуск сертификата:

sudo certbot renew --dry-run
./AdGuardHome -s start

Добавляем сертификаты в Adguard Home, они находятся по адресу:

/etc/letsencrypt/live/dns.domain.ru/fullchain.pem
/etc/letsencrypt/live/dns.domain.ru/privkey.pem

Если вы добавили домен и получили сертификат. То теперь можем его добавить в AdGuard, для этого переходим в панель управления по адресу http://IP_сервера:3000 или http://домен.ru, переходим в настройки, настройки шифрования и добавляем в поле оба ключа, которые находятся по адресам:

/etc/letsencrypt/live/вашдомен.ru/fullchain.pem

/etc/letsencrypt/live/вашдомен.ru/privkey.pem

Дальше мы можем выбрать фильтры AdGuard и сделать ваш интернет, намного более чище и безопасней!

Теперь трафик проходящий через WireGuard не только шифруется и передается по защищённому протоколу, но и чистится от рекламы, трекеров и т.п.

Так же можно использовать отдельно DNS сервер, чтобы фильтровать трафик без VPN. На ПК с Windows мы указываем адрес DNS в программе Yoga DNS и пускаемся трафик по DNS over HTTPS.

Для смартфона на Android или iOS есть нативная поддержка DNS over HTTPS и сервер можно поменять в настройках. Но это верно не для всех версий Android и не для всякого трафика, поэтому для Android рекомендую использовать приложение Intra для фильтрации трафика или WireGuard с нашими настройками DNS.

DNS сервер и VPN можно установить в роутере, например я приобрел Keenetic, теперь весь трафик шифруется и чистится, перед тем как зайти в мой дом.

Бонусная часть — настройка безопастности сервера

С самого начала мы обезопасим сервер от брутфорса и закроем порты, которые не будем использовать:

apt install fail2ban -y && apt install ufw -y && apt install nano -y && apt update && apt upgrade -y
touch /etc/fail2ban/jail.local && nano /etc/fail2ban/jail.local

Откроется редактор, вставим в него код:

[sshd]
enabled = true
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
findtime = 600
maxretry = 3
bantime = 43200

Нажимаем ctlr + x, далее Y и enter, чтобы сохранить.

Отключим двухсторонний пинг, чтобы затруднить обнаружение туннеля

 nano /etc/ufw/before.rules

Меняем концовку следующего выражения с ACCEPT на DROP:

-A ufw-before-input -p icmp --icmp-type echo-request -j DROP

Нажимаем ctlr + x, далее y + enter, чтобы сохранить.

Прописываем правила в фаервол и включаем его

1. Обратите внимание, что мы оставляем открытым порт SSH, который по-умолчание на 22 порту. Если у вас другой порт назначен, поменяйте его.
2. ufw allow 45456/udp порт Wireguard, уже не стандартный. В сетапе обязательно укажите его или любой в диапазоне 40000 - 65535
ufw allow 3000/tcp && ufw allow 80/tcp && ufw allow 53/udp && ufw allow 45456/udp && ufw allow 22/tcp

В конце нас спросят, включать ли фаервол нажимаем Y и enter

На этом установка закончена. Если есть вопросы — пишите их в комментариях!

Dmitrii
Dmitrii
https://itstar.space
IT Project Manager, организатор IT-конференций в РФ, владелец 11 кошек и чихуа-хуа. Из которых половину спасли с женой из Турции, остальных спасли в РФ. В прошлом изобретатель с 16 лет, руководитель многочисленных лабораторий, проф. фотограф и еще хорошо готовлю. Короче очень клевый чувак, пацифист и любитель животных. Единственное, не веган :(
Подписаться
Уведомить о
guest
8 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Имя
Имя
1 год назад

Сделал все по описанию, но смущает надпись в журнале везде «Нешифрованный DNS» — это нормально?

Имя
Имя
Ответить на  Dmitrii
1 год назад

Добрый день! Жду с нетерпением!

Константин
Константин
1 год назад

Добрый день, а можно связать решение от wg-easy с adguard home? В том решении есть удобный WebUI для управления профилями wireguard

Cергей
Cергей
1 год назад

Здравствуйте! У vdsina.ru есть возможность сразу установить сервер с WireGuard VPN на
Ubuntu 22. Накатил сверху AdGuard Home, но трафик не идёт через него, уже часа 4 мучаюсь. Интересно было бы увидеть статью, по настройке.

Владимир
Владимир
1 год назад

Как можно проверить что трафик действительно шифруется?