Назад

Простая установка Outline + WireGuard VPN

Сегодня будем устанавливать VPN WireGuard + Outline, с протоколами WireGuard и Open VPN + Shadowsocks соответственно. И будем делать это максимально просто, но не жертвуя безопасностью.

Почему в этой статье используется именно такая связка WireGuard + Outline?

Wireguard — максимально быстрый (т.е. наименее режет скорость) из существующих VPN. Детектится очень просто, но честно, пофиг на это, лишь бы DNS не утекал провайдеру и соединения шифровалось. Знания того, что человек используют VPN, не делает его информацию раскрытой. Плюс Wireguard в скорости, он режет скорость соединения меньше всего.

Outline — использует протокол Open VPN + Shadowsocks, трафик он маскируется под https соединение и соответственно, используя порт 443 на сервере. Режет скорость, примерно на 40%, но определяется хуже для третьего лица. Плюс его в том, что он маскируется под обычный интернет-трафик.

Казалось бы что достаточно и Wireguard, но т.к. его легче обнаружить по трафику через UDP, его иногда блокируют. Поэтому смысл использовать 2 протоколы — есть.

Общее достоинство — можно создавать бесконечное количество VPN пользователей и открывать доступ в интернет своим родственникам и друзьям.

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

Тестирование скорости сервера (необязательно)

Установка Speedtest — выполните команды последовательно (по строчке)

sudo apt-get install curl
curl -s https://packagecloud.io/install/repositories/ookla/speedtest-cli/script.deb.sh | sudo bash
sudo apt-get install speedtest

запуск

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

Выбор программы SSH

При выборе программы для работы с сервером по SHH я также предлагаю три отличных варианта — это программы Termius и MobaXterm. Третий вариант, он же самый простой — использовать веб-консоль вашего провайдера, например так выглядит панель у Timeweb:

screenshot 2023 08 02 173137

Требования к серверу

Выбор и развертывание сервера происходит в личном кабинете вашего хостинга. Я рекомендую использовать Ubuntu 20 — 22 и не менее 1 Гб RAM, 1 CPU

После того как развернули (создали) сервер на Ubuntu, заходим через терминал SSH или веб-терминал и выполняем ряд команд (копировать — вставить — Enter).

Устанавливаем Wireguard VPN

Обновим сервер:

apt update && apt upgrade -y

Установим Wireguard с выбором опций:

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

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

  1. Выбрать порт — выбирайте любой из диапазона от 5 знаков до значения в 65535. Например, 54562, но не стандартный!
  2. Дать название первому юзеру (любое)
  3. Выбрать DNS-сервер

В конце установки скрипт выдаст QR-код, который можно отсканировать на смартфон, в приложение WireGuard, и начать пользоваться VPN.

Добавляем клиентов (через эту команду управляем в принципе Wireguard):

bash wireguard.sh

Выбираем пункт 1 и называем напр. User. Скрипт сгенерирует ключ и QR-код. Все ключи программа хранит в папке /root/

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

nano /root/user.conf

Скачать приложения можно по ссылке ниже:

Установка Outline VPN

Скачиваем и устанавливаем менеджерский софт Outline:

Выбираем вариант, который я подсветил желтым цветом:

screenshot 2023 02 21 232310

А далее, немного поработаем с терминалом SSH:

sudo apt install curl && sudo curl -sS https://get.docker.com/ | sh
sudo bash -c "$(wget -qO- https://raw.githubusercontent.com/Jigsaw-Code/outline-server/master/src/server_manager/install_scripts/install_server.sh)"

В конце скрипт выдаст нам ссылку, скопируем ее и вставим в приложение менеджера Outline.

Образец ссылки:

{"apiUrl":"https://ip_сервера:27787/Dm9Rv_OhgfujfgfR3QoA","certSha256":"D0A763F2618CDDjhfhjgjhfhukj85FE260C791A8A4C8D489DCD898"}

Далее, установим клиент Ouline по ссылке или с Google play & App store:

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

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

Установка Outline закончена.

Базовая защита сервера

Защитим сервер брутфорса (взлом через перебор паролей):

apt install fail2ban -y && apt install ufw -y && apt install nano -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, пишем тот порт, который мы указали при установке Wireguard. 

Если мы установили только Wireguard

ufw allow 51820/udp && ufw allow 22 && ufw limit 22/tcp && service ufw start && ufw enable 

Если мы установили только Outline

ufw allow 22 && ufw limit 22/tcp && ufw allow 33598/tcp && ufw allow 29843/udp && ufw allow 29843/tcp && service ufw start && ufw enable 

Подтверждаем включение фаервола, 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, чтобы сохранить.

Напоследок, обновим и перезагрузим наш сервер.

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 лет, руководитель многочисленных лабораторий, проф. фотограф и еще хорошо готовлю. Короче очень клевый чувак, пацифист и любитель животных. Единственное, не веган :(
Подписаться
Уведомить о
guest
19 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Roman
Roman
1 год назад

Да, очень просто и эффектно, мне казалось сложнее. Только у меня порты для управления и подключения Outline другие получились — правила для файрволла пришлось поправить.

Я вообще по заголовку подумал было, что можно как-то Outline научить использованию протокола Wireguard. ))

Вячеслав
Вячеслав
1 год назад

Привет! А можешь пост о настройке wireguard, чтобы использовалась ipv6 и набиралось максимально возможное по баллам на https://ipv6-test.com/
Я настраивал вот по этой инструкции свой арендованный https://github.com/angristan/wireguard-install но у меня не завелось, хотя поставщик поддерживает. Нашел интересный вариант с каналом 10 гигабит в Нью-Йорке за 3,5 $ кстати https://www.madcityservers.com/ сам не пробовал пока изза расстояния

Вячеслав
Вячеслав
Ответить на  Dmitrii
1 год назад

Больше для общего развития 🙂 тут много + описано https://habr.com/ru/articles/490378/

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

Добрый день. Я правильно понимаю что при таком раскладе как у вас, мы можем пользоваться или тем или другим? И вместе они никак не могут работать?

Иван
Иван
Ответить на  Андрей
1 год назад

Тоже интересно как заставить их работать вместе

Марк
Марк
1 год назад

Дмитрий, а почему вы рекомендуете сменить стандартный порт WG на другой? У меня уже был настроен WG решением от FireZone. При установке в дополнение Outline и настройке UFW по инструкции WG не может подключится. Открыл 443 порт, 51820 и 22. Так же 80. Если отключить фаервол — все работает.

Марк
Марк
Ответить на  Dmitrii
1 год назад

Я просто не могу понять, почему тогда фаервол не пропускает wireguard. outline пропускает нормально

Андрей
Андрей
7 месяцев назад

У меня на DigitalOcean работал Wireguard, и я в Outline Manager установил Outline тоже на этот сервер. Но оказалось, что у меня теперь два дроплета, один 4$ c WG, другой 6$ с Outline. Можно ли их объединить в один дроплет и как это сделать проще?

Dmitri
Dmitri
7 месяцев назад

Спасибо за статью.
Единственное, нужно добавить подробностей про настройку фаервола для Outline.
При получении ссылки из скрипта в конце будет такой текст.

Make sure to open the following ports on your firewall, router or cloud provider:

— Management port port1, for TCP

— Access key port port2, for TCP and UDP

И именно эти порты нужно указать в настройке фаервола

ufw allow 22 && ufw limit 22/tcp && ufw allow port1/tcp && ufw allow port2/udp && ufw allow port2/tcp && service ufw start && ufw enable