PDA

Просмотр полной версии : Свой OpenVPN сервер на VPS Ubuntu


JackSparrow
01.02.2022, 21:50
Привет античат !

https://forum.antichat.xyz/attachments/4916016/1643734830936.png

В этой статье хотелось поделиться опытом настройки VPSи установки/настройки OVPN на Linux Ubuntu 20.04. Начал работать с линукс недавно и в процессе возникали подводные камни, которые вроде бы удалось побороть. В сети достаточно много мануалов по данной теме, но проблема в том, что та или иная инструкция не сработала для меня полностью, пришлось покурить несколько доков и в итоге собрать из них один. Плюс сразу добавить некоторые рекомендации по безопасности сервера. По идее все должно работать с данной ОС без проблем. Клиент подключаю из под WINды, но можно использовать любые другие клиенты, планирую подключать к сети свой смартфон. В итоге получаем свой VPN канал и левый ip-адрес, но пинги увеличатся и скорость передачи данных соответственно упадет (полностью побороть проблему со скорость пока не удалось), что в принципе не сильно заметно при серфинге, просмотре и тд. (зависит от ваших нужд)
Но обо всем по-порядку.

План такой :

1. Начальная (стандартная) настройка VPS сервера на Linux (покупку/админку и тд. рассматривать не буду, там все более-менее понятно)

2. Настройка SSH и подключение по сертификату.
3. Настройка сертификатов/конфигураций сервера и клиента OVPN

Начальная настройка VPS сервера на Linux :

Подключаться буду из под клиента на винде. Для подключения по SSH использую PUTTY и вполне себе доволен этой утилитой. После того как узнали свой айпишник и права от рута, подключаемся к серверу, можно запустить в cmd (если putty была установлена в систему или добавлена в окружение) :

Код:



putty.exe user@server -pw password


Создаем нового пользователя и добавляем в группу sudo :

Код:



adduser античат
usermod -aG sudo античат
su - античат


Проверяем статус брандмауэра и если надо, ключаем :

Код:



ufw status
ufw enable


И вот тут у меня появилась первая проблемка. В общем я отошел по делам, а вернувшись, понял, что коннект из лост и я вообще не могу достучаться до сервера по shh и отваливаюсь по тайм ауту. При условии что ни RDP ни VNC пакеты не установлены, на этом можно было бы и заканчивать настройку и звонить "местным" админам потому как я просто не знал, как же я могу еще попасть на сервак. Благо в админ панели есть браузерная VNC консоль и подключившись, я решил проблему с SSH.

Настройка SSH и подключение по сертификату :

Код:



sudo apt update
sudo apt install openssh-server
sudo systemctl status ssh
sudo ufw allow openssh


Повозившись немного, я начал получать connection refused вместо тайм аута, ну и после полной переустановки пакетов, перезапуска службы и добавления правил фаирвола, вроде как все заработало.

Далее создаем директорию и файл где будут храниться ключи и назначаем им права :

Код:



cd /home/codeby
mkdir .ssh
chmod 700 .ssh
cd .ssh
touch authorized_keys
chmod 600 authorized_keys


Создаем ключи в puttygen и записываем в файл authorized_keys:

https://forum.antichat.xyz/attachments/4916016/1643735414983.png

Код:



cat >> authorized_keys
-----BEGIN CERTIFICATE-----
Тело сертификата
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
Тело сертификата
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
Тело сертификата
-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----
Тело сертификата
-----END CERTIFICATE-----



Все готово. Ставим приложение на клиента и переносим клиентский конфиг (с помощью WinSCPнапример). Должен подняться интерфейс - по дефолту в 10.8.0.0/24 подсети. Весь трафик будет идти через ваш ВПН-сервер.

Вы можете добавить дополнительную защиту, создав пользователя впн в системе и включить дополнительный запрос логина/пароля. Для этого надо найти файл openvpn-plugin-auth-pam.so библиотеки авторизации pluginи добавить в server.conf две строки с указанием директории tmp :

Код:



find / -name "openvpn-*auth-pam*.so" -print
mkdir /etc/openvpn/tmp
chmod 777 /etc/openvpn/tmp
sudo nano /etc/openvpn/server.conf

# добавляем в конфиг сервера
plugin путь до файла/openvpn-plugin-auth-pam.so login
tmp-dir /etc/openvpn/tmp

sudo useradd античат vpn -s /sbin/nologin
sudo passwd античат vpn


Чтобы включить опцию на клиенте, добавляем в конец клиентского конфига :

Код:



auth-user-pass


Теперь при подключении дополнительно будет запрашиваться логин/пароль

Спасибо за внимание !

IvanPupkin
02.02.2022, 21:26
предваритеьная настройка ок, но "Настройка OpenVPN сервер/клиент :" слишком долго. Зачем изобретать велосипед, когда давно существует
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

GitHub - Nyr/openvpn-install: OpenVPN road warrior installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora

OpenVPN road warrior installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora - Nyr/openvpn-install

github.com

JackSparrow
02.02.2022, 21:41
IvanPupkin сказал(а):

предваритеьная настройка ок, но "Настройка OpenVPN сервер/клиент :" слишком долго. Зачем изобретать велосипед, когда давно существует
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

GitHub - Nyr/openvpn-install: OpenVPN road warrior installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora

OpenVPN road warrior installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora - Nyr/openvpn-install

github.com


Ну как минимум чтобы разобраться как он работает и настраивается не из коробки)

MLNK
02.02.2022, 21:52
IvanPupkin сказал(а):

предваритеьная настройка ок, но "Настройка OpenVPN сервер/клиент :" слишком долго. Зачем изобретать велосипед, когда давно существует
wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

GitHub - Nyr/openvpn-install: OpenVPN road warrior installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora

OpenVPN road warrior installer for Ubuntu, Debian, AlmaLinux, Rocky Linux, CentOS and Fedora - Nyr/openvpn-install

github.com


Я согласен с @zvepb (https://forum.antichat.xyz/members/683771/) если всё делать скриптами(не своими) то дальше скиди не продвинешься. Тем более не всегда готовое решение подходит.

dotru
07.03.2022, 23:33
MLNK сказал(а):

Я согласен с @zvepb (https://forum.antichat.xyz/members/683771/) если всё делать скриптами(не своими) то дальше скиди не продвинешься. Тем более не всегда готовое решение подходит.


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

JackSparrow
09.03.2022, 15:36
dotru сказал(а):

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


dotru сказал(а):

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


Иногда лучше вообще не запускать чужие скрипты

dotru
10.03.2022, 10:56
Я про то же

Виталий Ломакин
18.10.2022, 11:50
Спасибо за мануал. Возможно в скором будущем воспользуюсь им.

aslikeme
23.10.2022, 10:54
Добрый день.
Подскажите, если у меня на впс стоит Wireguard, могу я поставить еще рядом OpenVPN что бы они не конфликтовали?