Привет античат !
В этой статье хотелось поделиться опытом настройки
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:
Код:
Код:
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
Чтобы включить опцию на клиенте, добавляем в конец клиентского конфига :
Код:
Теперь при подключении дополнительно будет запрашиваться логин/пароль
Спасибо за внимание !