El sáb, 28-02-2009 a las 07:41 +0100, Javier escribió: > Quiero compartir este pequeño tutorial. Si alguien lo quiere subir a un > web, simplemente que ponga mi nombre y email. > > Veamos como podemos encriptar el /home en un sistema Debian (en realidad > se aplicaría casi igual a cualquier sistema Linux): > > Mucha gente piensa que encriptar es una cosa que no necesitan. Si > piensan eso, es porque no se les ha dado una de estas situaciones: > > 1.- No le han robado nunca el ordenador (especialmente si es portátil) > 2.- No tiene ningún dato sensible en su directorio, por ejemplo, > imágenes comprometidas, passwords, documentos de word, paranoias que dan > por escribir, o cosas que en manos de según quien caigan, puedan > resultar vergonzosas para uno o para otros, recibos del banco, tarjetas > de crédito... > 3.- No trabaja en algún sitio donde es importante la confidencialidad de > su trabajo. Por ejemplo, de programador para una compañia que valora la > seguridad. > > Si no se te dan ninguna de esas circunstancias... enhorabuena, eres de > los pocos. :) La mayoría de la gente tiene como poco algo importante que > no es conveniente dejar al descubierto. Incluso en la caché del > navegador o en el lector de correo se puede encontrar algo sensitivo. > Por ejemplo si normalemente entras al correo con la opción de recordar > la contraseña, si entras en la cuenta del banco de la misma manera, en > los foros, páginas web, etc, el posible ladron de tu ordenador ¡¡¡la > puede liar bien gorda!!! > > No obstante, si el ordenador no es portátil y no está expuesto al > público, es tontería y quizá un poco paranoico. Cada uno debe valorar si > le merece la pena o no. > > ¿Como puede protegerse? > Hay dos formas, una más fácil que cubre solo aquello que es > verdaderamente importante, dejando al descubierto el resto, y otra que > es un poco más dificil, que es encriptar el home entero. > > Modo gráfico sencillo > --------------------- > > La primera forma se hace instalando los programa Cryptkeeper y encfs. > Ambos se encuentran en los repositorios de Debian. > > Arrancando Cryptkeeper, que aparece en el menú > Aplicaciones->Herramientas del sistema, aparece un icono con unas llaves > en la barra. > Tan solo hay que pulsar en ese icono y en New encripted folder, y seguir > todos los pasos, y así creas una carpeta encriptada. > El siguiente paso es igualmente fácil. Por ejemplo, imagina que quieres > proteger la configuración del navegador, y el correo del Thunderbird, > tan solo tienes que mover esos ficheros _dentro_ de la carpeta > encriptada, y crear un enlace en _tu_ directorio. Puedes hacerlo en el > Nautilus, o en la consola de la siguiente manera: > > $ mv .mozilla* carpeta_encriptada/ > $ ln -s carpeta_encriptada/.mozilla . > $ ln -s carpeta_encriptada/.mozilla-thunderbird . > > Tienes que tener especial cuidado de montar la carpeta encriptada cada > vez que vas a usar esos programas. Es muy fácil, solo tienes que pulsar > el icono, y seleccionar la carpeta, y te preguntará por el password. > Por supuesto, puedes hacer lo mismo con cualquier carpeta problemática. > Por ejemplo, con Documentos, Imágenes, etc. > > > Modo completo > ------------- > > Si quieres encriptar tu home completo, es un poco más complicado, pero > más seguro. > Lo primero es crear la carpeta encriptada. De momento usamos nombres > temporales. Siendo root, imagina que el usuario se llama javi: > > # mkdir /home/.javi > # mkdir /home/javi-temp > # encfs /home/.javi /home/javi-temp > > Con eso saldrá un asistente, que describe bastante bien los pasos, pero > si aún quieres más información, en otra consola puedes abrir el clásico > "man encfs", o bien instalar el paquete dwww, y apuntar a > http://localhost/cgi-bin/dwww?search=encfs con el navegador (muy > recomendable) > > Asegúrate de usar un password laaaaargo que puedas recordar, pero que no > sea especialmente fácil. Yo uso uno de 40 caracteres que es casi > aleatorio. Me cuesta unos segundos meterlo, pero no importa tanto porque > sirve para todo el dia y es realmente seguro. > Si metes un password de 5 caracteres es casi como si no metieras nada. > Por fuerza bruta hasta un ordenador corriente lo rompería. > > A continuación hay que salir de la cuenta, y quedarse en una consola: > > # /etc/init.d/gdm stop > > Y movemos todos los ficheros: > > # mv /home/javi/.??* /home/javi-temp > # mv /home/javi/* /home/javi-temp > > El motivo del primer comando tiene truco. En Linux, ten cuidado de hacer > algo como "mv .* donde_sea" porque entre los .* se incluye el directorio > superior. Es decir, que intentas mover el /home dentro de un > subdirectorio de /home, algo imposible, y devolverá error. Si alguna vez > usas "rm -rf .*" espera meterte en un gran lio (borraras todo lo que > contiene el directorio madre). > > Puede llegar a tardar horas si tienes 200 gb. > > Después solo hay que eliminar el directorio y cambiar de nombre el otro: > > # fuserumount -u /home/javi-temp > # rm -r /home/javi > # mv /home/javi-temp /home/javi > > y ya está, tu directorio encriptado. > No obstante... aun hay un paso importante: es conveniente que pida la > password al iniciar. Este password no es el mismo que el de tu usuario, > normalmente será mucho más largo y por lo tanto es conveniente que lo > pida una vez nada más cada vez que arrancas el ordenador. Por lo tanto > creamos un servicio: > > # gedit /etc/init.d/encfs > > y pegamos esto (modificado a tu usuario) (nota:cuidado que algunas > lineas pueden estar cortadas debido al lector de correos y puede darte > errores, corrígelas): > > -------8<--------8<---------8<-------- > #! /bin/sh > > # PATH should only include /usr/* if it runs after the mountnfs.sh script > PATH=/sbin:/usr/sbin:/bin:/usr/bin > DESC="Description of the service" > NAME=encfs > DAEMON=/usr/bin/$NAME > DAEMON_ARGS="--public /home/.javi /home/javi" > PIDFILE=/var/run/$NAME.pid > SCRIPTNAME=/etc/init.d/$NAME > > # Exit if the package is not installed > [ -x "$DAEMON" ] || exit 0 > > # Read configuration variable file if it is present > [ -r /etc/default/$NAME ] && . /etc/default/$NAME > > # Load the VERBOSE setting and other rcS variables > . /lib/init/vars.sh > > # Define LSB log_* functions. > # Depend on lsb-base (>= 3.0-6) to ensure that this file is present. > . /lib/lsb/init-functions > > # > # Function that starts the daemon/service > # > do_start() > { > # Return > # 0 if daemon has been started > # 1 if daemon was already running > # 2 if daemon could not be started > start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON > --test > /dev/null \ > || return 1 > start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ > $DAEMON_ARGS \ > || return 2 > # Add code here, if necessary, that waits for the process to be ready > # to handle requests from services started subsequently which depend > # on this one. As a last resort, sleep for some time. > } > > # > # Function that stops the daemon/service > # > do_stop() > { > fusermount -u /home/javi > # Return > # 0 if daemon has been stopped > # 1 if daemon was already stopped > # 2 if daemon could not be stopped > # other if a failure occurred > #start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile > $PIDFILE --name $NAME > RETVAL="$?" > [ "$RETVAL" = 2 ] && return 2 > # Many daemons don't delete their pidfiles when they exit. > rm -f $PIDFILE > return "$RETVAL" > } > > # > # Function that sends a SIGHUP to the daemon/service > # > do_reload() { > # > # If the daemon can reload its configuration without > # restarting (for example, when it is sent a SIGHUP), > # then implement that here. > # > start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name > $NAME > return 0 > } > > case "$1" in > start) > [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" > do_start > case "$?" in > 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; > 2) > do_start # repite hasta que vaya bien > [ "$VERBOSE" != no ] && log_end_msg 1 ;; > esac > ;; > stop) > [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" > do_stop > case "$?" in > 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; > 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; > esac > ;; > #reload|force-reload) > # > # If do_reload() is not implemented then leave this commented out > # and leave 'force-reload' as an alias for 'restart'. > # > #log_daemon_msg "Reloading $DESC" "$NAME" > #do_reload > #log_end_msg $? > #;; > restart|force-reload) > # > # If the "reload" option is implemented then remove the > # 'force-reload' alias > # > log_daemon_msg "Restarting $DESC" "$NAME" > do_stop > case "$?" in > 0|1) > do_start > case "$?" in > 0) log_end_msg 0 ;; > 1) log_end_msg 1 ;; # Old process is still running > *) log_end_msg 1 ;; # Failed to start > esac > ;; > *) > # Failed to stop > log_end_msg 1 > ;; > esac > ;; > *) > #echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2 > echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2 > exit 3 > ;; > esac > > : > > ---------8<------------8<------------8<--------------- > > > podemos probar el servicio de la siguiente manera: > > # /etc/init.d/encfs start > > y probar que desmonta de la siguiente manera: > > # /etc/init.d/encfs stop > > Una vez comprobado que funciona ok, ya puedes reiniciar, o simplemente > rearrancar el Gnome: > > # /etc/init.d/gdm start > > Y listo. Espero que os haya servidor, y si detectais un error o una > mejora, dejar comentarios. > > Saludos. > >
Se agradece... buenisimo -- Carlos Lazo B. Linux User 446689 http://www.carloslazo.cl.kz "El hecho de que tengas un trabajo es algo normal; el hecho de que seas bueno en tu trabajo es algo destacable" -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org