Come visualizzare gli utenti connessi per aprire il server VPN?


59

Sto sviluppando un sito Web per la gestione degli utenti OpenVPN con il framework Django. Ma devo sapere c'è un modo per estrarre gli utenti attivi da OpenVPN? Il mio server esegue Ubuntu 12.04.

Risposte:


84

Dovrebbe esserci un registro di stato che puoi guardare per mostrarti, il mio è, per esempio:

cat /etc/openvpn/openvpn-status.log

MODIFICARE:

In alternativa, aggiungendo il flag --management IP port [pw-file]o aggiungendo la stessa direttiva alla tua server.conf, ad esempio:

management localhost 7505

Ciò ti consentirebbe di telnetare su quella porta e ti offrirà un elenco di comandi da eseguire:

telnet localhost 7505

help


1
Grazie ma c'è un altro modo per non guardare per le modifiche ai file? Ad esempio una libreria che elenca gli utenti connessi?
Hamid FzM,

1
@HamidFzM non sono sicuro di una libreria, puoi usare l'interfaccia di gestione che ho aggiunto come modifica; per favore non usare un IP diverso da localhost in quanto sarebbe sicuramente un danno per la tua sicurezza
c4urself

@ c4urself, il mio output per .log è: bit.ly/1ORnsYp Dove posso vedere gli utenti connessi? È possibile vedere gli IP assegnati loro tramite questo .log?
Maxim V. Pavlov,

@ MaximV.Pavlov sembra che nessuno sia collegato al tuo caso. Sì, vengono visualizzati gli indirizzi IP.
c4urself,

2
/etc/openvpn/openvpn-status.lognon ha funzionato per me su Debian, non è mai cambiato, invece /var/run/openvpn/server.statusha funzionato perfettamente.
Nelson,

20

Per completare la risposta di @sekrett :

killall -USR2 openvpn ; tail -f /var/log/syslog

Continuerà a funzionare, non è un'uccisione "normale", solo una richiesta per stampare alcune statistiche.

Le statistiche visualizzate sono molto leggibili. Uscita campione:

Oct 14 07:34:14 vpn2 openvpn[20959]: Updated,Fri Oct 14 07:34:14 2016
Oct 14 07:34:14 vpn2 openvpn[20959]: Common Name,Real Address,Bytes Received,Bytes Sent,Connected Since
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.132,hostname1,213.219.XXX.XXX:63765,Fri Oct 14 07:25:01 2016
Oct 14 07:26:26 vpn2 openvpn[20959]:
10.8.0.242,hostname2,213.219.XXX.XXX:62416,Sun Sep 25 03:49:19 2016

Grazie per il miglioramento. La mia risposta era giusta ma manca un esempio e una spiegazione. :)
sekrett,

7

Ho avuto lo stesso bisogno di me stesso e la soluzione più semplice che ho scoperto è stata quella di utilizzare come detto telnet per connettersi all'interfaccia di gestione (dovrete aggiungere: management localhost 6666 , nel file di configurazione del server).

Per ottenere il numero esatto di client puoi fare:

  • telnet localhost 6666
  • stato

Quindi otterrai molti registri:

10.9.10.11,test-docker,52.58.48.98:56859,Wed May  4 09:37:34 2016
10.9.7.45,test-docker,52.58.156.80:38774,Wed May  4 09:36:59 2016
10.9.1.103,test-docker,52.58.161.230:52201,Wed May  4 09:35:47 2016
GLOBAL STATS
Max bcast/mcast queue length,0
END
>CLIENT:ESTABLISHED,19845
>CLIENT:ENV,n_clients=19361
>CLIENT:ENV,time_unix=1462357164
  • cerca =>> CLIENTE: ENV, n_clients = 19361

Nel mio caso, dato che ho un numero molto elevato di client, l'utilizzo del file di registro non è sicuramente molto pratico.


il tuo comando di stato mi ha aiutato, grazie
Mohammed Noureldin,

4

Puoi anche inviare il segnale usr2 al processo openvpn per farlo scrivere informazioni statistiche su syslog. Questo è sicuro, non è necessario riavviare nel caso in cui non sia stata abilitata l'interfaccia di gestione prima.


puoi scrivere un comando per questo?
Shayan_Aryan,

1
@MichaelC ha scritto: killall -USR2 openvpn. Quindi guarda i registri. Potrebbe essere /var/log/syslogo in /var/log/messagesbase alla distribuzione.
sekrett,

ma non uccide openvpn?
Shayan_Aryan,

killil comando può inviare segnali diversi, USR2 non ucciderà, è solo un segnale. Puoi vedere un elenco qui: linux.org/threads/kill-signals-and-commands-revised.11625 o eseguendo kill -l.
sekrett,

L'ho appena provato. Non fornisce le informazioni sul conteggio dei client connessi
Shayan_Aryan,

4

Gestisco i server OpenVPN dei nostri amici e il modo in cui vedo le connessioni attive è come questo,

aggiungere a /etc/openvpn/server.conf

management 127.0.0.1 5555

riavvia il server openvpn

systemctl restart openvpn@server.service

aggiungere un pacchetto Python di OpenVPN Monitor: verrà eseguito tramite un server Web Gunicorn e mostrerà connessioni attive,

mkdir /opt/openvpn-monitor

creare un ambiente virtuale (non richiesto ma buona pratica con i pacchetti py)

cd /opt/openvpn-monitor
virtualenv venv
source venv/bin/activate

installa i pacchetti richiesti

pip install openvpn-monitor gunicorn

aggiungere un file di configurazione di Monitor

vi /opt/openvpn-monitor/openvpn-monitor.conf

[openvpn-monitor]
site=your-openvpn-site
#logo=logo.jpg
#latitude=40.72
#longitude=-74
maps=True
geoip_data=/var/lib/GeoIP/GeoLite2-City.mmdb
datetime_format=%d/%m/%Y %H:%M:%S

[VPN1]
host=localhost
port=
name=Your VPN Server Name
show_disconnect=False

avviare il web server che mostrerà le connessioni attive,

gunicorn openvpn-monitor -b 0.0.0.0:80 --name openvpn-monitor --daemon

Per fermare il monitor

pkill gunicorn 

per vedere le connessioni attive, vai all'IP pubblico del tuo server VPN

http://<ip of openvpn server>

assicurati di configurare il firewall adeguato per la porta 80, autorizza solo gli IP in entrata fidati

inserisci qui la descrizione dell'immagine


1

Basta usare sacli con il seguente comando. Questo elencherà i client VPN collegati.

/usr/local/openvpn_as/scripts/sacli VPNSummary
{
"n_clients": 15
}

Per vedere tutti gli IP usa questa opzione. ./sacli VPNStatus

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.