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

From RVM Wiki
Jump to navigation Jump to search
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 "libero" SENZA GESTIONE DEI DNS e testarla.
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 > /etc/ppp/ip-up.d/05-sendipaddress <<'EOFile'
cat | sudo tee /etc/ppp/ip-up.d/05-sendipaddress > /dev/null <<'EOFile'
#!/bin/sh -e
#!/bin/sh -e
COUNT="0"
if   wget assistenza.rvmgroup.it \
while [ "$COUNT" -lt "5" ]
        --quiet \
do
        -O /tmp/05-sendipaddress \
        if wget assistenza.rvmgroup.it --quiet -O /tmp/05-sendipaddress; then
        --tries=1 \
                mail -s "IP $HOSTNAME" gal-alert@rvmgroup.it < /tmp/05-sendipaddress
        --timeout=30 ; then
                COUNT="5"
      mail -s "IP $HOSTNAME" gal-alert@rvmgroup.it < /tmp/05-sendipaddress
        else
else
                 COUNT=$(($COUNT+1))
                 exit 1 #COUNT=$(($COUNT+1))
        fi
fi
done
EOFile
EOFile
chmod 755 /etc/ppp/ip-up.d/05-sendipaddress
</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-init.d/start.ppp0
  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 > /etc/ppp/ip-up.d/02-firewall <<'EOFile'
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
chmod 755 /etc/ppp/ip-up.d/02-firewall
</pre>


cat > /etc/ppp/ip-down.d/02-firewall <<EOFile
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
chmod 755 /etc/ppp/ip-down.d/02-firewall
</pre>


</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 > /etc/ppp/ip-up.d/03-ssh <<EOFile
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 > /etc/ppp/ip-down.d/03-ssh <<EOFile
<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
chmod 755 /etc/ppp/ip-down.d/03-ssh
</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 al networking==
==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


Abilitare la sostituzione della default route nella connessione:
Sostituire le opzioni di collegamento con queste


echo "replacedefaultroute" >> /etc/ppp/peers/libero
('''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


Se si è scelto di usare i DNS dinamici, disabilitare il settaggio dei DNS nello stesso file:


#usepeerdns
'''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.
#ipparam libero


==Test collegamento e script==
==Test collegamento e script==


Provare ora a fare  
Provare ora a fare  
  pon libero
  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.
'''ATTENZIONE''': vedi i reminder per lo stesso script backup-isdn.


<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 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 /sbin/ifdown eth1 > /dev/null 2>&1
        sudo pon libero
sudo pon tiscali
        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 tiscali
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


  echo "/usr/local/bin/backup-analogico" >> /etc/shells
  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:


Cmnd_Alias LINEE_BACKUP = /sbin/ifdown, \
<pre>
                          /sbin/ifup, \
sudo visudo
                          /usr/bin/pon libero, \
...
                          /usr/bin/poff libero
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.