Установка OpenVPN-сервера — различия между версиями

Материал из megapuper
Перейти к: навигация, поиск
 
(не показана 1 промежуточная версия этого же участника)
Строка 12: Строка 12:
  
  
Устанавливаем необходимые пакеты
+
Приложение написано на python, так что устанавливаем необходимые пакеты
 
  # apt install gcc libgeoip-dev python-virtualenv python-dev geoip-database-extra uwsgi uwsgi-plugin-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
  
# mkdir /srv/www/openvpn-monitor
+
Проверяем http://openvpn.domain.com:8080 если открылся дефолтный интерфейс, стопаем и продолжаем настройку.
# 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.ru:8080 если открылся дефолтный интерфейс, стопаем и продолжаем настройку.
 
  
 +
Готовим конфиг <code>/srv/www/openvpn-monitor/lib/python2.7/site-packages/openvpn-monitor.conf</code>
 +
[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 и пихаем её сюда <code>/srv/www/openvpn-monitor/</code>
  
  
 +
Настраиваем конфиг uWSGI <code>/etc/uwsgi/apps-available/openvpn-monitor.ini</code>
 +
[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 и готовим конфиг <code>/etc/nginx/sites-available/openvpn-monitor.conf</code>
 +
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
 
При написании использовался данный источник http://openvpn-monitor.openbytes.ie/#configuration

Текущая версия на 21:32, 16 мая 2020

Установим и настроим 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