Configurazione di una linea di backup analogica manuale: Difference between revisions

From RVM Wiki
Jump to navigation Jump to search
Line 127: Line 127:


<pre>
<pre>
cat >/usr/local/bin/backup-analogico <<'EOFile'
cat | sudo tee usr/local/bin/backup-analogico > /dev/null <<'EOFile'
#!/bin/bash
#!/bin/bash
DEBUG=false
clear
clear
echo "================================================================================"
echo "================================================================================"
echo "=                     ATTIVAZIONE LINEA DI BACKUP ANALOGICA                   ="
echo "=               ATTIVAZIONE LINEA DI BACKUP ANALOGICA                         ="
echo "================================================================================"
echo "================================================================================"
echo -e "\n"
echo -e "\n"
Line 140: Line 141:
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 /sbin/ifdown eth1 > /dev/null 2>&1
        sudo pon libero
sudo pon libero
        echo "================================================================================"
 
        echo "=                     LINEA DI BACKUP ANALOGICA ATTIVATA                       ="
clear
        echo "=                    PREMERE UN TASTO PER DISATTIVARLA                       ="
echo "============================================================================"
        echo "================================================================================"
echo "=                LINEA DI BACKUP ANALOGICA IN ATTIVAZIONE ....            ="   
        read -n1
echo "=                        ATTENDERE 40 SECONDI                            ="
        sudo poff libero
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 libero
sudo /sbin/ifup eth1 > /dev/null 2>&1
sudo /sbin/ifup eth1 > /dev/null 2>&1
        echo Linea di backup analogica DISATTIVATA.
echo Linea di backup analogica DISATTIVATA.
        exit
exit
else
else
        echo Linea di backup analogica NON ATTIVATA.
echo Linea di backup analogica NON ATTIVATA.
        exit
exit
fi
fi
# vim: tabstop=4
EOFile
EOFile
sudo chown root\: /usr/local/bin/backup-analogico
sudo chmod 755 /usr/local/bin/backup-analogico
</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

Revision as of 09:36, 5 February 2007

Predisposizione della connessione

Creare una connessione ppp con ppp-config chiamata "libero" SENZA GESTIONE DEI DNS e testarla.

Preparazione degli script ppp-up/down

Creare il file /etc/ppp/ip-up.d/05-sendipaddress

cat > /etc/ppp/ip-up.d/05-sendipaddress <<'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
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.ppp0

Creare il file di restart del firewall:

cat > /etc/ppp/ip-up.d/02-firewall <<'EOFile'
#!/bin/bash
/etc/init.d/firewall restart $PPP_IFACE
EOFile
chmod 755 /etc/ppp/ip-up.d/02-firewall

cat > /etc/ppp/ip-down.d/02-firewall <<EOFile
#!/bin/sh -e
/etc/init.d/firewall restart
EOFile
chmod 755 /etc/ppp/ip-down.d/02-firewall

Creare il file di restart per ssh:

cat > /etc/ppp/ip-up.d/03-ssh <<EOFile
#!/bin/bash
/etc/init.d/ssh stop
/etc/init.d/ssh start
EOFile
chmod 755 /etc/ppp/ip-up.d/03-ssh

cat > /etc/ppp/ip-down.d/03-ssh <<EOFile
#!/bin/bash
/etc/init.d/ssh stop
/etc/init.d/ssh start
EOFile
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 Opsioni di connessione pppd

Abilitare il logging ip-up-down:

touch /var/log/ppp-ipupdown.log

Sostituire le opzioni di collegamento con queste:

cat | sudo tee /etc/ppp/peers/libero > /dev/null <<EOFile
# This optionfile was generated by pppconfig 2.3.10.
#
#
hide-password
noauth
connect "/usr/sbin/chat -v -f /etc/chatscripts/libero"
debug
/dev/ttyS0
115200
defaultroute
noipdefault
user "srgalimberti@libero.it"
remotename libero
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

pon libero 

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à.

Preparazione interfaccia di attivazione

Creare la shell per l'utente backup-analogico.

ATTENZIONE: vedi i reminder per lo stesso script backup-isdn.

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 libero

	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 libero
	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" >> /etc/shells

Creare l'utente backup-analogico ed assegnargli questa shell

sudo adduser --shell /usr/local/bin/backup-analogico backup-analogico

Definire l'alias con visudo:

Cmnd_Alias LINEE_BACKUP = /sbin/ifdown, \
                          /sbin/ifup, \
                          /usr/bin/pon libero, \
                          /usr/bin/poff libero

Assegnarlo all'utente:

backup-analogico        ALL=NOPASSWD:LINEE_BACKUP

Ora ci si può loggare da console come backup-analogico ed attivare/disattivare la linea.