LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.

Ratio: 5 / 5

Inicio activadoInicio activadoInicio activadoInicio activadoInicio activado
 

Cuando tiene datos importantes y confidenciales, es crucial tener una capa adicional de seguridad para sus archivos y directorios, especialmente cuando necesita transmitir los datos con otras personas a través de una red.

Por esa razón, estoy buscando una utilidad para encriptar y desencriptar ciertos archivos y directorios en Linux, afortunadamente encontré una solución que tar con OpenSSL puede satisfacer mis necesidades, sí, con la ayuda de estas dos herramientas puedes crear y encriptar fácilmente un archivo de almacenamiento sin ningún tipo de molestia.

Una versión más segura de éste proceso, se desarrola en el artículo:

Como tener seguro, protegido y encriptado tu Navegador Web Firefox (versión mejorada - versión 3)

En este artículo, veremos cómo crear y cifrar un archivo comprimido tar o gz ( gzip ) con OpenSSL :

Recuerde que la forma convencional de usar OpenSSL es:

# Comando openssl Argumentos de opciones del comando

Encriptar archivos en Linux

Para cifrar el contenido del directorio de trabajo actual (dependiendo del tamaño de los archivos, esto puede llevar un tiempo):

# tar -czf - * | openssl enc -e -aes256 -out secured.tar.gz

Explicación del comando anterior:

  1. enc  -> comando openssl para cifrar con cifrados
  2. -e    -> una opción del comando enc para cifrar el archivo de entrada, que en este caso es la salida del comando tar
  3. -aes256 -> el cifrado de la encriptación
  4. -out -> opción enc utilizada para especificar el nombre del nombre de archivo de salida, secure.tar.gz

Desencriptar archivos en Linux

Para descifrar el contenido de un archivo tar, use el siguiente comando.

# openssl enc -d -aes256 -in secured.tar.gz | tar xz -C test

Explicación del comando anterior:

  1. -d -> utilizado para descifrar los archivos
  2. -C -> extraer en el subdirectorio denominado test (si quitas "-C test" será en el directorio actual)

La siguiente imagen muestra el proceso de cifrado y lo que sucede cuando intenta:

  1. extraer el contenido del tarball de la forma tradicional
  2. use la contraseña incorrecta, y
  3. cuando ingresa la contraseña correcta

Cifrar o descifrar un archivo Tar en Linux

Cuando trabaja en una red local o en Internet, siempre puede proteger sus documentos o archivos vitales que comparte con otros cifrándolos, lo que puede ayudar a reducir el riesgo de exponerlos a atacantes malintencionados.

Observamos una técnica simple para cifrar archivos tar utilizando OpenSSL, una herramienta de línea de comandos de openssl. Puede consultar su página de manual para obtener más información y comandos útiles.

Como ejemplo, puedes ver este script para hacer una copia "segura" del directorio de Mozilla. (que puedes modificar a tu gusto)

Ojo, haz una copia de seguridad previa de tu directorio $HOME/.mozilla, por ejemplo así:

tar cvfz CopiaSeg-mozilla.tgz .mozilla,

podrás descomprimir la copia así:

tar xvfz CopiaSeg-mozilla.tgz

Fichero: cifra-firefox.sh


#!/bin/bash
##################################################################################
# versión 1.22 -por corrección de errores- Fecha 16/05/2022
# Script para realizar el trabajo de encriptación automatizado. # (c) Javier Orovengua Miguel, para ExtreHost.com y Linuxparty.es # El script se puede compartir bajo los términos de la licencia GPL # y modificar, respetando el autor y estos créditos de inicio.
# --------------------------------------
# USO:
# --------------------------------------
# La ejecución del script sin argumentos, cifrará el directorio en $HOME/.mozilla
#
# La ejecución del script con el parámetro "-u", descifrará el archivo previamente
# creado por la ejecución del script sin argumentos y con la contraseña correcta.
#################################################################################### # Definimos colores, sólo por diversión rojo='\033[0;31m' rojoI='\033[1;31m' rosaI="\033[1;35m" amarillo='\033[1;33m' cian='\033[1;36m' azul='\033[0;34m' verde='\033[1;32m' destaca='\033[1;38m' NC='\033[0m' # No Color printf ${NC} # Si usamos la opción -u, desencriptará el archivo. if [ "$1" == "-u" ] ; then echo "DEScifrando..." echo "Para encriptar, use el comando sin argumentos"
# Descomprime
openssl enc -d -aes256 -in secured-mozilla.tgz | tar xz -C /
# Comprobamos que está el directorio. ls -l $HOME/.mozilla echo "--------------" echo "--------------"
echo "¿Ejecutar firefox ahora?" if /usr/local/bin/espera.sh ; then echo "SI" firefox else echo "NO" fi
echo "--------------" echo "--------------" echo "¿Borrar POR SEGURIDAD el directorio de Trabajo?" echo "--------------" echo "--------------"
if /usr/local/bin/espera.sh ; then echo "SI" rm -rfv $HOME/.mozilla else echo "NO" fi exit fi
# Sin opciones, el archivo comprime el directorio.
echo "Comprimiendo y cifrando..." echo "Para desencriptar use el mismo comando con la opción -u " tar -czf - $HOME/.mozilla | openssl enc -e -aes256 -out secured-mozilla.tgz

Yo, el script de arriba lo utilizo con mucha frecuencia, ya que me sirve, para de forma controlada tener una versión actualizada, ya que si tienes activa la cuenta de Sincronización de Firefox (recomendado), tendrá menos que sincronizar entre varios dispositivos si tienes actualizado el fichero comprimido y protegido, por lo que de vez en cuando hago:

# Descomprimo y descifro... 
cifra-firefox.sh -u
# Si es Windows
cifra-firefox.bat -u


# Trabajo con él y después...
# Lo vuelvo a cifrar y comprimir.
cifra-firefox.sh
# Si es Windows
cifra-firefox.bat
 

El script "espera.sh" (Solo para Linux y Mac)

#!/bin/bash
# El script también puede utilizarlo de la siguiente manera:

# if /root/bin/espera.sh ; then
#   echo "SI"
# else
#   echo "NO"
# fi

echo -n "Pulse una tecla para continuar... (o 's' o 'n' para confirmar)"; read -n 1 key
if [ "$key" == 's' -o "$key" == 'S' ]; then
 exit 0 # Todo OK
else
 exit 1 # Contrario
fi

Como de costumbre, para cualquier pensamiento adicional o consejo simple que desee compartir con nosotros, utilice el formulario de comentarios a continuación y en el próximo consejo, veremos una forma de traducir los permisos rwx en formato octal.

Un script mejorado de la versión anterior para colocar en el escritorio sería éste.

Archivo: cfirefox.sh

 
#!/bin/bash
###################################################################################
# (c) Javier Orovengua Miguel, para ExtreHost.com y LinuxParty.es
# El script se puede compartir bajo los términos de la licencia GPL
# y modificar, respetando el autor y estos créditos de inicio.
# Versión del Script 1.15 -por corrección de errores 2022/05/16-
####################################################################################

# Definimos colores, primer plano
PNegro='\033[30m'
PRojo='\033[31m'
PVerde='\033[32m'
PNaranja='\033[33m'
PAzul='\033[34m'
PMagenta='\033[35m'
PCian='\033[36m'
PGris='\033[37m'
NC='\033[39m'
# Colores de fondo, video inverso o segundo plano
IGris='\033[100m'               # Gris oscuro
IRojo='\033[101m'               # Luz roja
IVerde='\033[102m'              # Verde claro
IAmarillo='\033[103m'           # Amarillo
IAzul='\033[104m'               # Azul claro
IMagenta='\033[105m'            # Morado claro
ICian='\033[106m'               # Verde azulado
IBlanco='\033[107m'             # Blanco
INC='\033[40m'
clear

# El script es para colocarlo en /usr/local/bin y crear un archivo de escritorio
# sustituyendo al que hace la ejecución directa de firefox. (archivo separado)
# ---------------- USO ----------------------
# La ejecución directa del escritorio desencriptará el archivo comprimido
# y encriptado, que previamente hemos creado con el escript "cifrar-firefox.sh"
# Al salir de firefox, se borrará el contenido en $HOME/.mozilla, quedando
# protegido su contenido de curiosos.
#
# Opcionalmente, puede usar este mismo script para hacer el mismo trabajo que
# hace "cifrar-firefox.sh", incluyendo el argumento -c, para crear por primera
# vez el archivo comprimido y encriptado con el que va a trabajar.
cd $HOME

# Comprobamos que existe y si existe tratamos de ejecutar mozilla.
if [ -d $HOME/.mozilla ] ; then
kdialog --passivepopup  "Decidimos preservar la instalación actual, asegurela protegiendo las contraseñas con una clave maestra, y borrando la caché, búsquedas y cookies y resto del contenido al salir." 20
kdialog --passivepopup  "Usa PREVIAMENTE la aplicación \"cifra-firefox.sh\" y borra el directorio $HOME/.mozilla, para no ver estos mensajes." 24

 # Comprobamos si existe una versión descargada e instalada de firefox
   if [ -f $HOME/Descargas/firefox/firefox ] ; then
        $HOME/Descargas/firefox/firefox
   elif [ -f $HOME/firefox/firefox ] ; then
        $HOME/firefox/firefox
   else 
        # Si no hay ninguna instalación.
        firefox
   fi
kdialog --passivepopup "Hasta luego!" 3
exit
fi


# Para comprimir el archivo y cifrar por primera vez
if [ "$1" == "-c" ] ; then
 echo "Comprimiendo y cifrando..."
 cd $HOME
 if [ -d $HOME/.mozilla ] ; then
   tar -czf - .mozilla | openssl enc -e -aes256 -out secured-mozilla.tgz
  else
   printf "${PAzul}${ICian}"
   echo "No hay directorio que comprimir, no existe"
   printf "${NC}${INC}"
 fi
fi

echo "DEScifrando..."
printf ${PNegro}${IVerde}
echo "Introduce la contraseña:"
printf ${NC}${INC}


RUTA=$HOME

 
 if [ -f $HOME/secured-mozilla.tgz ] ; then
   openssl enc -d -aes256 -in $HOME/secured-mozilla.tgz | tar xz -C /
   # Detectamos una instalación personalizada de Firefox.
   # Por ejemplo en:
   if [ -f $HOME/Descargas/firefox/firefox ] ; then
   	$HOME/Descargas/firefox/firefox
   elif [ -f $HOME/firefox/firefox ] ; then
        $HOME/firefox/firefox
   else 
   	# Si no hay ninguna instalación.
   	firefox
   fi
   pwd
   echo $RUTA/.mozilla
   sleep 2
   rm -rf $RUTA/.mozilla
  else
    printf ${PRojo}${IAmarillo}
    echo "No exsite el fichero: $HOME/secured-mozilla.tgz"
    printf ${NC}${INC}
 fi

printf ${PNegro}${IVerde}
echo "CORRECTAMENTE Terminado"
printf ${NC}${INC}
sleep 1
# Fin del script
exit

El archivo del escritorio: (Colocar tal cual).

Recordar que debe indicarse que el script debe ejecutarse en una ventana de Shell, para que pueda solicitar la contraseña.

Arhivo: cFirefox.desktop


[Desktop Action new-private-window]
Exec=firefox --private-window %u Name=Open a New Private Window Name[en-US]=New Private Window Name[es-AR]=Nueva ventana privada Name[es-CL]=Nueva ventana privada Name[es-ES]=Nueva ventana privada Name[es-MX]=Nueva ventana privada [Desktop Action new-window] Exec=firefox --new-window %u Name=Open a New Window Name[en-GB]=New Window Name[en-US]=New Window Name[es-AR]=Nueva ventana Name[es-CL]=Nueva ventana Name[es-ES]=Nueva ventana Name[es-MX]=Nueva ventana [Desktop Entry] Actions=new-window;new-private-window; Categories=Network;WebBrowser; Comment[es_ES]=Navegue por la web Comment=Navegue por la web Exec=/usr/local/bin/cfirefox.sh GenericName[es_ES]=Navegador web GenericName=Navegador web Icon=firefox Keywords=web;browser;internet; MimeType=text/html;application/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml; Name=cFirefox Path= StartupNotify=true Terminal=true TerminalOptions= Type=Application Version=1.0 X-DBUS-ServiceName= X-DBUS-StartupType=none X-Desktop-File-Install-Version=0.23 X-KDE-SubstituteUID=false X-KDE-Username=

Binarios para Windows:

  1. Comando: tar -> http://gnuwin32.sourceforge.net/packages/gtar.htm
  2. Comando: gzip -> http://gnuwin32.sourceforge.net/packages/gzip.htm
  3. Comando: openssl -> http://gnuwin32.sourceforge.net/packages/openssl.htm

 Debe instalar todos los programas en un mismo directorio, y ese mismo directorio debe incluirlo en la ruta "Path" del sistema, para que sea funcional, los scripts de abajo, también los puede incluir en la ruta Path

¿Cómo añadir o modificar el Path en Windows 10/11 (y siguientes)?

  1. En Buscar, busque y seleccione: Sistema (Panel de control)
  2. Haga clic en el enlace "Configuración avanzada del sistema"
  3. Haga clic en "Variables de entorno". ...
  4. En la ventana "Editar la variable del sistema" (o Nueva variable del sistema), debe especificar el valor de la variable de entorno PATH
  5. En mi caso, guardé todos los binarios y ficheros .bat en: C:\Program Files\GnuWin32\bin

 

Creé el siguiente script que ha funcionado y funciona sin problemas en Windows 10 y 11, el mismo indica la ruta de trabajo. La filosofía de ambos ficheros de proceso por lotes es igual que el de los scripts de Linux arriba mencionados.

fichero: cifra-firefox.bat

@rem Versión 1.11
@
echo off cd %HOMEPATH% echo %HOMEPATH% IF "%1"=="-u" GOTO Descifra GOTO :Cifra :Descifra echo DEScifrando... echo Para encriptar use el mismo comando sin argumentos openssl enc -d -aes256 -in secured-mozilla.tar.sec > secured-mozilla.tar tar xf secured-mozilla.tar
rem volcar el contenido para evitar recuperación por un "undelete" o similar.
rem echo "0" > secured-mozilla.tar del secured-mozilla.tar echo --------------- echo --------------- dir AppData\Roaming\Mozilla echo --------------- echo --------------- echo ¿Ejecutar firefox ahora? 1-si / 2-no set /p eoption=">>" IF %eoption%==1 ( echo "Iniciar Firefox..." start "C:\Program Files\Mozilla Firefox" /b firefox.exe ) ELSE ( echo "Fin" goto :Fin ) echo ----------------------- echo ----------------------- echo NO LO BORRE HASTA QUE TERMINE DE USAR FIREFOX !!!!! pause echo ¿Por seguridad borrar el directorio de trabajo? 1-si / 2-no echo ----------------------- echo ----------------------- set /p doption=">>" IF %doption%==1 ( cd AppData\Roaming del /s /q Mozilla exit ) ELSE ( echo "Fin" goto :Fin ) :Cifra echo "Comprimiendo y cifrando..." echo "Para desencriptar ejecte este script con la option -u" tar -cf - AppData\Roaming\Mozilla | openssl enc -e -aes256 -out secured-mozilla.tar.sec :Fin

Yo, el script (proceso por lotes en Windows) de arriba lo utilizo con mucha frecuencia, ya que me sirve, para de forma controlada tener una versión actualizada, ya que si tienes activa la cuenta de Sincronización de Firefox (recomendado), tendrá menos que sincronizar entre varios dispositivos si tienes actualizado el fichero comprimido y protegido, por lo que de vez en cuando hago:

# Descomprimo y descifro... 
cifra-firefox.bat -u

# Trabajo con él y después...
# Lo vuelvo a cifrar y comprimir.
cifra-firefox.sh

El comando cfirefox, que es la versión "rápida", para ejecutar firefox con el paquete encriptado. Debe crear un acceso directo en el escritorio y ya está. Y tiene que indicar que se debe ejecutar desde una ventana de DOS.

Archivo: cfirefox.bat

@rem Versión 1.1
@echo off

cd %HOMEPATH%
echo %HOMEPATH%
echo VERSION 1.1
IF "%1"=="-c" GOTO :Cifrar
:Descifra
  echo DEScifrando...
  echo Introduce la contraseña:
  echo Para encriptar use el mismo comando con argumento -c
  openssl enc -d -aes256 -in secured-mozilla.tar.sec > secured-mozilla.tar
  tar xf secured-mozilla.tar
rem volcar el fichero para evitar la recuperación por un "undelete" o similar
rem echo "0" > secured-mozilla.tar del secured-mozilla.tar echo --------------- echo --------------- dir AppData\Roaming\Mozilla echo --------------- echo --------------- rem echo ¿Ejecutar firefox ahora? 1-s / 2-no rem set /p eoption=">>" rem IF %eoption%==1 ( echo . echo "Iniciar Firefox..." start "C:\Program Files\Mozilla Firefox" /b firefox.exe rem ) ELSE ( rem echo "Fin" rem goto :fin rem ) echo ----------------------- echo ----------------------- echo NO LO BORRE HASTA QUE TERMINE DE USAR FIREFOX !!!!! pause echo ¿Por seguridad borrar el directorio de trabajo? 1-s / 2-no echo ----------------------- echo ----------------------- set /p doption=">>" IF %doption%==1 ( cd AppData\Roaming del /s /q Mozilla goto :fin ) ELSE ( echo "Fin" goto :fin ) exit :Cifrar echo Comprimiendo y cifrando..." echo Para desencriptar ejecute este script SIN argumentos tar -cf - AppData\Roaming\Mozilla | openssl enc -e -aes256 -out secured-mozilla.tar.sec :fin

Si quiere dejar una versión mejorada de ambos ficheros de proceo por Lote de Windows, déjelo en los comentarios, los incluiremos en el artículo y le añadiremos sus referencias.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías

Usamos cookies propias y de terceros para mejorar la navegación y tareas analíticas. Al continuar navegando entendemos que aceptas nuestra política de cookies. Ver política