Differences between revisions 6 and 8 (spanning 2 versions)
Revision 6 as of 2006-04-01 08:29:13
Size: 2889
Editor: Kurgan
Comment:
Revision 8 as of 2009-04-12 17:33:26
Size: 3158
Editor: localhost
Comment: converted to 1.6 markup
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
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. 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) ed eventualmente aggiungere openntpd (demone ntp residente) per mantenere l'orologio meglio sincronizzato nel tempo. Il solo ntpd non basta perche` (almeno su White Russian RC5) non e` in grado di impostare l'orologio correttamente se non trova i time server immediatamente al boot.
Line 7: Line 7:
Questi due script servono ad attendere che l'orologio interno sia impostato prima di lanciare openvpn. Questi due script servono ad attendere che l'orologio interno sia impostato prima di lanciare openvpn, di fatto lanciando ntpclient infinite volte fino a che non si e` impostato l'orologio correttamente.

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) ed eventualmente aggiungere openntpd (demone ntp residente) per mantenere l'orologio meglio sincronizzato nel tempo. Il solo ntpd non basta perche` (almeno su White Russian RC5) non e` in grado di impostare l'orologio correttamente se non trova i time server immediatamente al boot.

Questi due script servono ad attendere che l'orologio interno sia impostato prima di lanciare openvpn, di fatto lanciando ntpclient infinite volte fino a che non si e` impostato l'orologio correttamente.

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)