Configurazione di una linea di backup isdn manuale: Difference between revisions
| Line 133: | Line 133: | ||
* E' obbligatorio disabilitare l'interfaccia WAN se questa acquisisce l'ip in dhcp (necessario per DSL-3x0T), altrimenti resetta la default route ad ogni renew. | * E' obbligatorio disabilitare l'interfaccia WAN se questa acquisisce l'ip in dhcp (necessario per DSL-3x0T), altrimenti resetta la default route ad ogni renew. | ||
* Ricordarsi di aggiungere in /etc/sudoers i comandi senza password /sbin/ifup e /sbin/ifdown | * Ricordarsi di aggiungere in /etc/sudoers i comandi senza password /sbin/ifup e /sbin/ifdown | ||
<pre> | <pre> | ||
| Line 170: | Line 171: | ||
fi | fi | ||
EOFile | EOFile | ||
</pre> | |||
'''Questa è una versione aggiornata che testa se il collegamento è savvero avventuo. MODIFIFCARLA per vedere se ippp0 ha preso l'ip o meno''' | |||
<pre> | |||
#!/bin/bash | |||
clear | |||
echo "================================================================================" | |||
echo "= ATTIVAZIONE LINEA DI BACKUP ISDN =" | |||
echo "================================================================================" | |||
echo -e "\n" | |||
echo -e "\n" | |||
echo -e "\n" | |||
echo -e "\n" | |||
read -n1 -p"Attivare la linea di backup isdn (s/n) ? " RISP | |||
echo -e "\n" | |||
if [[ ("$RISP" == "s" || "$RISP" == "S") ]]; then | |||
sudo /sbin/ifdown eth1 > /dev/null 2>&1 | |||
sudo /etc/init.d/isdnutils stop > /dev/null 2>&1 | |||
sudo /etc/init.d/isdnutils start > /dev/null 2>&1 | |||
sudo /usr/sbin/isdnctrl huptimeout ippp0 9999 2>&1 > /dev/null | |||
sudo /usr/sbin/isdnctrl dialmax ippp0 1 2>&1 > /dev/null | |||
sudo /usr/sbin/isdnctrl dial ippp0 > /dev/null 2>&1 | |||
# solo se si usa il doppio canale | |||
#sudo isdnctrl addlink ippp0 > /dev/null 2>&1 | |||
clear | |||
#echo $STATUS | |||
#echo `date` | |||
echo "================================================================================" | |||
echo "= LINEA DI BACKUP ISDN IN ATTIVAZIONE .... =" | |||
echo "= ATTENDERE 10 SECONDI =" | |||
echo "================================================================================" | |||
sleep 9 | |||
KEY="" | |||
while [ -z "$KEY" ] | |||
do | |||
sudo /usr/sbin/isdnctrl status ippp0 2>&1 > /dev/null | |||
STATUS=$? | |||
if [ "$STATUS" -eq "0" ] | |||
then | |||
clear | |||
#echo $STATUS | |||
#echo `date` | |||
echo "================================================================================" | |||
echo "= LINEA DI BACKUP ISDN ATTIVATA =" | |||
echo "= PREMERE UN TASTO PER DISATTIVARLA =" | |||
echo "================================================================================" | |||
read -n1 -t2 KEY | |||
else | |||
clear | |||
#echo $STATUS | |||
echo "================================================================================" | |||
echo "= LINEA DI BACKUP ISDN IN ATTIVAZIONE .... =" | |||
echo "= PREMERE UN TASTO PER INTERROMPERE =" | |||
echo "= LINEA NON ATTIVA !!!! =" | |||
echo "================================================================================" | |||
sudo /usr/sbin/isdnctrl hangup ippp0 > /dev/null 2>&1 | |||
sudo /usr/sbin/isdnctrl dial ippp0 > /dev/null 2>&1 | |||
read -n1 -t9 KEY | |||
fi | |||
done | |||
# solo se si usa il doppio canale | |||
#sudo isdnctrl removelink ippp0 > /dev/null 2>&1 | |||
sudo isdnctrl hangup ippp0 > /dev/null 2>&1 | |||
sudo /etc/init.d/isdnutils stop > /dev/null 2>&1 | |||
sudo /sbin/ifup eth1 > /dev/null 2>&1 | |||
clear | |||
echo -e "\nLinea di backup isdn DISATTIVATA." | |||
exit | |||
else | |||
clear | |||
echo Linea di backup isdn NON ATTIVATA. | |||
fi | |||
</pre> | </pre> | ||
Revision as of 14:16, 29 January 2007
Predisposizione della connessione
Seguire la guida di configurazione per la connessione ISDN, ed assicurarsi che funzioni.
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
COUNT="0"
while [ "$COUNT" -lt "5" ]
do
if wget assistenza.rvmgroup.it --quiet -O /tmp/05-sendipaddress; then
mail -s "IP $HOSTNAME" gal-alert@rvmgroup.it < /tmp/05-sendipaddress
COUNT="5"
else
COUNT=$(($COUNT+1))
fi
done
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):
/etc/iptables-init.d/start.ippp0
Creare il file di restart del firewall:
cat | sudo tee /etc/ppp/ip-up.d/02-firewall > /dev/null <<'EOFile' #!/bin/sh -e /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/sh -e /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/sh -e /etc/init.d/ssh stop /etc/init.d/ssh start EOFile
sudo chmod 755 /etc/ppp/ip-down.d/03-ssh
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"
NON SERVE
Creare il file di restart OpenVPN:
cat > /etc/ppp/ip-up.d/04-openvpn <<EOFile #!/bin/sh -e /etc/init.d/openvpn stop /etc/init.d/openvpn start EOFile chmod 755 /etc/ppp/ip-up.d/04-openvpn cat > /etc/ppp/ip-down.d/04-openvpn <<EOFile #!/bin/sh -e /etc/init.d/openvpn stop /etc/init.d/openvpn start EOFile chmod 755 /etc/ppp/ip-down.d/04-openvpn
NON SERVE
Abilitare il logging ip-up-down:
sudo touch /var/log/ppp-ipupdown.log
E' possibile osservare l'esecuzione degli script con
tail -f /var/log/ppp-ipupdown.log
Disabilitazione della gestione DNS
Se la macchina usa un nameserver locale configurato in /etc/resolv.conf, commentare in /etc/isdn/ipppd.ippp0:
#ms-get-dns
Collegamento
Provare ora a fare
sudo /etc/init.d/isdnutils start sudo isdnctrl dial ippp0
e vedere se si connette e avvia correttamente gli script.
Il collegamento dovrebbe permettere la stessa operatività.
Preparazione interfaccia di attivazione
Creare la shell per l'utente backup-isdn
ATTENZIONE
- Eliminare il comando relativo se non si usa il multilink
- E' obbligatorio disabilitare l'interfaccia WAN se questa acquisisce l'ip in dhcp (necessario per DSL-3x0T), altrimenti resetta la default route ad ogni renew.
- Ricordarsi di aggiungere in /etc/sudoers i comandi senza password /sbin/ifup e /sbin/ifdown
cat | sudo tee /usr/local/bin/backup-isdn > /dev/null <<'EOFile'
#!/bin/bash
clear
echo "================================================================================"
echo "= ATTIVAZIONE LINEA DI BACKUP ISDN ="
echo "================================================================================"
echo -e "\n"
echo -e "\n"
echo -e "\n"
echo -e "\n"
read -n1 -p"Attivare la linea di backup isdn (s/n) ? " RISP
echo -e "\n"
if [[ ("$RISP" == "s" || "$RISP" == "S") ]]; then
sudo /sbin/ifdown eth1 > /dev/null 2>&1
sudo /etc/init.d/isdnutils stop > /dev/null 2>&1
sudo /etc/init.d/isdnutils start > /dev/null 2>&1
sudo isdnctrl dial ippp0 > /dev/null 2>&1
# solo se si usa il doppio canale
sudo isdnctrl addlink ippp0 > /dev/null 2>&1
echo "================================================================================"
echo "= LINEA DI BACKUP ISDN ATTIVATA ="
echo "= PREMERE UN TASTO PER DISATTIVARLA ="
echo "================================================================================"
read -n1
# solo se si usa il doppio canale
sudo isdnctrl removelink ippp0 > /dev/null 2>&1
sudo isdnctrl hangup ippp0 > /dev/null 2>&1
sudo /etc/init.d/isdnutils stop > /dev/null 2>&1
sudo /sbin/ifup eth1 > /dev/null 2>&1
echo -e "\nLinea di backup isdn DISATTIVATA."
exit
else
echo Linea di backup isdn NON ATTIVATA.
fi
EOFile
Questa è una versione aggiornata che testa se il collegamento è savvero avventuo. MODIFIFCARLA per vedere se ippp0 ha preso l'ip o meno
#!/bin/bash
clear
echo "================================================================================"
echo "= ATTIVAZIONE LINEA DI BACKUP ISDN ="
echo "================================================================================"
echo -e "\n"
echo -e "\n"
echo -e "\n"
echo -e "\n"
read -n1 -p"Attivare la linea di backup isdn (s/n) ? " RISP
echo -e "\n"
if [[ ("$RISP" == "s" || "$RISP" == "S") ]]; then
sudo /sbin/ifdown eth1 > /dev/null 2>&1
sudo /etc/init.d/isdnutils stop > /dev/null 2>&1
sudo /etc/init.d/isdnutils start > /dev/null 2>&1
sudo /usr/sbin/isdnctrl huptimeout ippp0 9999 2>&1 > /dev/null
sudo /usr/sbin/isdnctrl dialmax ippp0 1 2>&1 > /dev/null
sudo /usr/sbin/isdnctrl dial ippp0 > /dev/null 2>&1
# solo se si usa il doppio canale
#sudo isdnctrl addlink ippp0 > /dev/null 2>&1
clear
#echo $STATUS
#echo `date`
echo "================================================================================"
echo "= LINEA DI BACKUP ISDN IN ATTIVAZIONE .... ="
echo "= ATTENDERE 10 SECONDI ="
echo "================================================================================"
sleep 9
KEY=""
while [ -z "$KEY" ]
do
sudo /usr/sbin/isdnctrl status ippp0 2>&1 > /dev/null
STATUS=$?
if [ "$STATUS" -eq "0" ]
then
clear
#echo $STATUS
#echo `date`
echo "================================================================================"
echo "= LINEA DI BACKUP ISDN ATTIVATA ="
echo "= PREMERE UN TASTO PER DISATTIVARLA ="
echo "================================================================================"
read -n1 -t2 KEY
else
clear
#echo $STATUS
echo "================================================================================"
echo "= LINEA DI BACKUP ISDN IN ATTIVAZIONE .... ="
echo "= PREMERE UN TASTO PER INTERROMPERE ="
echo "= LINEA NON ATTIVA !!!! ="
echo "================================================================================"
sudo /usr/sbin/isdnctrl hangup ippp0 > /dev/null 2>&1
sudo /usr/sbin/isdnctrl dial ippp0 > /dev/null 2>&1
read -n1 -t9 KEY
fi
done
# solo se si usa il doppio canale
#sudo isdnctrl removelink ippp0 > /dev/null 2>&1
sudo isdnctrl hangup ippp0 > /dev/null 2>&1
sudo /etc/init.d/isdnutils stop > /dev/null 2>&1
sudo /sbin/ifup eth1 > /dev/null 2>&1
clear
echo -e "\nLinea di backup isdn DISATTIVATA."
exit
else
clear
echo Linea di backup isdn NON ATTIVATA.
fi
sudo chown root\: /usr/local/bin/backup-isdn sudo chmod 755 /usr/local/bin/backup-isdn
Dichiaralo come shell valida
echo "/usr/local/bin/backup-isdn" | tee -a /etc/shells > /dev/null
Creare l'utente backup-isdn ed assegnargli questa shell
sudo adduser --shell /usr/local/bin/backup-isdn backup-isdn
Definire l'alias con visudo:
Cmnd_Alias LINEE_BACKUP = /sbin/ifdown, \
/sbin/ifup, \
/etc/init.d/isdnutils, \
/usr/sbin/isdnctrl
Assegnarlo all'utente:
backup-isdn ALL=NOPASSWD:LINEE_BACKUP
Ora ci si può loggare da console come backup-isdn ed attivare/disattivare la linea.