GNU/Linux >> Znalost Linux >  >> Panels >> OpenVPN

Jak monitorovat připojení OpenVPN pomocí nástroje openvpn-monitor

V tomto tutoriálu se naučíme, jak monitorovat připojení OpenVPN pomocí nástroje openvpn-monitor. Tento tutoriál se zaměřuje na monitorování připojení OpenVPN vytvořených pomocí OpenVPN Community Edition. OpenVPN CE poskytuje de-facto standard pro vytváření bezpečných VPN připojení přes internet pomocí vlastního bezpečnostního protokolu, který využívá SSL/TLS.

Při hledání nástrojů, které lze použít ke sledování aktivních připojení OpenVPN na internetu, jsem narazil na nástroj založený na pythonu s názvem openvpn-monitor, který využívá rozhraní pro správu OpenVPN ke generování html zprávy, která zobrazuje stav serveru OpenVPN, včetně všech aktuálních spojení.

Jak monitorovat připojení OpenVPN pomocí nástroje openvpn-monitor

Předpoklady

Než budete moci pokračovat, je třeba nastavit několik věcí.

Nainstalujte a nakonfigurujte OpenVPN Server

Samozřejmě můžete chtít sledovat připojení k serveru OpenVPN, aniž byste měli spuštěný server OpenVPN. Pomocí níže uvedených odkazů nainstalujte a nastavte server OpenVPN na systémech CentOS/Ubuntu;

Nainstalujte a nastavte OpenVPN Server na CentOS 8

Nainstalujte a nastavte OpenVPN Server na Ubuntu 20.04

Povolit rozhraní pro správu

openvpn-monitor nástroje vyžadují, aby bylo povoleno rozhraní pro správu OpenVPN. Rozhraní správy OpenVPN umožňuje správu OpenVPN z externího programu přes TCP nebo unix doménový socket. Server pro správu OpenVPN lze povolit na soketu Unix nebo na určeném portu TCP. Zatímco použití soketu Unix je doporučenou metodou, nástroj openvpn-monitor využívá připojení TCP rozhraní pro správu OpenVPN. Proto důrazně doporučujeme nastavit IP rozhraní pro správu OpenVPN na 127.0.0.1 (localhost), abyste omezili přístup k serveru pro správu místním klientům.

Rozhraní pro správu OpenVPN Připojení TCP lze povolit úpravou konfiguračního souboru serveru OpenVPN a přidáním řádku, 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

Řádek;

management 127.0.0.1 17562

Nastaví IP adresu rozhraní správy OpenVPN na 127.0.0.1 (localhost) a port TCP 17562. Openvpn-monitor očekává, že rozhraní správy OpenVPN bude naslouchat na portu TCP 5555. Později to změníme.

Zkontrolujte, zda přiřazený port nepoužívá žádný jiný program ve vašem systému;

lsof -i :17562

Pokud port nepoužívá žádná aplikace, restartujte službu serveru OpenVPN;

systemctl restart [email protected]

Zkontrolujte, zda je port nyní otevřený;

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

Ujistěte se, že služba serveru OpenVPN běží;

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.

Instalace a nastavení nástroje openvpn-monitor

Existují různé způsoby instalace nástroje openvpn-monitor, jak je uvedeno v úložišti programu Github. V tomto tutoriálu použijeme Apache k serveru připojení openvpn-monitor OpenVPN.

Nainstalujte Apache pro openvpn-monitor

Nainstalujte Apache a požadované závislosti balíčku;

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

Stáhněte si program openvpn-monitor

Dále naklonujte úložiště Github openvpn-monitor do výchozího kořenového adresáře webového serveru. V tomto nastavení používáme /var/www/html/openvpn-monitor adresář.

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

Nakonfigurujte openvpn-monitor

Přejmenujte ukázkový konfigurační soubor, openvpn-monitor.conf.example na openvpn-monitor.conf .

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

Nahraďte rozhraní pro správu OpenVPN, pokud jste jej změnili na jiný port než 5555 definovaný na openvpn-monitor.py Program Python.

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

Nyní můžete otevřít konfigurační soubor a nastavit název webu, přidat logo, nastavit výchozí umístění mapy (zeměpisnou šířku a délku, výchozí je New York, USA).

Takto vypadá náš upravený konfigurační soubor;

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

Všimněte si umístění GeoIP2 City Database. Pokud není ve vašem systému k dispozici, zaregistrujte se a stáhněte si bezplatnou verzi z MaxMind.

Ještě jedna věc je, že toto nastavení je testováno na Ubuntu 20.04, přičemž python 3 je výchozí. Protože openvpn-monitor používá python, jednoduše vytvořte symbolický odkaz z pythonu 3 na python;

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

Nakonfigurujte Apache pro spouštění skriptu openvpn-monitor

Dále spusťte níže uvedený příkaz a nakonfigurujte Apache tak, aby spouštěl skript openvpn-monitor Python.

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>

Uložte a ukončete konfigurační soubor.

Nastavte vlastnictví kořenového webového adresáře openvpn-monitor na uživatele Apache, www-data .

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

Zkontrolujte syntaxi konfigurace Apache;

apachectl -t
Syntax OK

Povolte konfiguraci webu Apache openvpn-monitor a deaktivujte výchozí web.

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

Spusťte Apache a povolte jeho spuštění při spouštění systému;

systemctl enable --now apache2

Ladění openvpn-monitor

Openvpn-monitor můžete spustit z příkazového řádku a zkontrolovat, zda skutečně generuje html sestavu správně:

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

Můžete také přidat možnost -d pro ladění;

python openvpn-monitor.py -d

Ukázkový výstup;

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

Přístup k openvpn-monitor v prohlížeči

Pokud je vše v pořádku, můžete nyní přistupovat ke statistikám OpenVPN prostřednictvím adresy http://<OpenVPN-server-Address/openvpn-monitor nebo http://<OpenVPN-server-Address/ podle našeho přesměrování.

A tady to je. Krásné, že? Veškeré zásluhy patří furlongm. Jak můžete vidět, máme stav připojení pro mé lokálně připojené klienty OpenVPN.

To znamená konec našeho průvodce, jak monitorovat připojení OpenVPN pomocí nástroje openvpn-monitor. Užijte si to.

Reference

openvpn-monitor

Související výukové programy

Nainstalujte a nastavte OpenVPN Server na Ubuntu 20.04

Nakonfigurujte OpenVPN LDAP Based Authentication

Přiřaďte klientům OpenVPN statické IP adresy

Nakonfigurujte klienta strongSwan VPN na Ubuntu 18.04/CentOS 8

OpenVPN
  1. Jak povolit vzdálená připojení k MySQL

  2. Jak SSH na server pomocí jiného serveru?

  3. Jak nainstalovat OpenVPN na Ubuntu 18.04

  1. Jak nastavit server OpenVPN na Ubuntu 20.04

  2. Jak nastavit server OpenVPN na Ubuntu 18.04

  3. Jak nastavit server OpenVPN na CentOS 7

  1. Jak nastavit server OpenVPN na Debianu 9

  2. Nastavte linuxový VPN server pomocí OpenVPN – průvodce krok za krokem

  3. Jak monitorovat váš Linux Server pomocí osquery