Назад

Простая установка 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 пользователей и открывать доступ в интернет своим родственникам и друзьям.

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

Установка 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

Если есть вопросы, дополнения или уточнения — пишите в комментариях!

5 1 голос
Рейтинг статьи
ingenare
ingenare
https://itstar.space
IT Project Manager, организатор IT-конференций в РФ
Подписаться
Уведомить о
guest
19 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Roman
Roman
2 лет назад

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

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

Вячеслав
Вячеслав
2 лет назад

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

Вячеслав
Вячеслав
Ответить на  ingenare
2 лет назад

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

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

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

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

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

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

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

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

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

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

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

Dmitri
Dmitri
1 год назад

Спасибо за статью.
Единственное, нужно добавить подробностей про настройку фаервола для 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 

Политика конфиденциальности сайта