GNU/Linux >> Tutoriales Linux >  >> Panels >> OpenVPN

Cómo monitorear conexiones OpenVPN usando la herramienta openvpn-monitor

En este tutorial, vamos a aprender cómo monitorear conexiones OpenVPN usando la herramienta openvpn-monitor. Este tutorial se enfoca en monitorear las conexiones OpenVPN establecidas usando OpenVPN Community Edition. OpenVPN CE proporciona un estándar de facto para crear conexiones VPN seguras a través de Internet utilizando un protocolo de seguridad personalizado que utiliza SSL/TLS.

Mientras buscaba en Internet las herramientas que se pueden usar para monitorear las conexiones OpenVPN activas, encontré una herramienta basada en Python llamada openvpn-monitor que utiliza la interfaz de administración de OpenVPN para generar un informe html que muestra el estado de un servidor OpenVPN, incluidos todos los actuales. conexiones

Cómo monitorear conexiones OpenVPN usando la herramienta openvpn-monitor

Requisitos

Antes de que pueda continuar, hay algunas cosas que deben configurarse.

Instalar y configurar el servidor OpenVPN

Por supuesto, puede querer monitorear las conexiones del servidor OpenVPN sin tener un servidor OpenVPN en ejecución. Siga los enlaces a continuación para instalar y configurar el servidor OpenVPN en los sistemas CentOS/Ubuntu;

Instale y configure el servidor OpenVPN en CentOS 8

Instale y configure el servidor OpenVPN en Ubuntu 20.04

Habilitar interfaz de administración

openvpn-monitor herramientas requiere que la interfaz de administración de OpenVPN esté habilitada. La interfaz de administración de OpenVPN permite que OpenVPN se controle administrativamente desde un programa externo a través de un socket de dominio TCP o Unix. El servidor de administración OpenVPN se puede habilitar en un socket Unix o en un puerto TCP designado. Si bien el uso del socket Unix es el método recomendado, la herramienta openvpn-monitor utiliza la conexión TCP de la interfaz de administración OpenVPN. Por lo tanto, se recomienda enfáticamente que establezca la IP de la interfaz de administración de OpenVPN en 127.0.0.1 (localhost) para restringir la accesibilidad del servidor de administración a los clientes locales.

La conexión TCP de la interfaz de administración de OpenVPN se puede habilitar editando el archivo de configuración del servidor de OpenVPN y agregando la línea, management IP port .

vim /etc/openvpn/server/server.conf
...
comp-lzo
persist-key
persist-tun
status /var/log/openvpn/openvpn-status.log
log-append  /var/log/openvpn/openvpn.log
verb 3
explicit-exit-notify 1
auth SHA512
# Enable OpenVPN Management Interface on localhost using TCP port 17562
management 127.0.0.1 17562

La línea;

management 127.0.0.1 17562

Establece la dirección IP de la interfaz de administración de OpenVPN en 127.0.0.1 (localhost) y el puerto TCP 17562. El monitor openvpn espera que la interfaz de administración de OpenVPN escuche en el puerto TCP 5555. Lo cambiaremos más adelante.

Verifique que el puerto asignado no esté siendo utilizado por ningún otro programa en su sistema;

lsof -i :17562

Si ninguna aplicación está usando el puerto, reinicie el servicio del servidor OpenVPN;

systemctl restart [email protected]

Verifique que el puerto ahora esté abierto;

lsof -i :17562
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
openvpn 44178 root    3u  IPv4 189028      0t0  TCP localhost:17562 (LISTEN)

Asegúrese de que el servicio del servidor OpenVPN se esté ejecutando;

systemctl status [email protected]
[email protected] - OpenVPN service for server
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-08-16 16:15:46 UTC; 1h 15min ago
       Docs: man:openvpn(8)
             https://community.openvpn.net/openvpn/wiki/Openvpn24ManPage
             https://community.openvpn.net/openvpn/wiki/HOWTO
   Main PID: 44178 (openvpn)
     Status: "Initialization Sequence Completed"
      Tasks: 1 (limit: 2282)
     Memory: 1.9M
     CGroup: /system.slice/system-openvpn\x2dserver.slice/[email protected]
             └─44178 /usr/sbin/openvpn --status /run/openvpn-server/status-server.log --status-version 2 --suppress-timestamps --config server.conf

Aug 16 16:15:46 ubuntu20.kifarunix-demo.com systemd[1]: Starting OpenVPN service for server...
Aug 16 16:15:46 ubuntu20.kifarunix-demo.com systemd[1]: Started OpenVPN service for server.

Instalar y configurar la herramienta openvpn-monitor

Existen diferentes métodos para instalar la herramienta openvpn-monitor como se describe en el repositorio de Github del programa. En este tutorial, usaremos Apache para servir las conexiones OpenVPN de openvpn-monitor.

Instalar Apache para openvpn-monitor

Instale Apache y las dependencias requeridas del paquete;

apt install git apache2 libapache2-mod-wsgi python3-geoip2 python3-ipaddr python3-humanize python3-bottle python3-semantic-version geoip-database geoipupdate

Descargar el programa openvpn-monitor

A continuación, clone el repositorio Github de openvpn-monitor en el directorio raíz de su servidor web predeterminado. En esta configuración, usamos, /var/www/html/openvpn-monitor directorio.

git clone https://github.com/furlongm/openvpn-monitor.git /var/www/html/openvpn-monitor
ls /var/www/html/openvpn-monitor/
AUTHORS COPYING images MANIFEST.in openvpn-monitor.conf.example openvpn-monitor.py README.md requirements.txt setup.py tests VERSION.txt

Configurar monitor-openvpn

Cambie el nombre del archivo de configuración de muestra, openvpn-monitor.conf.example a openvpn-monitor.conf .

cp /var/www/html/openvpn-monitor/openvpn-monitor.conf{.example,}

Reemplace la interfaz de administración de OpenVPN si la cambió a un puerto diferente al 5555 definido en openvpn-monitor.py Programa Python.

cd /var/www/html/openvpn-monitor
grep -irl 5555 . | xargs -I {} sed -i 's/5555/17562/' {}

A continuación, ahora puede abrir el archivo de configuración y establecer el nombre del sitio, agregar un logotipo, establecer la ubicación predeterminada del mapa (latitud y longitud, por defecto es Nueva York, EE. UU.).

Así es como se ve nuestro archivo de configuración modificado;

cat /var/www/html/openvpn-monitor/openvpn-monitor.conf
[openvpn-monitor]
site=Kifarunix-demo-VPN
#logo=logo.jpg
latitude=11.016844
longitude=76.955833
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S

[VPN1]
host=localhost
port=17562
name=Kifarunix-demo VPN
show_disconnect=False

Anote la ubicación de la base de datos de ciudades GeoIP2. Si no está disponible en su sistema, regístrese y descargue una versión gratuita de MaxMind.

Una cosa más es que esta configuración se prueba en Ubuntu 20.04, siendo Python 3 el predeterminado. Dado que openvpn-monitor usa python, simplemente cree un enlace simbólico de python 3 a python;

ln -s /usr/bin/python3 /usr/bin/python

Configurar Apache para ejecutar el script openvpn-monitor

A continuación, ejecute el siguiente comando para configurar Apache para ejecutar el script de Python openvpn-monitor.

vim /etc/apache2/sites-available/openvpn-monitor.conf
ScriptAlias / /var/www/html/openvpn-monitor/openvpn-monitor.py
<Directory /var/www/html/openvpn-monitor>
	Options +ExecCGI
	AddHandler cgi-script .py
	DirectoryIndex openvpn-monitor.py

	AllowOverride None
	Require ip 192.168.0.0/16
</Directory>

Guarde y salga del archivo de configuración.

Establezca la propiedad del directorio raíz web de openvpn-monitor en el usuario de Apache, www-data .

chown -R www-data: /var/www/html/openvpn-monitor/

Compruebe la sintaxis de configuración de Apache;

apachectl -t
Syntax OK

Habilite la configuración del sitio Apache openvpn-monitor y deshabilite el sitio predeterminado.

a2ensite openvpn-monitor.conf
a2dissite 000-default.conf

Inicie Apache y permita que se ejecute en el arranque del sistema;

systemctl enable --now apache2

Depuración de openvpn-monitor

Puede ejecutar openvpn-monitor desde la línea de comandos para verificar si realmente genera el informe html correctamente:

cd /var/www/html/openvpn-monitor
python openvpn-monitor.py

También puede agregar la opción -d para la depuración;

python openvpn-monitor.py -d

Salida de muestra;

...
oms.addListener("click", function(marker) {
   popup.setContent(marker.alt);
   popup.setLatLng(marker.getLatLng());
   map.openPopup(popup);
});
oms.addListener("spiderfy", function(markers) {
   map.closePopup();
});
bounds.extend(centre);
map.fitBounds(bounds);
</script>
</div></div>
<div class="well well-sm">
Page automatically reloads every 5 minutes.
Last update: <b>16/08/2020 19:10:26</b></div>
</div></body></html>
DEBUG:
 === begin vpns
{'VPN1': {'host': 'localhost',
          'name': 'Staff VPN',
          'port': '17562',
          'release': 'OpenVPN 2.4.7 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] '
                     '[LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Sep  '
                     '5 2019',
          'sessions': {},
          'show_disconnect': False,
          'socket_connected': True,
          'state': {'connected': 'CONNECTED',
                    'local_ip': IPv4Address('10.8.0.1'),
                    'mode': 'Server',
                    'remote_ip': '',
                    'success': 'SUCCESS',
                    'up_since': datetime.datetime(2020, 8, 16, 16, 15, 46)},
          'stats': {'bytesin': 0, 'bytesout': 0, 'nclients': 0},
          'version': Version('2.4.7')}}
=== end vpns

Acceso a openvpn-monitor en el navegador

Si todo está bien, ahora puede acceder a sus estadísticas de OpenVPN a través de la dirección http://<OpenVPN-server-Address/openvpn-monitor o http://<OpenVPN-server-Address/ según nuestra redirección.

Y ahí tienes Hermoso, ¿no? Todo el crédito va a furlongm. Como puede ver, tenemos el estado de conexión de mis clientes OpenVPN conectados localmente.

Eso marca el final de nuestra guía sobre cómo monitorear las conexiones OpenVPN usando la herramienta openvpn-monitor. Disfruta.

Referencia

monitor-openvpn

Tutoriales relacionados

Instale y configure el servidor OpenVPN en Ubuntu 20.04

Configurar la autenticación basada en LDAP de OpenVPN

Asigne direcciones IP estáticas para clientes OpenVPN

Configure el cliente VPN strongSwan en Ubuntu 18.04/CentOS 8

OpenVPN
  1. Cómo permitir conexiones remotas a MySQL

  2. Cómo configurar un servidor OpenVPN en Ubuntu 20.04

  3. Cómo configurar un servidor OpenVPN en Ubuntu 18.04

  4. ¿Cómo enviar Ssh a un servidor usando otro servidor?

  5. Cómo instalar OpenVPN en Ubuntu 18.04

Cómo monitorear el rendimiento de Linux usando la herramienta systat

Cómo instalar y configurar un servidor OpenVPN en Ubuntu 22.04

Cómo monitorear el rendimiento del servidor CentOS 8/7 usando Netdata

Cómo reiniciar los servicios del servidor utilizando Plesk Services Monitor

Cómo monitorear las métricas del sistema en tiempo real usando la herramienta Glances en Linux

Cómo configurar el servidor y el cliente VPN de Linux usando OpenVPN