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

From RVM Wiki
Jump to navigation Jump to search
m HOSTNAME not HOST
 
(21 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 chiamat "libero" 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.analogico
  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/sh -e
#!/bin/bash
/etc/init.d/firewall restart analogico
/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/sh -e
#!/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>


cat > /etc/ppp/ip-down.d/03-ssh <<EOFile
sudo chmod 755 /etc/ppp/ip-up.d/03-ssh
#!/bin/sh -e
 
<pre>
cat | sudo tee /etc/ppp/ip-down.d/03-ssh > /dev/null <<EOFile
#!/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==
Assicurarsi che openvpn su questa macchina:
Assicurarsi che openvpn su questa macchina:
* '''non''' abbia una direttiva "'''local'''"
* '''non''' abbia una direttiva "'''local'''"
Line 70: Line 78:
Dal lato opposto verificare che openvpn '''non''' abbia la direttiva "'''remote'''"
Dal lato opposto verificare che openvpn '''non''' abbia la direttiva "'''remote'''"


<hr>
==Modifiche Opzioni di connessione pppd==
NON SERVE
 
Creare il file di restart OpenVPN:
Abilitare il logging ip-up-down:
 
sudo touch /var/log/ppp-ipupdown.log
 
Sostituire le opzioni di collegamento con queste
 
('''CAMBIARE LOGIN NAME'''):


<pre>
<pre>
cat > /etc/ppp/ip-up.d/04-openvpn <<EOFile
sudo cp /etc/ppp/peers/tiscali /etc/ppp/peers/libero.bak
#!/bin/sh -e
cat | sudo tee /etc/ppp/peers/tiscali > /dev/null <<EOFile
/etc/init.d/openvpn stop
# This optionfile was generated by pppconfig 2.3.10.
/etc/init.d/openvpn start
#
#
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
EOFile
chmod 755 /etc/ppp/ip-up.d/04-openvpn
</pre>


cat > /etc/ppp/ip-down.d/04-openvpn <<EOFile
In pratica:
#!/bin/sh -e
* Abilitare la sostituzione della default route nella connessione: replacedefaultroute
/etc/init.d/openvpn stop
* In caso di caduta della linea, ricomporre: persist
/etc/init.d/openvpn start
* Ricomporre un umero infinito di volte: maxfail 0
EOFile
chmod 755 /etc/ppp/ip-down.d/04-openvpn
</pre>


NON SERVE
<hr>


Abilitare il logging ip-up-down:
'''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.


touch /var/log/ppp-ipupdown.log
==Test collegamento e script==


Abilitare la sostitusione della default route nella connessione:
Provare ora a fare
sudo pon tiscali


echo "replacedefaultroute" >> /etc/ppp/peers/libero
e vedere se si connette e avvia correttamente gli script:


Se si è scelto di usare i DNS dinamici, disabilitare il settaggio dei DNS nello stesso file:
sudo tail -f /var/log/ppp-ipupdown.log


#usepeerdns
Il collegamento dovrebbe permettere la stessa operatività.
#ipparam libero


<hr>
Verificare che la default route sia settata:
NON SERVE
Disabilitare la gestione dei dns:


<pre>
<pre>
cd /etc/ppp/ip-up.d
route -n
mv 0000usepeerdns 0000usepeerdns.dpkg-dist
...
mv 0dns-up 0dns-up.dpkg-dist
Kernel IP routing table
 
Destination    Gateway        Genmask        Flags Metric Ref    Use Iface
cd /etc/ppp/ip-down.d
151.6.139.54    0.0.0.0        255.255.255.255 UH    0      0        0 ppp0
mv 0000usepeerdns 0000usepeerdns.dpkg-dist
...
0.0.0.0        151.6.139.54    0.0.0.0        UG    0      0        0 ppp0
</pre>
</pre>


NON SERVE
Pingare e traceroutare per test.
<hr>
 
Provare ora a fare
pon libero
 
e vedere se si connette e avvia correttamente gli script.


Il collegamento dovrebbe permettere la stessa operatività.
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 >/usr/local/bin/backup-analogico <<'EOFile'
cat | sudo tee /usr/local/bin/backup-analogico > /dev/null <<'EOFile'
#!/bin/bash
#!/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 148: Line 165:
echo -e "\n"
echo -e "\n"
if [[ ("$RISP" == "s" || "$RISP" == "S") ]]; then
if [[ ("$RISP" == "s" || "$RISP" == "S") ]]; then
        sudo pon libero
sudo /sbin/ifdown eth1 > /dev/null 2>&1
        echo "================================================================================"
sudo pon tiscali
        echo "=                     LINEA DI BACKUP ANALOGICA ATTIVATA                       ="
 
        echo "=                    PREMERE UN TASTO PER DISATTIVARLA                       ="
clear
        echo "================================================================================"
echo "============================================================================"
        read -n1
echo "=                LINEA DI BACKUP ANALOGICA IN ATTIVAZIONE ....            ="   
        sudo poff libero
echo "=                        ATTENDERE 40 SECONDI                            ="
        echo Linea di backup analogica DISATTIVATA.
echo "============================================================================"
        exit
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
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 = /usr/bin/pon libero, /usr/bin/poff libero
<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 backu-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.