{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Очередная статья про 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, оно бесплатное и очень клевое.

Начинаем настройку сервера:

sudo apt install fail2ban -y sudo apt install ufw -y sudo apt update && sudo apt upgrade -y sudo touch /etc/fail2ban/jail.local sudo 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 чтобы сохранить

Внимание! Ниже кусок раздела применимый для других серверов, для VDSina мы уже добавили наш ключ, как указано выше.

Добавляем наш ключ на сервер:

Содержание скрыто
Показать
sudo mkdir ~/.ssh cat >> .ssh/authorized_keys << EOF /*нажимаем Enter*/ /* затем вставляем сгенерированный публичный ключ и {Enter}*/ EOF /*и еще раз Enter*/

Меняем порт на котором работает SSH и отключаем авторизацию по паролю:

sudo nano /etc/ssh/sshd_config ---> откроется редактор, изменим значения и убираем #, как ниже: Port 22 (меняем стандартный порт, например на 19827) PasswordAuthentication no

Открываем только те порты, которые нам понадобятся и закрываем порт 22:

sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow (ваш порт SSH, по умолчанию 22) !важно! sudo ufw allow 51820/udp sudo ufw allow 3000 /*если прилинковали домен к IP, после настройки удаляем*/ sudo ufw allow 853 sudo ufw allow 784 sudo ufw allow 53 sudo ufw delete allow 22 sudo ufw limit 22/tcp (вместо 22 укажите ваш номер порта) sudo ufw reload

После ребута не забываем поменять номер порта, который поменяли, в настройках SHH-клиента.

Часть 2. Устанавливаем WireGuard

sudo apt install curl curl https://raw.githubusercontent.com/complexorganizations/wireguard-manager/main/wireguard-manager.sh --create-dirs -o /usr/local/bin/wireguard-manager.sh chmod +x /usr/local/bin/wireguard-manager.sh bash /usr/local/bin/wireguard-manager.sh

Далее, запускается мастер установки, соглашаемся со всем кроме:

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.

sudo apt install mc -y sudo mc

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

sudo bash /usr/local/bin/wireguard-manager.sh

Все, WireGuard установлен и настроен, но на некоторых серверах клиент не будет получать трафик, если еще не произвести несколько манипуляций с фаерволом UFW. Это раздел для VDSina, на других серверах у меня все и так работало.

sudo nano /etc/default/ufw /* Изменить параметр на ACCEPT */ DEFAULT_FORWARD_POLICY="ACCEPT"

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

sudo nano /etc/ufw/sysctl.conf /* убрать '#' */ net.ipv4.ip_forward=1 net/ipv6/conf/default/forwarding=1 net/ipv6/conf/all/forwarding=1

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

sudo nano /etc/ufw/before.rules

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

# NAT table rules *nat :POSTROUTING ACCEPT [0:0] # Forward traffic through eth0 - Change to match you out-interface -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE # don't delete the 'COMMIT' line or these nat table rules won't # be processed COMMIT

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

sudo ufw reload

Часть 3. Установка AdGuard Home

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

wget https://static.adguard.com/adguardhome/release/AdGuardHome_linux_amd64.tar.gz tar -xzf AdGuardHome_linux_amd64.tar.gz cd AdGuardHome sudo ./AdGuardHome

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

Кстати, домен можно бесплатно парковать у хостинга Beget, они крутые ребята.

Внимание! В полях ‘Веб-интерфейс администрирования‘ и ‘DNS-сервер’, выбираем сетевой интерфейс с IP адресом нашего сервера, это важно.

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

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

sudo ./AdGuardHome -s install ./AdGuardHome -s stop sudo apt install snapd sudo snap install core; sudo snap refresh core sudo snap install --classic certbot sudo certbot certonly --standalone -d адрес_вашего_сервера.ru -d www.адрес_вашего_сервера.ru ./AdGuardHome -s start sudo apt update && sudo apt upgrade -y && sudo apt autoclean -y && sudo apt clean -y && sudo apt autoremove -y && sudo reboot

Все, заходим на адрес вашего сервера 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, теперь весь трафик шифруется и чистится, перед тем как зайти в мой дом.

Если будут вопросы, предложения и конструктивная критика — пишите в комментариях. Спасибо!

0
73 комментария
Написать комментарий...
Xtaletari

Все настроил, но при подключении в логах вижу такую информацию, ничего не грузит, будто инета нет:
handshake did not complete after 5 seconds

Ответить
Развернуть ветку
Dima
Автор

Скрин скиньте

Ответить
Развернуть ветку
70 комментариев
Раскрывать всегда