Publicado en Linux, Seguridad, Windows el 30 de July, 2009 por Fran. (3 comentarios)
Hace poco se me ocurrió una forma de aprovechar una memoria USB (o pendrive) antigua (de 256MB) que tenía por ahí. Simplemente, utilizarla para guardar, todo cifrado, un archivo con un listado de contraseñas, documentos personales, claves GPG y/o SSH, …
Así que estuve buscando diferentes opciones, siendo importante que funcionase en Linux y en Windows (por si las moscas). Al final había dos opciones Truecrypt (el archiconocido) y dm-crypt (un gestor de dispositivos cifrados de Linux), me decanté por dm-crypt porque Truecrypt, curiosamente, no está en los repositorios de Debian y porque con dm-crypt no necesitaría de un programa a parte para utilizar mi dispositivo en Linux (aunque sí, en Windows).
Pasos a seguir
Directo al grano, estos son los pasos que realicé:
- Paquetes necesarios:
# apt-get install cryptsetup hashalot dmsetup
- Rellenar la memoria con datos aleatorios (no es necesario, aunque sí recomendable):
# dd if=/dev/urandom of=/dev/sdX
- Cargar los siguientes módulos si no lo están ya:
# modprobe aes
# modprobe dm_crypt
# modprobe dm_mod
# modprobe sha256
- Crear el contenedor cifrado (pedirá la contraseña para poder luego descifrarlo):
# cryptsetup -v --key-size 256 luksFormat /dev/sdX NOMBRE-CONTENEDOR
- Formatear el contenedor (yo utilicé FAT para que funcione en Windows) para ello primero hay que montar el contenedor utilizando
cryptsetup:
# cryptsetup -v luksOpen /dev/sdX NOMBRE-CONTENEDOR
# mkfs.vfat /dev/mapper/NOMBRE-CONTENEDOR
- Y ya está, ya se puede montar:
# mount -t vfat /dev/mapper/NOMBRE-CONTENEDOR /mnt/usb_cifrado
Leer el resto »
Publicado en Linux, Script el 10 de July, 2009 por Fran. (Sin comentarios)
El título no es muy claro, lo sé, pero no podía resumir lo que voy a explicar en algo tan corto.
Básicamente, a este script se le pasa una lista de directorios junto a un alias (o seudónimo) bajo el que se guardarán en el archivo que contenga el backup. Esto sirve:
- Para que en el archivo del backup no se guarden las rutas absolutas de los directorios guardados.
- Para no tener que realizar una copia local (duplicando el tamaño ocupado durante la realización del backup) de los archivos contenidos en los directorios a copiar en un directorio temporal.
- Para poder guardar los directorios con el nombre que se quiera dentro del archivo del backup.
Script
Este script está preparado para que lo ejecute cron con permisos de root y así poder copiar partes del sistema a las que otro usuario no podría acceder.
Si queréis que funcione con un usuario normal, sólo hace falta que eliminéis el if que está detrás del comentario # Check if the script is being run as root.
Los directorios a copiar se guardan en la variable DIRS separados por un espacio y con el formato alias:/ruta/al/directorio.
#!/bin/bash
# This script makes backups of a list of directories.
# It must be executed by root.
# Backup data
DIRS="images:/home/user/images/ code:/home/user/projects/ docs:/home/user/docs"
TMP_DIR=`mktemp -d`
BACK_FILE="/mnt/backup/`hostname --fqdn`_`date "+%Y-%m-%d"`.tar.gz"
TAR=$(which tar)
# Check if the script is being run as root
if [ "$UID" -ne "0" ]; then
echo "This script must be run as root!"
exit -1
fi
# Logging backup
echo "[`date "+%Y-%m-%d"`] Starting backup"
# Create symbolic links
for dir in $DIRS
do
SYM_DIR=${dir%:*}
TARGET_DIR=${dir#*:}
ln -s $TARGET_DIR $TMP_DIR/$SYM_DIR
done
# Create backup
cd $TMP_DIR > /dev/null
$TAR -chzf $BACK_FILE *
# Backup failed
if [ $? != 0 ]; then
cd - > /dev/null
rm -fR $TMP_DIR > /dev/null
echo "[`date "+%Y-%m-%d"`] Backup failed."
exit -1
fi
# Backup created
cd - > /dev/null
rm -fR $TMP_DIR > /dev/null
echo "[`date "+%Y-%m-%d"`] Backup done!"
exit 0