Назад

VPN на WireGuard + Unbound DNS

Поделюсь самой одной из самой простой установкой VPN на сервер. Всего у нас будет 3-4 шага. Здесь мы устанавливаем VPN и DNS сервер, который не просто шифрует по DNSSEC, но еще и чистит трафик от трекеров. К тому же потребление ресурсов, при этой установке, крайне мало (хватит 512 мб).

У меня есть другая статья, где установка VPN будет еще немного проще. При этом у нас будет довольно удобная панель управления. Но там нет DNS и DNSSEC, но плюсы, конечно, перевешивают.

А этот способ больше для технарей 🙂

Я не буду предлагать какие-то альтернативы, а предложу самый простой способ поднять свой VPN, максимально быстро и просто.

Что делаем, в шаге 1-2 просто выполняем их, шаг 3 — копируем и вставляем в терминал команды.

Выбор хостинга для 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 рублей.

Установка WireGuard + Unbound

Копируем команды и вставляем в консоли SSH, через команду вставить или через правую кнопку мыши.

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

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

What port do you want WireGuard server to listen to?
  1) 51820 (Recommended)
  2) Custom (Advanced)
Выбираем любой в диапазоне 0 - 65000, кроме дефолтного 51820

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

После QR-кода, информация выглядит так.

screenshot 2022 11 28 163159
VPN на WireGuard + Unbound DNS 2

Тут есть 4 варианта:

  1. Используем QR-код (для мобильных устройств)
  2. Копируем все что в желтом квадрате, вставляем все в новый документ блокнота и сохраняем с разрешением .conf
  3. Копируем все что в желтом квадрате и вставляем в настройке WireGuard (подробнее по ссылке).
  4. Заходим через FTP и копируем файлы .conf по адресу /etc/wireguard/clients

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

apt install mc -y && mc

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

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

Безопасность сервера

Защитим сервер от брутфорса и закроем возможность пинговать сервер:

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, чтобы сохранить.

Внимание! Вместо 51820/udp указываем тот порт, который мы указали ранее, при установке
ufw allow 51820/udp && ufw allow 53 && ufw allow 22 && ufw limit 22/tcp && ufw enable -y

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

 nano /etc/ufw/before.rules

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

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

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

На этом все, но в некоторых случаях VPN или обновления не работают

Если VPN или обновления не работают?

Тогда действуем согласно схеме ниже:

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

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

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

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

ufw reload

И напоследок, обновим и почистим сервер.

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

Добрый день!
«На этом все, но в некоторых случаях VPN после этого не работает…» — почему может такое случаться?