Saltar a contenido

Index

Cifrar una partición o disco duro externo en GNU/Linux

A pesar de que soy un firme defensor de los asistentes gráficos, creo que ciertas cosillas, sobre todo las relativas a la seguridad y que llega con hacer una vez en la vida es conveniente aprender a hacerlas «de verdad». Una de esas cosas para las que merece la pena remangarse es aprender a cifrar o encriptar (sic) particiones o discos duros completos. Las instrucciones que voy a dar a continuación están pensadas para cifrar una partición en dispositivo externo pero también valdrían para una interna. Si lo que queremos es cifrar /home quedarían algunas cosas más por hacer que lo que aquí se describe. Por poner las cosas un poco en contexto, la idea de fondo de esta receta es que tengo un disco duro externo con varias particiones. En dos de ellas, cifradas ambas, hago copia de seguridad de un portátil y un sobremesa. La tercera es un almacen de archivos multimedia, música y vídeos obtenidos de gente que los compartía de forma no delictiva a través de internet.

Comprobaciones previas

  • Saber el nombre del dispositivo que equivale a la partición que queremos cifrar, este nombre acostumbra ser del tipo /dev/sdb1 si se trata de una partición o /dev/sdb si es todo el disco. A partir de ahora me referiré a este nombre como $PARTICION. El contenido de esa partición lo perderemos por completo. Podemos identicarlo ejecutando en una consola fdisk -l
  • Desmontar la partición sobre la que vayamos a trabajar umount $PARTICION
  • Instalar (en el raro caso de que todavía no lo esté) el paquete cryptsetup.

Comprobar que no hay errores en el disco

A continuación comprobaremos que la partición que vamos a cifrar no tiene errores físicos. Esta operación y la siguiente de rellenar con valores aleatorios el disco pueden tardar varias horas y no son estrictamente necesarias, pero yo recomiendo ejecutarlas.
badblocks -s -w $PARTICION -b $TAMAÑO_BLOQUE

Para saber cual es el tamaño de bloque en nuestra partición podemos usar el comando:
tune2fs -l /dev/sda5 | grep -i 'Block size'

Una forma de acelerar el proceso de chequeo de errores es usar el parámetro -t random. Por defecto lo que hace badblocks es llenar todos los bytes del disco duro con aa, 55, ff, 00. Primero escribe el primer patrón (aa) y luego comprueba que todos los bytes valen aa, a continuación hace lo mismo con el segundo patrón,… Con -t random da una sóla pasada donde el patrón usado es aleatorio. Es menos fiable pero más rápido. Tampoco es mala idea hacerlo si estamos más o menos seguros de que el disco está bien y nos vamos a saltar el paso de llenar el disco con valores aleatorios.

Aleatorizar el disco

Si somos un poco paranoicos lo que debemos hacer a continuación es llenar la partición con valores aleatorios, lo que nos protegerá de ciertos ataques criptográficos. Hay varias formas de hacer esto, a mayor nivel de paranoia más lento será. Yo lo hago con este comando:
shred -n 1 -v $PARTICION

El parámetro -n $numero define el número de pasadas que haremos, el valor por defecto es 3, pero con 1 es suficiente. Hay quien sugiere usar mejor el comando:
dd if=/dev/random of=$PARTICIÓN bs=$TAMAÑO_BLOQUE

Mientras que shred trabaja con datos pseudo-aleatorios (tomados de /dev/urandom) los que se usan con esta otra opción son realmente aleatorios, pero el tiempo que tarda en finalizar se multiplica.

Por otro lado prefiero usar shred a dd if=/dev/urandom of=%PARTICION bs=$TAMAÑO_BLOQUE (que es otra instrucción que se ve habitualmente por ahí en los how-to) porque con shred nos va informando del progreso del proceso y es una herramienta específica para este tipo de tareas.

Cifrar la partición

El siguiente paso consiste en indicar al sistema operativo el tipo de cifrado y contraseña queremos emplear para ese dispositivo.
cryptsetup -c aes -h sha256 -y -s 256 luksFormat $PARTICION

  • -c aes indica que vamos a usar como algoritmo de cifrado AES que es el más extendido. Otra buena opción sería Twofish.
  • -s 256: que el tamaño de la clave sean 256 bits que es más que suficiente. A mayor tamaño más seguridad pero mayor perdida de rendimiento
  • -h sha256: que use como algoritmo de hash SHA-256.

Si este comando nos da un error del tipo

Check kernel for support for the aes-cbc-plain cipher spec and verify that /dev/sdb6 contains at least 258 sectors

es seguramente porque no tenemos cargado el módulo dm-crypt. Para cargarlo ahora mismo ejecutamos
modprobe dm-crypt

Para hacer que se cargue automáticamente cada vez que arrancamos el ordenador añadimos al archivo /etc/modules una línea que contenga unicamente el módulo a cargar, en este caso
dm-crypt

Ahora debemos comprobar si podemos acceder al volumen cifrado
cryptsetup luksOpen $PARTICION $NOMBRE

Este comando es algo así como decirle al kernel que el volumen virtual descifrado, correspondiente al volumen físico cifrado $PARTICION va a ser /dev/mapper/$NOMBRE. Este comando no es equivalente a montar la partición, es más bien inventarnos una especie de interfaz hardware para acceder a nuestros datos descifrados.

Creamos un nuevo sistema de archivos en la partición

Si todo ha ido bien ahora debemos formatear la partición, yo uso el sistema de archivos ext4.
mkfs.ext4 [-L $ETIQUETA] -m 1 /dev/mapper/$NOMBRE

  • -L $ETIQUETA: Asigna a esa partición un determinado nombre. Yo uso esta opción sobre todo cuando se trata de dispositivos externos, ya que cuando conectemos el dispositivo este se montará automáticamente como /media/$ETIQUETA, si no tiene etiqueta será simplemente /media/disk. Hay que tratar de usar un identificador que sea difícil que se repita, para poder asegurarnos que no hay otro dispositivo montado con el mismo nombre yo por ejemplo uso el estilo fpuga_backup
  • -m 1: Es para reservar un 1% del disco duro para el superusuario en lugar del 5% por defecto. Es útil dejar siempre algo pero 5 es demasiado

Para cerrar el volumen descifrado y que no se puede acceder a él con la clave haremos
cryptsetup luksClose /dev/mapper/$NOMBRE

Trabajar con el disco cifrado

Con los pasos dados hasta aquí ya tenemos listo nuestro volumen cifrado, la cuestión ahora es ¿como empezar a meter datos en él?. Primero descifraremos el disco (metiendo la clave), creándose automáticamente un volumen virtual descifrado y luego montaremos el volumen, esto lo hacemos con los comandos:
cryptsetup luksOpen $PARTICION $NOMBRE<br></br>mount /dev/mapper/$NOMBRE $PTO_MONTAJE

En el caso de que sea un partición interna es conveniente que definamos sus propiedades de montaje en /etc/fstab. En el caso de ser una externa es bastante sencillo, ya que al conectar el dispositivo automáticamente nos saldrá una ventana de diálogo preguntándonos la clave. Al introducirla, si hemos definido una etiqueta para la partición está se montará en /media/$ETIQUETA.

Para desmontar la partición y cerrar el volumen descifrado podemos hacer click con el botón derecho sobre la partición y darle a desmontar o bien ejecutar los comandos:
umount $PTO_MONTAJE && cryptsetup luksClose /dev/mapper/$NOMBRE

Referencias

[Vigo] Dúas actividades para o martes 29

Todos sabemos que o nadal é unha época na que as ONG aproveitan o espíritu destas festas para incrementar as súas campañas de captación de fondos e sensibilización. Ben sei que hai moita xente que recela destas campañas navideñas por consideralas aproveitadas, inda así correrei o risco de promocionar algúns actos, ben porque sei que son desinteresados, ben porque coñezo aos organizadores e estou seguro de que van a estar ben.

Martes, 29 de Decembro as 19:30.

Conferencia de Arcadi Oliveres, Acabar coa pobreza en tempos de crise. Arcadi é catedrático de economía na Universidade Autónoma de Barcelona e un coñecido decrecionista. A conferencia é na Sala de Conferencias do Centro Cultura Caixanova (Policarpo Sanz, 13). Aconferencia está organizada pola Rede Social Galicia Sur. Tanto se es decrecionista, como se queres saber algo sobre o tema, coma se estás en contra e queres coselo a cuestións esta é a túa oportunidade.

29 de Decembro as 22:30

A ONG Entreculturas, en colaboración con COCONUT , invítanos ao 3º Concerto Solidario de Nadal na Fábrica de Chocolate, en beneficio do Proxecto «Apoyo a la Reconstrucción en Sur Sudán». Actuarán Maryland e Nico Pastoriza (e amigos, …) Entrada 5€

Actualización: Aprovecho esta entrada para comentar que el Martes 5 de Enero habrá también un acto bastante chulo para reclamar un albergue y centro de inclusión social para Vigo.

Plugin de WordPress para tener un blogroll dinámico

Estoy probando en marinerosbouzas.com un plugin para wordpress llamado SBS Blogroll bastante chulo que te permite incluir en tu blog un blogroll dinámico. Es decir en lugar de tener en la barra lateral una lista de enlaces estática a los blogs que te gustan pasarás a tener una lista con el título de las últimas entradas que haya habido en esos blogs. El plugin tiene la opción además de

  • Añadir el favicon a cada entrada enlazada que aparezca en tu blog
  • Seleccionar el número total máximo de entradas que habrá y el número máximo de entradas que pueden provenir de cada blog en tu lista
  • Desplegar la fecha de cuando fue escrita la entrada
  • Personalizar el estilo de como se muestran las entradas mediante css

Es un plugin sencillito pero potente que nos permite evitar el uso de servicios externos como feevy.

La única pega que le veo, es que por lo que he entendido revisando el código del plugin, lo que hace es cada vez que se muestra nuestro blog a un usuario se itera a través de toda la lista de blogs que tengamos, si se ha cumplido un tiempo de cache fijado por nosotros «va» al blog de destino a buscar la información, si no la extrae directamente de la cache, parsea la información recibida (esté en cache o no) para extraer el título, fecha, favicon, … y una vez tiene los datos de cada entrada los muestra. Todo este proceso puede consumir bastantes recursos y ralentizar nuestra página. Lo mínimo para optimizar el plugin es fijar un tiempo de cache en las opciones de 43200 segundos (12 horas) dado que poca gente actualiza en realidad más de 2 veces al día. Es decir, lo que hacemos con esto es indicar al plugin que sólo compruebe actualizaciones en los blogs que tenemos en la lista cada 12h en lugar de los 10′ que pone el plugin por defecto.

Como siempre, si tenemos muchas visitas o muchos plugins es conveniente que instalemos algún plugin específico para realizar el cacheado.

Otro pequeño pero de este plugin es que la versión actual tiene un pequeño bug que hace que el favicon sólo se muestre cuando indicamos que se muestre también la fecha. Ya lo he corregido y he mandando un patch (bastante sencillito) al autor por lo que espero que salga pronto una nueva versión.

Si no podéis esperar a la nueva versión, instalar el plugin de la forma habitual y luego sobreescribir con este archivo el que que haya en la carpeta wp-content/plugins/sbs-blogroll/ de vuestra instalación de wordpress. (para poder bajar el archivo hay que hacer click con el botón derecho sobre el enlace y darle a guardar como)

Actualización 28/12: La versión 0.3 del plugin ya funciona correctamente. Thanks to the author for the quick fix.

Un par de párrafos de Jeniffer Gobierno

He acabado Jennifer Gobierno hace un par de días y me gustaría dejaros un par de párrafos que reflejan para mi una de las ideas más interesantes del libro sobre el ¿hipotético? futuro.

De acuerdo. Conoces la participación de Nike en el programa de fidelidad de clientes de US Alliance. ¿Qué te parece?
John reflexionó. Estaba convencido de que los programas de fidelización no servían para nada, sobre todo a una empresa de bienes de consumo como Nike. Pero obviamente ésa no era la respuesta qeu buscaba Gregory.
– Creo que pueden ser muy valiosos si se aplican correctamente.
– Los programas de fidelidad no sirven para nada – contestó Gregory. Kohn juraba en silencio. Le habían engañado-. ¿De verdad piensas que alguien compra la marca Nike porque le van a dar puntos que puede canjear por kilómetros de viaje en avión? ¡No jodas!
John intentó seguirle la corriente a Gregory.
– Señor, estoy completamente de acuerdo. Nuestra marca se debilita si hacemos descuentos y promociones. Al contrario, cuanto más alto el precio, más vendemos.
– Sin embargo, Nike considera que el programa US Alliance es la iniciativa más importante que ha hecho desde hace veinte años. ¿Por qué?
John no abrió la boca.
– ¿Sabes como empezó US Alliance, John?
– ¿Algo de puntos a cambio de kilómetros de vuelo?
– Eso es. Si llenabas el coche de gasolina y pagabas con la tarjeta American Express, te daban puntos que luego podías canjear por kilometraje de avión con American Airlines. Quien no tenía la American Express pedía una rápidamente. Y ahí cambió el ambiente de la competitividad para siempre. Porque de repente entraron a competir las empresas de tarjetas de crédito con las líneas aéreas.
– Ya
– Entonces, va Visa y también hace un trato con una línea aérea para poder dar puntos que se canjean por kilómetros de vuelo. Y piensan: «A ver, ¿qué podemos hacer para que nuestro programa sea más atractivo?». Y se dan cuenta…
– Más formas de ganar puntos. Más servicios. Más empresas.
– Y diez años después tenemos US Alliance y Team Advantage, y no quedan más de cinco empresas en el mundo que no hayan firmado con alguna de las dos. Cuantas más empresas se asocien, más clientes y más empresas se querrán asociar. A finales del mes pasado, US Alliance tenía quinientos millones de socios. T.A. tiene doscientos noventa millones.
[…]
– Pero los clientes de Boeing son industrias. ¿Qué gana?
– La batalla ha empezado. Todas las empresas Alliance están compitiendo con las de Team Advange. Todas las personas que viajan con una línea aérea Team Advantage, comprarán un ordenador Compaq en lugar de un IBM. Boeing está con nosotros, porque, si no, United Airlines no le compra nada.

En defensa de los derechos fundamentales de Internet

Ante la inclusión en el Anteproyecto de Ley de Economía Sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que:

  1. Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  2. La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  3. La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  4. La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  5. Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  6. Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  7. Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  8. Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  9. Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  10. En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Por favor difunde este manifiesto en tu blog, twitter, redes sociales, foros o imprímelo y repártelo.