Поделюсь самой одной из самой простой установкой VPN на сервер. Всего у нас будет 3-4 шага. Здесь мы устанавливаем VPN и DNS сервер, который не просто шифрует по DNSSEC, но еще и чистит трафик от трекеров. К тому же потребление ресурсов, при этой установке, крайне мало (хватит 512 мб).
У меня есть другая статья, где установка VPN будет еще немного проще. При этом у нас будет довольно удобная панель управления. Но там нет DNS и DNSSEC, но плюсы, конечно, перевешивают.
А этот способ больше для технарей 🙂
Я не буду предлагать какие-то альтернативы, а предложу самый простой способ поднять свой VPN, максимально быстро и просто.
Что делаем, в шаге 1-2 просто выполняем их, шаг 3 — копируем и вставляем в терминал команды.
Разделы статьи
Выбор хостинга для VPN
Предлагаю вам на выбор 4 хостинга, которые можно использовать для VPN, исходя из своей субъективной оценки. Три ссылки реферальные, так вы сможете и отблагодарить меня, без всяких усилий, если статья вам оказалось полезной.
Установка 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-кода, информация выглядит так.
Тут есть 4 варианта:
- Используем QR-код (для мобильных устройств)
- Копируем все что в желтом квадрате, вставляем все в новый документ блокнота и сохраняем с разрешением .conf
- Копируем все что в желтом квадрате и вставляем в настройке WireGuard (подробнее по ссылке).
- Заходим через 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
Добрый день!
«На этом все, но в некоторых случаях VPN после этого не работает…» — почему может такое случаться?
Как я понимаю, трафик не перенаправлен, поэтому он не идет в нужном направление. Для этого мы и включаем переадресацию, а так же указываем на это фаерволу. Но честно, не вдавался так глубоко в детали, возможно неправильно понимаю. Спасибо за отловку бага с капчей 🙂