Configurazione di una linea di backup analogica manuale: Difference between revisions
Rimosso openvpn e tolto -e dallo #! |
|||
| (16 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
== Predisposizione della connessione == | == Predisposizione della connessione == | ||
Creare una connessione ppp con ppp-config chiamata " | Creare una connessione ppp con ppp-config chiamata "tiscali" SENZA GESTIONE DEI DNS e testarla: [[Configurazione di un collegamento PPP in Debian]] | ||
== Preparazione degli script ppp-up/down == | == Preparazione degli script ppp-up/down == | ||
| Line 8: | Line 8: | ||
<pre> | <pre> | ||
cat | cat | sudo tee /etc/ppp/ip-up.d/05-sendipaddress > /dev/null <<'EOFile' | ||
#!/bin/sh -e | #!/bin/sh -e | ||
if wget assistenza.rvmgroup.it \ | |||
--quiet \ | |||
-O /tmp/05-sendipaddress \ | |||
--tries=1 \ | |||
--timeout=30 ; then | |||
mail -s "IP $HOSTNAME" gal-alert@rvmgroup.it < /tmp/05-sendipaddress | |||
else | |||
COUNT=$(($COUNT+1)) | exit 1 #COUNT=$(($COUNT+1)) | ||
fi | |||
EOFile | EOFile | ||
</pre> | </pre> | ||
sudo chmod 755 /etc/ppp/ip-up.d/05-sendipaddress | |||
Creare il profilo firewall per la connessione ppp impostando le regole desiderate ('''necessita di iptables-initd_1.0.0-4'''): | Creare il profilo firewall per la connessione ppp impostando le regole desiderate ('''necessita di iptables-initd_1.0.0-4'''): | ||
/etc/iptables- | sudo cp /etc/iptables-initd/start.firewall /etc/iptables-initd/start.ppp0 | ||
sudoedit /etc/iptables-initd/start.ppp0 | |||
Creare il file di restart del firewall: | Creare il file di restart del firewall: | ||
<pre> | <pre> | ||
cat | cat | sudo tee /etc/ppp/ip-up.d/02-firewall > /dev/null <<'EOFile' | ||
#!/bin/bash | #!/bin/bash | ||
/etc/init.d/firewall restart $PPP_IFACE | /etc/init.d/firewall restart $PPP_IFACE | ||
EOFile | EOFile | ||
</pre> | |||
cat | sudo chmod 755 /etc/ppp/ip-up.d/02-firewall | ||
<pre> | |||
cat | sudo tee /etc/ppp/ip-down.d/02-firewall > /dev/null <<EOFile | |||
#!/bin/sh -e | #!/bin/sh -e | ||
/etc/init.d/firewall restart | /etc/init.d/firewall restart | ||
EOFile | EOFile | ||
</pre> | |||
sudo chmod 755 /etc/ppp/ip-down.d/02-firewall | |||
Creare il file di restart per ssh: | Creare il file di restart per ssh: | ||
<pre> | <pre> | ||
cat | cat | sudo tee /etc/ppp/ip-up.d/03-ssh > /dev/null <<EOFile | ||
#!/bin/bash | #!/bin/bash | ||
/etc/init.d/ssh stop | /etc/init.d/ssh stop | ||
/etc/init.d/ssh start | /etc/init.d/ssh start | ||
EOFile | EOFile | ||
chmod 755 /etc/ppp/ip-up.d/03-ssh | </pre> | ||
sudo chmod 755 /etc/ppp/ip-up.d/03-ssh | |||
cat | <pre> | ||
cat | sudo tee /etc/ppp/ip-down.d/03-ssh > /dev/null <<EOFile | |||
#!/bin/bash | #!/bin/bash | ||
/etc/init.d/ssh stop | /etc/init.d/ssh stop | ||
/etc/init.d/ssh start | /etc/init.d/ssh start | ||
EOFile | EOFile | ||
</pre> | </pre> | ||
sudo chmod 755 /etc/ppp/ip-down.d/03-ssh | |||
==Verifica della Configurazione di OpenVPN== | ==Verifica della Configurazione di OpenVPN== | ||
| Line 72: | Line 78: | ||
Dal lato opposto verificare che openvpn '''non''' abbia la direttiva "'''remote'''" | Dal lato opposto verificare che openvpn '''non''' abbia la direttiva "'''remote'''" | ||
==Modifiche | ==Modifiche Opzioni di connessione pppd== | ||
Abilitare il logging ip-up-down: | Abilitare il logging ip-up-down: | ||
touch /var/log/ppp-ipupdown.log | sudo touch /var/log/ppp-ipupdown.log | ||
Sostituire le opzioni di collegamento con queste | |||
('''CAMBIARE LOGIN NAME'''): | |||
<pre> | |||
sudo cp /etc/ppp/peers/tiscali /etc/ppp/peers/libero.bak | |||
cat | sudo tee /etc/ppp/peers/tiscali > /dev/null <<EOFile | |||
# This optionfile was generated by pppconfig 2.3.10. | |||
# | |||
# | |||
hide-password | |||
noauth | |||
connect "/usr/sbin/chat -v -f /etc/chatscripts/tiscali" | |||
debug | |||
/dev/ttyS0 | |||
115200 | |||
defaultroute | |||
noipdefault | |||
user "sagalimberti@tiscali.it" | |||
remotename tiscali | |||
replacedefaultroute | |||
persist | |||
maxfail 0 | |||
EOFile | |||
</pre> | |||
In pratica: | |||
* Abilitare la sostituzione della default route nella connessione: replacedefaultroute | |||
* In caso di caduta della linea, ricomporre: persist | |||
* Ricomporre un umero infinito di volte: maxfail 0 | |||
'''ATTENZIONE:''' a causa di un bug nella versione 2.4.3-20050321+2sarge1 ([http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=374698 #374698]) se la linea cade, muore anche pppd, e non avviene la ricomposizione. | |||
==Test collegamento e script== | ==Test collegamento e script== | ||
Provare ora a fare | Provare ora a fare | ||
pon | sudo pon tiscali | ||
e vedere se si connette e avvia correttamente gli script: | e vedere se si connette e avvia correttamente gli script: | ||
| Line 97: | Line 128: | ||
Il collegamento dovrebbe permettere la stessa operatività. | Il collegamento dovrebbe permettere la stessa operatività. | ||
Verificare che la default route sia settata: | |||
<pre> | |||
route -n | |||
... | |||
Kernel IP routing table | |||
Destination Gateway Genmask Flags Metric Ref Use Iface | |||
151.6.139.54 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 | |||
... | |||
0.0.0.0 151.6.139.54 0.0.0.0 UG 0 0 0 ppp0 | |||
</pre> | |||
Pingare e traceroutare per test. | |||
Disattivare il collegamento | |||
sudo poff tiscali | |||
== Preparazione interfaccia di attivazione == | == Preparazione interfaccia di attivazione == | ||
Creare la shell per l'utente backup-analogico. | Creare la shell per l'utente backup-analogico. | ||
<pre> | <pre> | ||
cat | cat | sudo tee /usr/local/bin/backup-analogico > /dev/null <<'EOFile' | ||
#!/bin/bash | #!/bin/bash | ||
DEBUG=false | |||
clear | clear | ||
echo "================================================================================" | echo "================================================================================" | ||
echo "= | echo "= ATTIVAZIONE LINEA DI BACKUP ANALOGICA =" | ||
echo "================================================================================" | echo "================================================================================" | ||
echo -e "\n" | echo -e "\n" | ||
| Line 118: | Line 165: | ||
echo -e "\n" | echo -e "\n" | ||
if [[ ("$RISP" == "s" || "$RISP" == "S") ]]; then | if [[ ("$RISP" == "s" || "$RISP" == "S") ]]; then | ||
sudo /sbin/ifdown eth1 > /dev/null 2>&1 | |||
sudo pon tiscali | |||
clear | |||
echo "============================================================================" | |||
echo "= LINEA DI BACKUP ANALOGICA IN ATTIVAZIONE .... =" | |||
echo "= ATTENDERE 40 SECONDI =" | |||
echo "============================================================================" | |||
sleep 40 | |||
KEY="" | |||
while [ -z "$KEY" ] | |||
do | |||
PPP_IP=`/sbin/ifconfig ppp0 2>&1 | grep "inet addr:" | cut -f2 --delim=":" | cut -f1 --delim=" "` | |||
if [ -n "$PPP_IP" ] | |||
then | |||
clear | |||
$DEBUG && echo PPP_IP = $PPP_IP | |||
$DEBUG && echo `date` | |||
echo "================================================================================" | |||
echo "= LINEA DI BACKUP ANALOGICA ATTIVATA =" | |||
echo "= PREMERE UN TASTO PER DISATTIVARLA =" | |||
echo "================================================================================" | |||
read -n1 -t2 KEY | |||
else | |||
clear | |||
$DEBUG && echo PPP_IP = $PPP_IP | |||
$DEBUG && echo `date` | |||
echo "================================================================================" | |||
echo "= LINEA DI BACKUP ANALOGICA IN ATTIVAZIONE .... =" | |||
echo "= PREMERE UN TASTO PER INTERROMPERE =" | |||
echo "= LINEA NON ATTIVA !!!! =" | |||
echo "================================================================================" | |||
read -n1 -t9 KEY | |||
fi | |||
done | |||
sudo poff tiscali | |||
sudo /sbin/ifup eth1 > /dev/null 2>&1 | sudo /sbin/ifup eth1 > /dev/null 2>&1 | ||
echo Linea di backup analogica DISATTIVATA. | |||
exit | |||
else | else | ||
echo Linea di backup analogica NON ATTIVATA. | |||
exit | |||
fi | fi | ||
# vim: tabstop=4 | |||
EOFile | EOFile | ||
</pre> | </pre> | ||
sudo chown root\: /usr/local/bin/backup-analogico | |||
sudo chmod 755 /usr/local/bin/backup-analogico | |||
Dichiaralo come shell valida | Dichiaralo come shell valida | ||
echo "/usr/local/bin/backup-analogico" | echo "/usr/local/bin/backup-analogico" | sudo tee -a /etc/shells > /dev/null | ||
Creare l'utente backup-analogico ed assegnargli questa shell | Creare l'utente backup-analogico ed assegnargli questa shell | ||
sudo adduser --shell /usr/local/bin/backup-analogico backup-analogico | |||
sudo adduser --shell /usr/local/bin/backup-analogico backup-analogico \ | |||
--disabled-password \ | |||
--gecos 'Linea analogica di Backup' | |||
Impostare la password: | |||
echo backup-analogico:analogico-backup | sudo chpasswd | |||
Definire l'alias con visudo: | Definire l'alias con visudo: | ||
<pre> | |||
sudo visudo | |||
... | |||
Cmnd_Alias LINEE_BACKUP = /sbin/ifdown, \ | |||
/sbin/ifup, \ | |||
/usr/bin/pon tiscali, \ | |||
/usr/bin/poff tiscali | |||
... | |||
</pre> | |||
Assegnarlo all'utente: | Assegnarlo all'utente: | ||
... | |||
backup-analogico ALL=NOPASSWD:LINEE_BACKUP | backup-analogico ALL=NOPASSWD:LINEE_BACKUP | ||
... | |||
Ora ci si può loggare da console come backup-analogico ed attivare/disattivare la linea. | Ora ci si può loggare da console come backup-analogico ed attivare/disattivare la linea. | ||
Latest revision as of 14:05, 18 February 2009
Predisposizione della connessione
Creare una connessione ppp con ppp-config chiamata "tiscali" SENZA GESTIONE DEI DNS e testarla: Configurazione di un collegamento PPP in Debian
Preparazione degli script ppp-up/down
Creare il file /etc/ppp/ip-up.d/05-sendipaddress
cat | sudo tee /etc/ppp/ip-up.d/05-sendipaddress > /dev/null <<'EOFile'
#!/bin/sh -e
if wget assistenza.rvmgroup.it \
--quiet \
-O /tmp/05-sendipaddress \
--tries=1 \
--timeout=30 ; then
mail -s "IP $HOSTNAME" gal-alert@rvmgroup.it < /tmp/05-sendipaddress
else
exit 1 #COUNT=$(($COUNT+1))
fi
EOFile
sudo chmod 755 /etc/ppp/ip-up.d/05-sendipaddress
Creare il profilo firewall per la connessione ppp impostando le regole desiderate (necessita di iptables-initd_1.0.0-4):
sudo cp /etc/iptables-initd/start.firewall /etc/iptables-initd/start.ppp0 sudoedit /etc/iptables-initd/start.ppp0
Creare il file di restart del firewall:
cat | sudo tee /etc/ppp/ip-up.d/02-firewall > /dev/null <<'EOFile' #!/bin/bash /etc/init.d/firewall restart $PPP_IFACE EOFile
sudo chmod 755 /etc/ppp/ip-up.d/02-firewall
cat | sudo tee /etc/ppp/ip-down.d/02-firewall > /dev/null <<EOFile #!/bin/sh -e /etc/init.d/firewall restart EOFile
sudo chmod 755 /etc/ppp/ip-down.d/02-firewall
Creare il file di restart per ssh:
cat | sudo tee /etc/ppp/ip-up.d/03-ssh > /dev/null <<EOFile #!/bin/bash /etc/init.d/ssh stop /etc/init.d/ssh start EOFile
sudo chmod 755 /etc/ppp/ip-up.d/03-ssh
cat | sudo tee /etc/ppp/ip-down.d/03-ssh > /dev/null <<EOFile #!/bin/bash /etc/init.d/ssh stop /etc/init.d/ssh start EOFile
sudo chmod 755 /etc/ppp/ip-down.d/03-ssh
Verifica della Configurazione di OpenVPN
Assicurarsi che openvpn su questa macchina:
- non abbia una direttiva "local"
- abbia la direttiva: "keepalive 30 61"
Dal lato opposto verificare che openvpn non abbia la direttiva "remote"
Modifiche Opzioni di connessione pppd
Abilitare il logging ip-up-down:
sudo touch /var/log/ppp-ipupdown.log
Sostituire le opzioni di collegamento con queste
(CAMBIARE LOGIN NAME):
sudo cp /etc/ppp/peers/tiscali /etc/ppp/peers/libero.bak cat | sudo tee /etc/ppp/peers/tiscali > /dev/null <<EOFile # This optionfile was generated by pppconfig 2.3.10. # # hide-password noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/tiscali" debug /dev/ttyS0 115200 defaultroute noipdefault user "sagalimberti@tiscali.it" remotename tiscali replacedefaultroute persist maxfail 0 EOFile
In pratica:
- Abilitare la sostituzione della default route nella connessione: replacedefaultroute
- In caso di caduta della linea, ricomporre: persist
- Ricomporre un umero infinito di volte: maxfail 0
ATTENZIONE: a causa di un bug nella versione 2.4.3-20050321+2sarge1 (#374698) se la linea cade, muore anche pppd, e non avviene la ricomposizione.
Test collegamento e script
Provare ora a fare
sudo pon tiscali
e vedere se si connette e avvia correttamente gli script:
sudo tail -f /var/log/ppp-ipupdown.log
Il collegamento dovrebbe permettere la stessa operatività.
Verificare che la default route sia settata:
route -n ... Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 151.6.139.54 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 ... 0.0.0.0 151.6.139.54 0.0.0.0 UG 0 0 0 ppp0
Pingare e traceroutare per test.
Disattivare il collegamento
sudo poff tiscali
Preparazione interfaccia di attivazione
Creare la shell per l'utente backup-analogico.
cat | sudo tee /usr/local/bin/backup-analogico > /dev/null <<'EOFile'
#!/bin/bash
DEBUG=false
clear
echo "================================================================================"
echo "= ATTIVAZIONE LINEA DI BACKUP ANALOGICA ="
echo "================================================================================"
echo -e "\n"
echo -e "\n"
echo -e "\n"
echo -e "\n"
read -n1 -p"Attivare la linea di backup analogica (s/n) ? " RISP
echo -e "\n"
if [[ ("$RISP" == "s" || "$RISP" == "S") ]]; then
sudo /sbin/ifdown eth1 > /dev/null 2>&1
sudo pon tiscali
clear
echo "============================================================================"
echo "= LINEA DI BACKUP ANALOGICA IN ATTIVAZIONE .... ="
echo "= ATTENDERE 40 SECONDI ="
echo "============================================================================"
sleep 40
KEY=""
while [ -z "$KEY" ]
do
PPP_IP=`/sbin/ifconfig ppp0 2>&1 | grep "inet addr:" | cut -f2 --delim=":" | cut -f1 --delim=" "`
if [ -n "$PPP_IP" ]
then
clear
$DEBUG && echo PPP_IP = $PPP_IP
$DEBUG && echo `date`
echo "================================================================================"
echo "= LINEA DI BACKUP ANALOGICA ATTIVATA ="
echo "= PREMERE UN TASTO PER DISATTIVARLA ="
echo "================================================================================"
read -n1 -t2 KEY
else
clear
$DEBUG && echo PPP_IP = $PPP_IP
$DEBUG && echo `date`
echo "================================================================================"
echo "= LINEA DI BACKUP ANALOGICA IN ATTIVAZIONE .... ="
echo "= PREMERE UN TASTO PER INTERROMPERE ="
echo "= LINEA NON ATTIVA !!!! ="
echo "================================================================================"
read -n1 -t9 KEY
fi
done
sudo poff tiscali
sudo /sbin/ifup eth1 > /dev/null 2>&1
echo Linea di backup analogica DISATTIVATA.
exit
else
echo Linea di backup analogica NON ATTIVATA.
exit
fi
# vim: tabstop=4
EOFile
sudo chown root\: /usr/local/bin/backup-analogico sudo chmod 755 /usr/local/bin/backup-analogico
Dichiaralo come shell valida
echo "/usr/local/bin/backup-analogico" | sudo tee -a /etc/shells > /dev/null
Creare l'utente backup-analogico ed assegnargli questa shell
sudo adduser --shell /usr/local/bin/backup-analogico backup-analogico \
--disabled-password \
--gecos 'Linea analogica di Backup'
Impostare la password:
echo backup-analogico:analogico-backup | sudo chpasswd
Definire l'alias con visudo:
sudo visudo
...
Cmnd_Alias LINEE_BACKUP = /sbin/ifdown, \
/sbin/ifup, \
/usr/bin/pon tiscali, \
/usr/bin/poff tiscali
...
Assegnarlo all'utente:
... backup-analogico ALL=NOPASSWD:LINEE_BACKUP ...
Ora ci si può loggare da console come backup-analogico ed attivare/disattivare la linea.