Backups con rsync

Si queréis hacer copias de seguridad de manera sencilla una herramienta muy potente es rsync. Existen un montón de programas para hacer backups pero ninguno acaba de convencerme. Yo necesito que la copia de seguridad sea fácilmente accesible, es decir, que esté sin comprimir para poder acceder directamente a determinados archivos de manera cómoda sin tener que andar descomprimiendo archivos de varios megas (o gigas). Además, utlizo el disco externo de backup para llevar los arhivos de casa a la oficina y vice versa. Para mi caso la mejor herramienta que he encontrado hasta ahora es rsync. Uso un sencillo comando para hacer los backups:

rsync -avz --exclude-from=.rsync/exclude /home/gorka/. /media/discobackup

-avz: copia recursivamete todos los ficheros desde el directorio /home/gorka a /media/discobackup (mi disco duro externo). Además mantiene los permisos, enlaces simbólicos, propietarios, atributos, etc… La opción -z comprime los ficheros antes de transferirlos, pero, dado que uso un disco usb2 realmente no estoy seguro de que tenga utilidad (un día que me aburra mediré la diferencia entre hacer la copia de seguridad con esta opción o sin ella).

–exclude-from=.rsync/exclude: esta opción busca el fichero .rsync/exclude en el que está la información de qué ficheros no se deben copiar. En mi caso uso el siguiente:

*.iso
*.avi
*.mp3

para que no me copie ni los ficheros iso, avi ni mp3. Cada tipo de fichero que queramos excluir debe ir en una línea.

/home/gorka/. aquí indico que quiero copiar el contenido de la carpeta /home/gorka. Si uso el ‘.’ es para que me copie los ficheros ocultos que empiezan por el punto. Si no se quieren copiar los archivos ocultos hay que usar /home/gorka/*

/media/discobackup – mi flamante disco duro externo.

Ejecuto el script, me voy a comer y espero a que se haga la copia tranquilamente.

Algo más de información: rsync y rsync Tips & Tricks.

Problema con Firestarter – el interfaz eth0 no está preparado

Recientemente me he encontrado con este problema y, después de darle muchas vueltas he encontrado el problema. La causa está en el script firestarter.sh. Abre el dichoso script:

gksudo gedit /etc/firestarter/firestarter.sh

y modifica la línea:

MASK=`/sbin/ifconfig $IF | grep Mas | cut -d : -f 4`

por:

MASK=`/sbin/ifconfig $IF | grep Más | cut -d : -f 4`

Explicación paso a paso

Por si a alguien le interesa saber cómo dí con el problema he aquí un pequeño e instructivo rollete.

El mensaje de error que me aparece al intentar arrarcar el firestarter es:

External network device $IF is not ready. Aborting..

ese mensaje de error se muestra aquí (en este caso $IF es eth0):

if [ "$MASK" = "" -a "$1" != "stop" ]; then
	echo "External network device $IF is not ready. Aborting.."
	exit 2
fi

comprobé que la variable $MASK estaba en blanco (era la razón de que no arrancara el firestarter) así que busqué dónde se definía:

MASK=`/sbin/ifconfig $IF | grep Más | cut -d : -f 4`

El comando /sbin/ifconfi eth0 muestra un mensaje parecido a éste:

eth0      Link encap:Ethernet  HWaddr 00:13:8F:4C:47:59  
          inet dirección:192.168.1.2  Bcast:192.168.1.255  Máscara:255.255.255.0
          dirección inet6: fe80::213:8fff:fe4c:4759/64 Alcance:Vínculo
          ARRIBA BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:221627 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:159080113 (151.7 MiB)  TX bytes:105193874 (100.3 MiB)
          Interrupción:23 Base address:0xe400 

y el comando:

/sbin/ifconfig $IF | grep Mas | cut -d : -f 4

Lo que hace es buscar la línea donde esté el texto Mas (de Mask) y, claro, al estar mi Ubuntu en castellano en lugar de Mask poner Máscara:

eth0      Link encap:Ethernet  HWaddr 00:13:8F:4C:47:59  
          inet dirección:192.168.1.2  Bcast:192.168.1.255  Máscara:255.255.255.0
          dirección inet6: fe80::213:8fff:fe4c:4759/64 Alcance:Vínculo
          ARRIBA BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:221627 errors:0 dropped:0 overruns:0 frame:0
          TX packets:226060 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:159080113 (151.7 MiB)  TX bytes:105193874 (100.3 MiB)
          Interrupción:23 Base address:0xe400 

Como resultado de este pequeño detalle $MASK se queda en blanco. Por tanto, la solución consiste en modificar el script y dejarlo como:

MASK=`/sbin/ifconfig $IF | grep Más | cut -d : -f 4`

Copias de seguridad MySQL automáticas con BASH y CRON

Hoy vamos a ver cómo programar la automatización de la copia de seguridad de una base de datos MySQL usando bash y cron.

Empezamos por crear un sencillo script que guarda la copia de seguridad de la base de datos comprimida en formato bz2:

#!/bin/bash
fecha=$(date +%Y%m%d)
mysqldump -uusuario -pclave base_datos > fichero_destino_$fecha.sql
bzip2 fichero_detino_$fecha.sql

Guardamos el scrip en un fichero llamado, por ejemplo ‘backup’ en la carpeta (por poner un ejemplo): /home/users/usuario/mysql_backups/. Debemos darle permisos de ejecución haciendo:

chmod +x backup

(o los permisos que creamos más convenientes en cada caso).

El fichero de destino tendrá un nombre con el siguiente formato:

fichero_detino_20070430.bz2

(Año/mes/día).

El siguiente paso es automatizar la tarea modificando el crontab. Para modificar el crontab basta con hacer:

crontab -e
0 0 * * 7 /home/users/usuario/mysql_backups/backup

Esto hace que todos los domingos a las 00:00 (hora del servidor) se haga automáticamente una copia de la base de datos. Recordemos que el formato del crontab es:

[minutos] [hora] [día] [mes] [dia_de_semana] [comando]

Notas:

  • El servidor debe tener instalado y funcionando el cron.
  • Ejecuta el script ‘backup’ a mano una vez para comprobar que genera bien la copia de seguridad.
  • Conviene comprobar, al menos una vez, que el script hace realmente las copias de seguridad con el crontab.

Buscando troyanos y rootkits en Ubuntu

Si estás preocupado por la posibilidad de tener troyanos o rootkits en tu Ubuntu puedes usar dos programas llamados Chkrootkit y Rootkit Hunter.

Para instalarlos:

sudo apt-get install chkrootkit rkhunter

Una vez instalados vamos a empezar con el Rootkit Hunter. Lo primero es actualizarlo a la última versión:

sudo rkhunter --update

Después de actualizados podemos empezar con el test:

sudo rkhunter --checkall

Nos presentará un completo informe con el resultado de los análisis y probablemente hará alguna sugerencia.

Después podemos probar con el chkrootkit:

sudo chkrootkit

Aún así no es seguro que estemos 100% libres de troyanos, rootkits y demás basura pero por lo menos nos dejará una cierta tranquilidad :-).

¿Es nuestra conexión de ADSL segura?

Gracias a nuestras conexiones de ADSL muchos de nosotros tenemos los ordenadores conectados todo el día a Internet. Pero, ¿estamos seguros? Al conectarnos a Intenet tenemos a nuestra disposición un fantástico mundo pero a la vez estamos expuestos a un numeroso grupo de gente que busca robar nuestra información o simplemente divertirse fastidiando a los demás.

Es, por tanto, importante dedicarle cierto tiempo al tema de la seguridad. Instalar algún cortafuegos, cerrar puertos en el router y en el PC, etc…

Existen varias herramientas en la web que permiten comprobar (de manera más o menos eficaz) lo seguros o inseguros que estamos. Recientemente he descubierto esta web (en inglés) llamada Shields UP!!. Pinchando en las distintas opciones que tienen (File Sharing, Common Ports, All Service ports, Messenger Spam y Browser Headers) podemos hacer un test de seguridad.

Lo interesante es que en los resultados hacen una serie de comentarios sobre nuestra configuración y dan algunos consejos de cómo actuar para asegurarnos ante ataques.

Si tienes instalado algún cortafuegos, al hacer el test seguramente recibirás avisos de intentos de intrusión de las IP: 4.79.142.192 a 4.79.142.207.

¿Te incomoda usar claves?

En muchas ocasiones me encuentro con personas que me comentan sobre la incomodidad de usar claves para todo. Una de las quejas más habituales de Linux es que “para instalar algunos programas y para configurar ciertas cosas hay que usar la clave de superusuario y es muy incómodo”. Argumentan que en Windows no suele ser necesario, que todo puede instalar y configurar si necesidad de usar claves.

El problema, creo, es que la gente no está concienciada con el tema de la privacidad y la seguridad. En los casos comentados en el párafo anterior les suelo hacer un paralelismo que me suele resultar muy útil; les comparo un ordenador a una casa. “Cada vez que entras en tu casa tienes que usar tu llave para entrar. Podrías dejar la puerta abierta, que sería mucho más cómodo, pero no lo haces. Buscar la llave, abrir la puerta, asegurarse que está bien cerrada es bastante más trabajo que introducir una clave, pero todos tenemos asumido que hay que hacerlo y no nos quejamos.”. Imaginemos qué sucedería en una ciudad si nos vamos de casa dejando la puerta abierta. O si dejásemos la puerta del coche abierta.

Si la gente supiera la cantidad de información personal que pueden sacar de nuestros ordenadores y comunicaciones (emails, chats, etc…) se asustaría. Si lo supiera y estuviera convencida que les puede pasar a ellos, ya que muchos creen que sí, que te puede pasar pero es algo que no va con ellos.