Monitoraggio del traffico HTTP sul server openvpn

1

Ho configurato un server OpenVPN e posso monitorare il traffico HTTP tramite tcpdump. C'è un modo per monitorare anche il traffico HTTPS?

Suggerimenti Certificato SSL autofirmato come certificato di origine sul computer del client VPN.

Se il suggerimento precedente mi consente di monitorare il traffico, specifica come può essere implementato su centOS + OpenVPN.

    
posta Tarek Siddiki 04.04.2016 - 19:04
fonte

1 risposta

0

TL: DR; dovresti configurare un proxy trasparente sul tuo server VPN.

Puoi reindirizzare tutto il traffico in uscita alla porta 443 dal tuo server VPN (che sono, probabilmente, i tuoi client VPN) usando iptables. Successivamente, puoi eseguire un proxy di intercettazione come mitmproxy che si occupa anche del bit SSL.

  • Innanzitutto, reindirizza tutto il traffico web in uscita al proxy locale, ad esempio:

    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
    iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j REDIRECT --to-port 8080
    

    Questo ti rende un proxy trasparente; Ad esempio, il traffico verso tutte le porte web (nei casi sopra indicati, solo la porta 80 e 443, è possibile aggiungerne altre), i client non dovranno impostare un proxy sui loro browser, tuttavia il traffico passa attraverso il proxy.

    Assicurati che il tuo box inoltra il traffico, ma di solito succede già se stai usando OpenVPN (altrimenti non potranno accedere a Internet).

  • In secondo luogo, abbiamo bisogno di impostare un proxy di intercettazione, come MiTM Proxy, questo può essere semplicemente eseguito in modalità trasparente con il parametro -T;

    mitmproxy -T --host
    

    Configura una CA e tale certificato può essere trovato sul server nella directory ~ / .mitmproxy. Quel certificato deve essere distribuito ai tuoi clienti e deve essere considerato affidabile da loro. Il parametro --host garantisce che venga utilizzato il valore dell'intestazione Host.

Questo ti darebbe accesso al traffico HTTP; e dovresti vederlo accadere nella tua schermata MITMProxy. Per gestire una grande quantità di traffico, o memorizzarli, aggiungere il parametro --outfile a mitmproxy per scrivere tutto il traffico su un file. Maggiori informazioni possono essere trovate all'indirizzo link

Alcuni client impediscono la connessione a determinati siti Web SSL (come google), a causa del blocco dei certificati; quindi potrebbe interrompere la funzionalità oppure implementare una regola che non intrappoli queste informazioni. Puoi farlo su MiTMproxy o usando iptables.

Inoltre, per rimanere etici. Dovresti dire ai tuoi utenti che il loro traffico viene monitorato; possono comunque scoprirlo (poiché tutti i certificati saranno "firmati" dalla stessa CA, la tua).

    
risposta data 04.04.2016 - 23:57
fonte

Leggi altre domande sui tag