La habilidad de crear archivos comprimidos es algo que todo sysadmin debe tener. En posts anteriores explicamos cómo utilizar tar para realizar backups. Además de este uso clásico de la herramienta, poder disponer de uno o más archivos comprimidos en uno solo nos sirve para compartirlos y trasladarlos más fácilmente. Hasta aquí todo bien, pero ¿qué sucede si queremos proteger un tarball? Para realizar precisamente eso, en este post mostraremos cómo encriptar tarballs con contraseña utilizando OpenSSL. De esa manera, solamente alguien que conozca dicha clave podrá acceder al contenido.
Aunque generalmente se habla sobre OpenSSL en el contexto de servidores web, en este post lo utilizaremos para el propósito que acabamos de establecer.
Cómo encriptar tarballs
A continuación mostraremos que con la ayuda de OpenSSL podemos encriptar fácilmente un tarball. Si no todavía no hemos instalado este paquete, podemos hacerlo de la siguiente manera:
aptitude install openssl
o
yum install openssl
según nuestra distribución.
Una vez que hayamos instalado el paquete, el siguiente comando nos devolverá la lista de algoritmos de cifrado disponibles:
openssl list-cipher-algorithms
Si bien en teoría podríamos utilizar cualquiera al azar, es conveniente utilizar uno que sea lo más seguro posible y no presente vulnerabilidades conocidas. Por ejemplo, en este caso utilizaremos AES-256.
El siguiente comando nos permitirá comprimir el contenido del directorio actual y encriptar el tarball resultante con AES-256:
tar -czf - * | openssl enc -e -aes256 -out tarballseguro.tar.gz
En la Fig. 1 vemos qué sucede si intentamos descomprimir el tarball utilizando el método tradicional. Como el archivo fue encriptado utilizando OpenSSL, utilizaremos la misma herramienta para desencriptarlo y poder acceder a su contenido. El extracto aparecerá en el directorio resultados que creamos para tal fin:
openssl enc -d -aes256 -in tarballseguro.tar.gz | tar -xz -C resultados
En la Fig. 1 podemos ver el desarrollo de este ejemplo:
Espero que este post les haya resultado útil. ¡Nos vemos en el próximo!