Differences between revisions 4 and 6 (spanning 2 versions)
Revision 4 as of 2006-03-30 13:53:18
Size: 2842
Editor: Kurgan
Comment:
Revision 6 as of 2006-04-01 08:29:13
Size: 2889
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
Per il setup generico di Openvpn, fare riferimento alla configurazione per Linux generica. Su Openwrt, installare il pacchetto "openvpn" e il pacchetto "ntpclient" oppure "openntpd". Per il setup generico di Openvpn, fare riferimento alla configurazione per Linux generica. Su Openwrt, installare il pacchetto "openvpn" e il pacchetto "ntpclient" ed eventualmente "openntpd". Quest'ultimo potrebbe aiutare a tenere l'orologio sincronizzato nel tempo.
Line 25: Line 25:
    echo "Date not set. Running ntpclient again";
    # If you use openntpd, remove the next line, but leave the "sleep 10s" in place.
    echo "Openvpn startup script: Date not set. Running ntpclient again";
Line 30: Line 29:
echo "Date correctly set. Starting openvpn now" echo "Openvpn startup script: Date correctly set. Starting openvpn now"

OpenVpn sul WRT

Per il setup generico di Openvpn, fare riferimento alla configurazione per Linux generica. Su Openwrt, installare il pacchetto "openvpn" e il pacchetto "ntpclient" ed eventualmente "openntpd". Quest'ultimo potrebbe aiutare a tenere l'orologio sincronizzato nel tempo.

Il problema con openvpn sul wrt e` che questo non dispone di un orologio realtime che funzioni a macchina spenta, quindi al boot la data e` impostata al 1/1/2000. Questo impedisce a Openvpn di funzionare. Per risolvere il problema, e` necessario impostare l'ora e la data PRIMA di lanciare openvpn. Si puo` usare ntpclient (che richiede l'ora una sola volta al boot) oppure openntpd (demone ntp residente). La seconda soluzione mi sembra migliore, pero` usa un po` piu` di memoria.

Questi due script servono ad attendere che l'orologio interno sia impostato prima di lanciare openvpn.

Script 1: /etc/init.d/S55openvpn. Questo ha solo lo scopo di lanciarne un altro in background per non fermare il processo di boot.

# this script will simply detach the shell script /sbin/startopenvpn.sh
# to allow the boot process to contiune while openvpn starts in background.
/sbin/startopenvpn.sh &

Script 2: /sbin/startopenvpn.sh. Questo script controlla se la data e` maggiore del 2005, se non lo e` suppone che l'orologio non sia stato impostato, ed esegue ntpclient per impostare la data. Ripete questo ciclo all'infinito fino a che non ottiene una data sensata, quindi lancia openvpn ed esce. Non ha senso secondo me prevedere di uscire dopo un certo numero di cicli falliti, perche` se la data non e` a posto openvpn non funzionera` MAI. Quindi, a meno che il tempo non torni indietro e non torniamo al 2005, non ha senso lanciare openvpn se l'anno dell'orologio non e` almeno 2006. Dal momento che lo script gira in background, non inficia il processo di boot.

# A simple script to run ntpclient multiple times to set the date
# before running openvpn. Useful on devices that do not have an RTC
# and so don't have the right time and date set at boot time.
while [ $((`date +%Y` < 2005 )) = 1 ];
do
    echo "Openvpn startup script: Date not set. Running ntpclient again";
    /usr/sbin/ntpclient -c 1 -s -h pool.ntp.org;
    sleep 10s;
done
echo "Openvpn startup script: Date correctly set. Starting openvpn now"

# loading tun kernel module
insmod tun
# starting openvpn.
cd /etc/openvpn
openvpn --daemon <nome del tunnel> --config <file di config> &

Il nome del tunnel compare in syslog, ed e` per riferimento. Il file di config puo` avere path assoluto oppure essere solo il nome del file stesso, in questo caso viene cercato nella directory corrente.

  • Ricorda di rendere eseguibili gli script altrimenti non funziona molto bene.
  • Ricorda che devi avere "ntpclient" oppure "openntpd" installati.

OpenWrt/WhiteRussian/OpenVpn (last edited 2009-04-12 17:33:26 by localhost)