Openvpn: differenze tra le versioni

Riga 346: Riga 346:
Arrivati a questo punto il servizio prescelto dovrebbe essere normalmente raggiungibile attraverso la nostra interfaccia internet, tuttavia è importante sottolineare quanto segue:
Arrivati a questo punto il servizio prescelto dovrebbe essere normalmente raggiungibile attraverso la nostra interfaccia internet, tuttavia è importante sottolineare quanto segue:
# Le rotte e le regole create non sono permanenti, ovvero andranno perse al momento di un eventuale riavvio, quindi in tale caso l'utente dovrà nuovamente ripetere la procedura qui descritta. Il problema dovrebbe essere ovviabile dichiaranto opportunamente i precedenti comandi nel file <code>/etc/network/interfaces</code>.
# Le rotte e le regole create non sono permanenti, ovvero andranno perse al momento di un eventuale riavvio, quindi in tale caso l'utente dovrà nuovamente ripetere la procedura qui descritta. Il problema dovrebbe essere ovviabile dichiaranto opportunamente i precedenti comandi nel file <code>/etc/network/interfaces</code>.
# Se non si dispone di un IP pubblico statico, ma solo dinamico, sarà necessario eliminare e dichiarare nuovamente il comando descritto al punto 3 ogni volta che detto IP pubblico cambia. A tale fastidio si può ovviare sostituendo alla regola del punto 3 una dichiarazione basata sull'uso dell'opzione <code>fwmark</code> e del target <code>mark</code> di IPtables, oppure creando uno script che ad intervalli regolari verifica il proprio IP pubblico attuale ed eventualmente aggiorna rotte e regole come necessario.
# Se non si dispone di un IP pubblico statico, ma solo dinamico, sarà necessario eliminare e dichiarare nuovamente il comando descritto al punto 3 ogni volta che detto IP pubblico cambia. A tale fastidio si può ovviare sostituendo alla regola del punto 3 una dichiarazione basata sull'uso dell'opzione <code>fwmark</code> e del target <code>mark</code> di IPtables, oppure creando uno script che ad intervalli regolari verifica il proprio IP pubblico attuale ed eventualmente aggiorna rotte e regole come necessario. A puro titolo esemplificativo si mostra lo script usato da chi scrive (e quindi ritagliato sulla propria specifica configurazione macchina):
<pre>
#!/bin/bash
# CRON: */5 * * * * /percorso/script/nome_script.sh
PPP=$(ip addr | grep 'ppp0')
IPO=$(ip rule | grep '32765' | tr -d '[a-z ]' | sed 's/32765:\t//1')
TAB=$(ip route show table tab1)
DATA=$(date +'%b %d %T')" nome_host nome_script.sh: "
# Check first if secondary routing table is empty
if [ "$TAB" = '' ]
then
ip route add default dev ppp0 table tab1
# Next command is necessary to be able to connect to the web server using my fqdn, like "blabla.fornitore.net"
# from inside the LAN
ip route add 192.168.1.0/24 dev br0 src 192.168.1.172 table tab1
MSG1=$DATA"secondary routing table was empty, added ppp0 as default gateway."
else
MSG1=$DATA"secondary routing table was not empty, nothing to do."
fi
echo $MSG1 >> /var/log/syslog
# Check now if ppp0 inet ip has changed
if [ "$PPP" != '' ]
then
IPN=$(ip -f inet addr show ppp0 | grep -Po 'inet \K[\d.]+')
if [ "$IPN" != "$IPO" ] && [ "$IPN" != "" ]
then
if [ "$IPO" = '' ]
then
MSG0=" (missing secondary routing table rule)"
else
MSG0=" (secondary routing table rule found)"
ip rule del table tab1
fi
ip rule add from $IPN table tab1
MSG2=$DATA"IP changed from "$IPO" to "$IPN$MSG0". Rule updated."
else
MSG2=$DATA"IP ($IPO / $IPN) has not changed, nothing to do."
fi
else
MSG2=$DATA"failed to read inet address (is interface up?)."
fi
echo $MSG2 >> /var/log/syslog
</pre>


=== File di configurazione ===
=== File di configurazione ===
2 853

contributi