OpenVPN Python Firewall

Python Firewall

Da un mese a questa parte mi e’ capitato di controllare i logs del mio demone VPN (OpenVPN) e trovare “strani” messaggi tipo questo

an 29 19:32:22 openvpn[1715]: 87.162.209.63:43237 TLS Error: TLS handshake failed
Jan 29 19:32:22 openvpn[1715]: 87.162.209.63:43237 SIGUSR1[soft,tls-error] received, client-instance restarting
Jan 29 19:32:23 openvpn[1715]: 87.162.209.63:6235 TLS Error: TLS key negotiation failed to occur within 60 second

Una rapida ricerca su google sul codice di errore mi porta a pensare che qualcuno sta cercando di autenticarsi sul mio server usando un protocollo diverso rispetto a quello impostato.

La soluzione piu’ ovvia sarebbe quella di cambiare la porta su cui il demone VPN e’ in ascolto (port 1194), con una meno conosciuta… ma purtroppo questo non puo’ essere il mio caso perche’ alcuni miei client hanno tutte le porte bloccate tranne quella di default.

La mia soluzione e’ stata quella scrivere un piccolo script in python il quale ha il compito di leggere il file di log ogni ora (esattamente 12 minuti dopo ogni scoccare di ora)

12 * * * * python /home/unicondor/pythonFirewall/OpenVpnParser.py -s /var/log/openvpn > /home/unicondor/out.txt 2>&1

ed andare a prendere quelli IP che per 50 volta hanno provato ad autenticarsi sul server VPN.

Una volta avuta questa lista, possiamo procedere con l’aggiornare iptables e la chain di INPUT droppando tali ip

# iptables -A INPUT -s ip_to_block -j DROP

Lo script in python e’ disponibile al seguente indirizzo

https://github.com/flaviopace/pythonOpenVpnIpBlocker

Semplice Tunnel Point-To-Point con OpenVPN

Un immagine illustrativa di un Tunnel VPN

Questo articolo nasce dalla necessità che spesso incontrano gli studenti di tutto il mondo per poter eludere i filtri Proxy che spesso non permettono la navigazione sul determinati siti web, oppure semplicemente per nascondere il proprio traffico web da occhi indiscreti utilizzando un tunnel VPN. Sul web girano migliaia di guide ( poche in realtà utilizzano una VPN ed un server SQUID ) su tale argomento.. spero questa sia solo un punto di partenza visto che con tali strumenti potrete fare di tutto 😛

Il Tunnel VPN che mi sono creato è uno dei più semplici dato che ho usato una tipologia Point-To-Point, in modo da avere un collegamento diretto tra il Server ed il singolo Client attraverso la creazione di una chiave statica. Entrambe le macchine hanno un Sistema Operativo Linux ( ma per Mac OS X non cambia assolutamente nulla ) nel mio caso Slackware 13.1

##########                          ##########

#    Server     # ——–VPN———    #      Client     #

#  10.0.0.1    #                           #   10.0.0.2   #

##########                           ##########

Leggi tutto “Semplice Tunnel Point-To-Point con OpenVPN”