Automatitzar les actualitzacions de seguretat en Debian stable
Escrit al 2004-11-01 00:00:00 per whats_up
Avui (a causa d'un comentari ;P) m'he posat a escriure aquest mini article per explicar com es pot fer per automatitzar força les actualitzacions de seguretat sense despreocupar-nos-en del tot.
És molt senzill, però també força útil. Espero que us faci servei!
PD: (Aviam si m'animo a fer més articles...)
Una cosa molt important en qualsevol servidor, és mantenir-lo al dia pel que fa a les actualitzacions de seguretat. La Debian estable ens prové d'un servidor destinat íntegrament a aquest ús.
Per afegir a les nostres fonts aquest servidor, hem d'afegir la següent línia a l'arxiu /etc/apt/sources.list
deb http://security.debian.org/ stable/updates main contrib non-free
Un cop fet això, haurem d'actualitzar la base de dades del apt.
apt-get update
I llavors, un cop ha acabat, només ens quedarà fer un upgrade per tal d'actualitzar tots els paquets als que s'ha detectat i solucionat un problema de seguretat.
apt-get upgrade
Fins aquí tenim una manera de tenir els nostres paquets actualitzats al 100%, ara només ens falta fer-ho cada dia. Ho hem d'automatitzar!
Tenim dues opcions: instal·lar el paquet cron-apt que el què fa és descarregar-se les noves actualitzacions (es pot fer que les instal·li però no és recomanable) i ens envia un correu en cas d'error, o fer-nos una seqüència que faci tota la feina per nosaltres.
Jo he optat per fer una seqüència i ,ja de pas, he afegit que tant si hi ha error com si no, enviï un correu per informar que hi ha actualitzacions i així anar a actualitzar els paquets. Aquesta seqüència té en compte de no enviar cap correu en cas que tots els paquets amb possibles actualitzacions tinguin marcat l'estat hold.
Aquí el teniu:
***************************************************************************
#!/bin/bash
# seqüència que mira si hi ha actualitzacions i si n'hi ha, envia un correu al root
HOSTNAME=$(hostname)
MAIL_FROM="root"
#mirem si hi ha actualitzacions
if [ "$1" = "-v" ]
then
echo "Busquem actualitzacions al sistema..."
/usr/bin/apt-get update
echo "Mirem si tenim alguna cosa per actualitzar..."
else
/usr/bin/apt-get update 1> /dev/null
fi
tmp=$( apt-get upgrade -s | grep '0 packages upgraded')
#si n'hi ha enviem un correu amb els paquets a actualitzar
if [ ! -n "$tmp" ]
then
if [ "$1" = "-v" ]
then
echo "Enviant correu..."
fi
echo "$(apt-get upgrade -s)" | /usr/bin/mail -s "[$HOSTNAME]: Hi ha actualitzacions disponibles" $MAIL_FROM
else
if [ "$1" = "-v" ]
then
echo "Res a actualitzar!"
fi
fi
***************************************************************************
Si afegim aquesta seqüència a /etc/cron.daily/ aconseguirem que cada dia comprovi si hi ha actualitzacions i, en cas d'haver-n'hi, enviarà un correu avisant de quins són els paquets que tenen actualització. Un cop fet això només caldrà esperar a rebre un correu avisant-nos que existeixen actualitzacions, i llavors anar al servidor a instal·lar-les.
Espero que us sigui útil!
Per afegir a les nostres fonts aquest servidor, hem d'afegir la següent línia a l'arxiu /etc/apt/sources.list
deb http://security.debian.org/ stable/updates main contrib non-free
Un cop fet això, haurem d'actualitzar la base de dades del apt.
apt-get update
I llavors, un cop ha acabat, només ens quedarà fer un upgrade per tal d'actualitzar tots els paquets als que s'ha detectat i solucionat un problema de seguretat.
apt-get upgrade
Fins aquí tenim una manera de tenir els nostres paquets actualitzats al 100%, ara només ens falta fer-ho cada dia. Ho hem d'automatitzar!
Tenim dues opcions: instal·lar el paquet cron-apt que el què fa és descarregar-se les noves actualitzacions (es pot fer que les instal·li però no és recomanable) i ens envia un correu en cas d'error, o fer-nos una seqüència que faci tota la feina per nosaltres.
Jo he optat per fer una seqüència i ,ja de pas, he afegit que tant si hi ha error com si no, enviï un correu per informar que hi ha actualitzacions i així anar a actualitzar els paquets. Aquesta seqüència té en compte de no enviar cap correu en cas que tots els paquets amb possibles actualitzacions tinguin marcat l'estat hold.
Aquí el teniu:
***************************************************************************
#!/bin/bash
# seqüència que mira si hi ha actualitzacions i si n'hi ha, envia un correu al root
HOSTNAME=$(hostname)
MAIL_FROM="root"
#mirem si hi ha actualitzacions
if [ "$1" = "-v" ]
then
echo "Busquem actualitzacions al sistema..."
/usr/bin/apt-get update
echo "Mirem si tenim alguna cosa per actualitzar..."
else
/usr/bin/apt-get update 1> /dev/null
fi
tmp=$( apt-get upgrade -s | grep '0 packages upgraded')
#si n'hi ha enviem un correu amb els paquets a actualitzar
if [ ! -n "$tmp" ]
then
if [ "$1" = "-v" ]
then
echo "Enviant correu..."
fi
echo "$(apt-get upgrade -s)" | /usr/bin/mail -s "[$HOSTNAME]: Hi ha actualitzacions disponibles" $MAIL_FROM
else
if [ "$1" = "-v" ]
then
echo "Res a actualitzar!"
fi
fi
***************************************************************************
Si afegim aquesta seqüència a /etc/cron.daily/ aconseguirem que cada dia comprovi si hi ha actualitzacions i, en cas d'haver-n'hi, enviarà un correu avisant de quins són els paquets que tenen actualització. Un cop fet això només caldrà esperar a rebre un correu avisant-nos que existeixen actualitzacions, i llavors anar al servidor a instal·lar-les.
Espero que us sigui útil!
Categories: Articles, Servidor
Comentaris
- Sense comentaris