Autore: Fabio Di Matteo
Ultima revisione: 02/05/2010
Puo' capitare di avere una rete locale di classe C 192.168.1.0/24 (o con altri indirizzi ip) e dover raggiungere un' altra rete analoga tramite openvpn. Openvpn potrebbe inviare le rotte anche per la rete remota con un comando simile /sbin/route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.9
a questo punto il nostro SO avra' sicuramente dei problemi a trovare il gateway predefinito creando problemi alla nostra rete locale.
Lo script seguente non fa altro che avviare openvpn, cancellare le rotte inviate per la rete 192.168.1.0/24 (da modificare se necessario in base alle esigenze) e rimetterle di nuovo tutte escludendo 192.168.1.1 .
Avviare la vpn
ersuvpn start
Terminare la vpn
ersuvpn stop
PS è senz'altro comodo copiare lo script in /usr/local/bin/
in modo tale da non cercarlo ogni volta che si deve avviare la vpn.
ersuvpn
#!/bin/sh DEVICE=tun0 DIRSCRIPT=/home/fabio/Vpns/ersu/ NET=192.168.1.0/24 NETPREFIX=192.168.1. OPENVPNCONF=$DIRSCRIPT/openvpn.conf PIDFILE=$DIRSCRIPT/openvpn.pid if [ "$1" = "start" ];then echo "Inserire password utente sudo:" cd $DIRSCRIPT sudo openvpn --daemon --config $OPENVPNCONF --writepid $PIDFILE if [ -f $PIDFILE ] ; then sleep 10 sudo ip route del $NET dev $DEVICE for i in `seq 2 254`; do sudo ip route add $NETPREFIX$i dev $DEVICE done echo ; echo "Vpn avviata correttamente." else echo; echo "Impossibile avviare la vpn." fi fi if [ "$1" = "stop" ];then sudo ip route flush dev $DEVICE sudo kill -9 `cat $PIDFILE` rm -f $PIDFILE echo; echo "Vpn terminata." fi
P.S. Qualora non fosse gia' attivato e' necessario attivare sudo per l'utente che lancera' lo script.
Il nostro wiki installa solamente cookie tecnici necessari al funzionamento della piattaforma "Dokuwiki". Niente analitics, statistiche, tracciamenti o altro.