GNU/Linux >> Linux Esercitazione >  >> Panels >> OpenVPN

Come monitorare le connessioni OpenVPN utilizzando lo strumento openvpn-monitor

In questo tutorial impareremo come monitorare le connessioni OpenVPN utilizzando lo strumento openvpn-monitor. Questo tutorial si concentra sul monitoraggio delle connessioni OpenVPN stabilite utilizzando OpenVPN Community Edition. OpenVPN CE fornisce uno standard di fatto per la creazione di connessioni VPN sicure su Internet utilizzando un protocollo di sicurezza personalizzato che utilizza SSL/TLS.

Durante la ricerca in Internet degli strumenti che possono essere utilizzati per monitorare le connessioni OpenVPN attive, mi sono imbattuto in uno strumento basato su Python chiamato openvpn-monitor che utilizza l'interfaccia di gestione di OpenVPN per generare un rapporto html che mostra lo stato di un server OpenVPN, inclusi tutti gli attuali connessioni.

Come monitorare le connessioni OpenVPN utilizzando lo strumento openvpn-monitor

Prerequisiti

Prima di poter procedere, è necessario configurare alcune cose.

Installa e configura il server OpenVPN

Ovviamente potresti voler monitorare le connessioni del server OpenVPN senza avere un server OpenVPN in esecuzione. Segui i link sottostanti per installare e configurare il server OpenVPN su sistemi CentOS/Ubuntu;

Installa e configura il server OpenVPN su CentOS 8

Installa e configura il server OpenVPN su Ubuntu 20.04

Abilita interfaccia di gestione

openvpn-monitor strumenti richiede che l'interfaccia di gestione di OpenVPN sia abilitata. L'interfaccia di gestione di OpenVPN consente il controllo amministrativo di OpenVPN da un programma esterno tramite un socket di dominio TCP o unix. Il server di gestione OpenVPN può essere abilitato su un socket Unix o su una porta TCP designata. Sebbene l'utilizzo del socket Unix sia il metodo consigliato, lo strumento openvpn-monitor utilizza la connessione TCP dell'interfaccia di gestione OpenVPN. Si consiglia pertanto vivamente di impostare l'IP dell'interfaccia di gestione OpenVPN su 127.0.0.1 (localhost) per limitare l'accessibilità del server di gestione ai client locali.

Interfaccia di gestione OpenVPN La connessione TCP può essere abilitata modificando il file di configurazione del server OpenVPN e aggiungendo la riga 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 linea;

management 127.0.0.1 17562

Imposta l'indirizzo IP dell'interfaccia di gestione OpenVPN su 127.0.0.1 (localhost) e la porta TCP 17562. Il monitor openvpn prevede che l'interfaccia di gestione OpenVPN sia in ascolto sulla porta TCP 5555. Lo cambieremo in seguito.

Verifica che la porta assegnata non sia utilizzata da nessun altro programma sul tuo sistema;

lsof -i :17562

Se nessuna applicazione utilizza la porta, riavvia il servizio server OpenVPN;

systemctl restart [email protected]

Verifica che la porta sia ora aperta;

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

Assicurati che il servizio del server OpenVPN sia in esecuzione;

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.

Installa e configura lo strumento openvpn-monitor

Esistono diversi metodi per installare lo strumento openvpn-monitor come indicato nel repository Github del programma. In questo tutorial, useremo Apache per gestire le connessioni OpenVPN di openvpn-monitor.

Installa Apache per openvpn-monitor

Installa Apache e le dipendenze del pacchetto richieste;

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

Scarica il programma openvpn-monitor

Quindi, clona il repository Github di openvpn-monitor nella directory principale del server Web predefinito. In questa configurazione utilizziamo /var/www/html/openvpn-monitor directory.

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

Configura openvpn-monitor

Rinominare il file di configurazione di esempio, openvpn-monitor.conf.example a openvpn-monitor.conf .

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

Sostituisci l'interfaccia di gestione di OpenVPN se l'hai modificata in una porta diversa da 5555 definita su openvpn-monitor.py Programma Python.

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

Successivamente, puoi ora aprire il file di configurazione e impostare il nome del sito, aggiungere un logo, impostare la posizione predefinita della mappa (latitudine e longitudine, impostazione predefinita su New York, USA).

Ecco come appare il nostro file di configurazione modificato;

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

Prendere nota della posizione del database della città GeoIP2. Se non è disponibile sul tuo sistema, registrati e scarica una versione gratuita da MaxMind.

Un'altra cosa è che questa configurazione è testata su Ubuntu 20.04, con python 3 come predefinito. Poiché openvpn-monitor utilizza python, crea semplicemente un collegamento simbolico da python 3 a python;

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

Configura Apache per eseguire lo script openvpn-monitor

Quindi, esegui il comando seguente per configurare Apache in modo che esegua lo script 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>

Salva ed esci dal file di configurazione.

Imposta la proprietà della directory principale web openvpn-monitor sull'utente Apache, www-data .

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

Controlla la sintassi della configurazione di Apache;

apachectl -t
Syntax OK

Abilita la configurazione del sito Apache openvpn-monitor e disabilita il sito predefinito.

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

Avvia Apache e abilitalo all'esecuzione all'avvio del sistema;

systemctl enable --now apache2

Debug di openvpn-monitor

Puoi eseguire openvpn-monitor dalla riga di comando per verificare se genera effettivamente il rapporto html correttamente:

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

Puoi anche aggiungere l'opzione -d per il debug;

python openvpn-monitor.py -d

Esempio di output;

...
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

Accesso a openvpn-monitor sul browser

Se tutto va bene, ora puoi accedere alle tue statistiche OpenVPN tramite l'indirizzo http://<OpenVPN-server-Address/openvpn-monitor o http://<OpenVPN-server-Address/ secondo il nostro reindirizzamento.

Ed ecco qua. Bello, vero? Tutto il merito va a furlongm. Come puoi vedere, abbiamo lo stato della connessione per i miei client OpenVPN connessi localmente.

Questo segna la fine della nostra guida su come monitorare le connessioni OpenVPN utilizzando lo strumento openvpn-monitor. Divertiti.

Riferimento

openvpn-monitor

Esercitazioni correlate

Installa e configura il server OpenVPN su Ubuntu 20.04

Configura l'autenticazione basata su LDAP OpenVPN

Assegna indirizzi IP statici ai client OpenVPN

Configura il client VPN strongSwan su Ubuntu 18.04/CentOS 8

OpenVPN
  1. Come consentire connessioni remote a MySQL

  2. Come configurare un server OpenVPN su Ubuntu 20.04

  3. Come configurare un server OpenVPN su Ubuntu 18.04

  4. Come eseguire Ssh su un server utilizzando un altro server??

  5. Come installare OpenVPN su Ubuntu 18.04

Come monitorare le prestazioni di Linux utilizzando lo strumento systat

Come configurare e configurare un server OpenVPN su Ubuntu 22.04

Come monitorare le prestazioni del server CentOS 8/7 utilizzando Netdata

Come riavviare i servizi del server utilizzando Plesk Services Monitor

Come monitorare le metriche di sistema in tempo reale utilizzando lo strumento Sguardi su Linux

Come configurare il server e il client VPN Linux utilizzando OpenVPN