Установка OpenVPN-сервера

Материал из megapuper
Перейти к: навигация, поиск

Установим и настроим Openvpn-сервер, для удалённого подключения клиентов к внутренней сети. Прикрутим к нему мониторинг. Установим web-интерфейс управления сервером, пользователями и сертификатами. Исходная система будет Debian 10. Погнали.

Здесь будет схема планируемой сети

Здесь будет описан процесс установки сервера


Мониторинг

Первым делом включим консоль управления /etc/openvpn/server.conf

management 127.0.0.1 5555


Приложение написано на python, так что устанавливаем необходимые пакеты

# apt install gcc libgeoip-dev python-virtualenv python-dev geoip-database-extra uwsgi uwsgi-plugin-python


Активируем виртуальное окружение, устанавливаем пакет openvpn-monitor и с помощью gunicorn запускаем web-приложение

# mkdir /srv/www/openvpn-monitor
# cd /srv/www/openvpn-monitor
# virtualenv .
# . bin/activate
# pip install --upgrade pip
# pip install openvpn-monitor gunicorn
# gunicorn openvpn-monitor -b 0.0.0.0:8080

Проверяем http://openvpn.domain.com:8080 если открылся дефолтный интерфейс, стопаем и продолжаем настройку.


Готовим конфиг /srv/www/openvpn-monitor/lib/python2.7/site-packages/openvpn-monitor.conf

[OpenVPN-Monitor]
site=Encry
#logo=logo.jpg
latitude=51.30
longitude=39.10
maps=True
geoip_data=/srv/www/openvpn-monitor/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S
show_monitor_ip=True

[VPN1]
host=localhost
port=5555
name=OpenVPN Server
show_disconnect=True
show_vpn_ip=True

Находим на просторах интернета базу GeoLite2-City.mmdb и пихаем её сюда /srv/www/openvpn-monitor/


Настраиваем конфиг uWSGI /etc/uwsgi/apps-available/openvpn-monitor.ini

[uwsgi]
base = /srv/www
project = openvpn-monitor
logto = /var/log/uwsgi/app/%(project).log
plugins = python
chdir = %(base)/%(project)
virtualenv = %(chdir)
module = openvpn-monitor:application
manage-script-name = true
mount=/openvpn-monitor=openvpn-monitor.py

Делаем симлинк и рестартим сервис

# ln -s /etc/uwsgi/apps-available/openvpn-monitor.ini /etc/uwsgi/apps-enabled/
# service uwsgi restart


Устанавливаем nginx и готовим конфиг /etc/nginx/sites-available/openvpn-monitor.conf

server {
   listen 80;
   server_name openvpn.domain.com;
   access_log /var/log/nginx/openvpn-monitor.access.log;
   error_log  /var/log/nginx/openvpn-monitor.error.log;

   location / {
       uwsgi_pass unix:///run/uwsgi/app/openvpn-monitor/socket;
       include uwsgi_params;
   }
}

Делаем симлинк и рестартим сервис

# ln -s /etc/nginx/sites-available/openvpn-monitor.conf /etc/nginx/sites-enabled/ 
# service nginx restart


После этого проверяем работу мониторинга.


При написании использовался данный источник http://openvpn-monitor.openbytes.ie/#configuration