Compare commits
	
		
			No commits in common. "77d7355497d074c57eb9f63fb113ea158eb91be9" and "88d122ea6e4fccb2b35c38a0eeb34a5d75e2153a" have entirely different histories.
		
	
	
		
			77d7355497
			...
			88d122ea6e
		
	
		
					 10 changed files with 39 additions and 416 deletions
				
			
		|  | @ -49,7 +49,7 @@ Nota: En determinadas versiones, las actualizaciones a partir de los repositorio | |||
| 
 | ||||
| #### Inicialización de configuración GPG | ||||
| 
 | ||||
| Como un requisito de nuestra plataforma, todos los desarrolladores deberán contar, por lo menos, con una clave GPG, que se utilizará para firmar o decifrar archivos, correos u otros.  Esto se hará con el uso del comando gpg (previamente instalado con la ejecución de bin/boostrap.sh). | ||||
| Como un requisito de nuestra plataforma, todos los desarrolladores deberán contar, por lo menos, con una clave GPG, que se utilizará para firmar o decifrar archivos, correos u otros.  Esto se hará con el uso del comando gpgp que ya debió ser instalado con la ejecución de bin/boostrap.sh. | ||||
| 
 | ||||
| En este paso estableceremos la configuración por defecto de GPG: | ||||
| 
 | ||||
|  |  | |||
|  | @ -56,9 +56,6 @@ install() { | |||
|     local DIALOG_PACKAGE=dialog | ||||
| 	local SOPS_PACKAGE=sops | ||||
|     local GNUPG_PACKAGE=gnupg | ||||
|     local ZIP_PACKAGE=zip | ||||
|     local SQLITE_COMMAND=sqlite3 | ||||
|     local SQLITE_PACKAGE="$SQLITE_COMMAND libsqlite3-dev" | ||||
| 
 | ||||
| 	# Load base bash library | ||||
| 	source $BIN_PATH/$LIBRARY/base.lib | ||||
|  | @ -101,14 +98,7 @@ install() { | |||
| 	command_installed $DIALOG_PACKAGE | ||||
| 	if [ $? -ne 0 ] | ||||
| 	then | ||||
| 	  os_pkgs_install $ZIP_PACKAGE | ||||
| 	fi | ||||
| 
 | ||||
| 	# Install sqlite3 from OS Packages | ||||
| 	command_installed $SQLITE_COMMAND | ||||
| 	if [ $? -ne 0 ] | ||||
| 	then | ||||
| 	  os_pkgs_install $SQLITE_PACKAGE | ||||
| 	  os_pkgs_install $DIALOG_PACKAGE | ||||
| 	fi | ||||
| 
 | ||||
| 	# Install python from OS Packages | ||||
|  |  | |||
|  | @ -1 +0,0 @@ | |||
| devs | ||||
|  | @ -1 +0,0 @@ | |||
| secure/backups | ||||
|  | @ -1,17 +0,0 @@ | |||
| gh | ||||
| gnupg2 | ||||
| iftop | ||||
| imagemagick | ||||
| iperf | ||||
| jq | ||||
| lsof | ||||
| mutt | ||||
| net-tools | ||||
| nmap | ||||
| paperkey | ||||
| pipx | ||||
| python3-pip | ||||
| python3-gitlab | ||||
| remmina | ||||
| terminator | ||||
| wireshark | ||||
|  | @ -1,135 +0,0 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # gpg_backup.sh | ||||
| # Modified: 2024/12/09 10:27:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||
| # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||
| # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||
| # o (a su elección) cualquier versión posterior. | ||||
| # | ||||
| # Este programa se distribuye con la esperanza de que sea útil, | ||||
| # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||
| # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||
| # Licencia Pública Affero General de GNU para obtener más detalles. | ||||
| # | ||||
| # Debería haber recibido una copia de la Licencia Pública Affero General | ||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| DEVSPATH=devs | ||||
| BIN_HOME=$HOME/$DEVSPATH | ||||
| BIN_MESG=bin/msg | ||||
| BIN_LIBS=bin/lib | ||||
| 
 | ||||
| # CHECK SHELL LANGUAGE | ||||
| BIN_LANG=${LANG:0:2} | ||||
| 
 | ||||
| # LOAD BASE BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/base.lib | ||||
| #baselib_test | ||||
| 
 | ||||
| # LOAD CONSOLE BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/console.lib | ||||
| #consolelib_test | ||||
| 
 | ||||
| # LOAD SQLITE3 BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/sqlite.lib | ||||
| #sqlitelib_test | ||||
| 
 | ||||
| # LOAD GPG BASH LIBRARY | ||||
| source $BIN_HOME/$BIN_LIBS/gpg.lib | ||||
| #gpglib_test | ||||
| 
 | ||||
| # Load head messages | ||||
| load_messages $BIN_HOME $BIN_MESG $BIN_LANG "head" | ||||
| 
 | ||||
| # Load gpg messages | ||||
| load_messages $BIN_HOME $BIN_MESG $BIN_LANG "gpg" | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| ########### MAIN PROGRAM ########### | ||||
| 
 | ||||
| # Set program title | ||||
| title="$head_000 $head_002" | ||||
| apps_title="${gpmsg_001}" | ||||
| 
 | ||||
| # Check if dialog is not installed, exited! | ||||
| command_installed "dialog" | ||||
| if [ $? -ne 0 ] | ||||
| then | ||||
|   display_devstools_header "${gpmsg_001}" | ||||
|   echo "${head_001}" | ||||
|   exit 200 | ||||
| fi | ||||
| 
 | ||||
| # Check if os is valid! | ||||
| get_osname | ||||
| if [ "${os_name}" == "${head_unknow}" ] | ||||
| then | ||||
|   dialog_error_box "${head_error}" "${head_os_error}" | ||||
|   exit 3 | ||||
| fi | ||||
| 
 | ||||
| command_installed "zip" | ||||
| if [ $? -ne 0 ]; then | ||||
|   dialog_error_box "${head_error}" "${head_zip}" | ||||
|   exit 9 | ||||
| fi | ||||
| 
 | ||||
| # Backup de claves GPG | ||||
| dialog_yesno "${gpmsg_105}" | ||||
| case ${result} in | ||||
|   0) | ||||
|     gpg_backup "$DB_GPG_PATH/$DB_GPG_FILE" "$BIN_HOME/$GPG_CONFIG_PATH" "$DATEBAK" | ||||
|     rc=$? | ||||
|     case $rc in | ||||
|       0) | ||||
|         dialog_error_box "${head_info}" "${gpmsg_106}" | ||||
|         clear | ||||
|         exit 0 | ||||
|         ;; | ||||
|       10) | ||||
|         dialog_error_box "${head_error}" "${gpmsg_107}" | ||||
|         clear | ||||
|         exit $rc | ||||
|         ;; | ||||
|       11) | ||||
|         dialog_error_box "${head_error}" "${gpmsg_108}" | ||||
|         clear | ||||
|         exit $rc | ||||
|         ;; | ||||
|       13) | ||||
|         dialog_error_box "${head_error}" "${gpmsg_109}" | ||||
|         clear | ||||
|         exit $rc | ||||
|         ;; | ||||
|       14) | ||||
|         dialog_error_box "${head_error}" "${gpmsg_111}" | ||||
|         clear | ||||
|         exit $rc | ||||
|         ;; | ||||
|       15) | ||||
|         dialog_error_box "${head_error}" "${gpmsg_112}" | ||||
|         clear | ||||
|         exit $rc | ||||
|         ;; | ||||
|       18) | ||||
|         dialog_error_box "${head_error}" "${gpmsg_110}" | ||||
|         clear | ||||
|         exit $rc | ||||
|         ;; | ||||
|       *) | ||||
|         dialog_error_box "${head_error}" "${head_op_error} (${rc})" | ||||
|         exi $rc | ||||
|         ;; | ||||
|     esac | ||||
|     ;; | ||||
|   *) | ||||
|     dialog_error_box "${head_error}" "${head_op_error}" | ||||
|     ;; | ||||
| esac | ||||
| 
 | ||||
| # End Main Program | ||||
| clear | ||||
							
								
								
									
										118
									
								
								bin/lib/gpg.lib
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								bin/lib/gpg.lib
									
									
									
									
									
								
							|  | @ -17,21 +17,15 @@ | |||
| # Debería haber recibido una copia de la Licencia Pública Affero General | ||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| GPG_DEFAULT_PATH=$HOME/.gnupg | ||||
| GPG_CONFIG_PATH=bin/config | ||||
| GPG_DEFAULT_PATH=~/.gnupg | ||||
| GPG_CFG_PATH=bin/config | ||||
| GPG_TEMPLATE=gpg.config | ||||
| GPG_CONFIG=gpg.conf | ||||
| GPG_BACKUP_CFG=gpg.backup | ||||
| GPGP_BACKUP_SECRET=gpg.secret | ||||
| GPG_SUBKEY_ID="" | ||||
| GPG_REVOKE_FILES="*.rev" | ||||
| 
 | ||||
| DB_GPG_PATH=$HOME/.gnupg | ||||
| DB_GPG_FILE=$USER.db | ||||
| DB_GPG_SUBKEYS_KEY="subkey_id" | ||||
| DB_GPG_SUBKEYS="GPG_SUBKEYS" | ||||
| SQL_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql" | ||||
| 
 | ||||
| DF_GPG_SUBKEYS="${DB_GPG_SUBKEYS}.sql" | ||||
| REVOKE_FILES="*.rev" | ||||
| 
 | ||||
| # Test library | ||||
| function gpglib_test() { | ||||
|  | @ -68,7 +62,7 @@ function gpg_setting() { | |||
|       if [ -f "${GPG_PATH}/${GPG_CONFIG}" ] | ||||
|       then | ||||
|         # Destination file backup | ||||
|       local BACKUP_FILE="${LOCAL_BACKUP}/gpg_${TIMESTAMP}.bak" | ||||
|         local BACKUP_FILE="${LOCAL_BACKUP}/gpg${TIMESTAMP}.bak" | ||||
|         cp -f "${GPG_PATH}/${GPG_CONFIG}" "${BACKUP_FILE}" | ||||
|         if [ $? -ne 0 ]; then | ||||
|           return 3 | ||||
|  | @ -81,105 +75,3 @@ function gpg_setting() { | |||
|     return $? | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| # Generate token for backup file | ||||
| function gpg_backup_token() { | ||||
|   local SECRET_FILE=$1 | ||||
| 
 | ||||
|   if [[ ! -e $archivo_token ]] | ||||
|   then | ||||
|     local BACKUP_TOKEN=$(uuidgen) | ||||
|     echo "$BACKUP_TOKEN" > "$SECRET_FILE" | ||||
|     chmod 600 "$SECRET_FILE" | ||||
|   fi | ||||
| 
 | ||||
|   return 0 | ||||
| 
 | ||||
| } | ||||
| 
 | ||||
| # Local backup of gpp keys | ||||
| function gpg_backup() { | ||||
| 
 | ||||
|   local DB_BACKUP=$1 | ||||
|   local BIN_CONFIG=$2 | ||||
|   local TIMESTAMP=$3 | ||||
|   local rc=0 | ||||
| 
 | ||||
|   # Check if backup configuration file exists | ||||
|   if [ ! -f $BIN_CONFIG/$GPG_BACKUP_CFG ] | ||||
|   then | ||||
|      return 10 | ||||
|   fi | ||||
| 
 | ||||
|   local LOCAL_BACKUP=$HOME/$(cat < $BIN_CONFIG/$GPG_BACKUP_CFG) | ||||
| 
 | ||||
|   # Check if backup path exist | ||||
|   if [ -z "$LOCAL_BACKUP" ]; then | ||||
|     return 11 | ||||
|   fi | ||||
| 
 | ||||
|   if [ ! -d "${LOCAL_BACKUP}" ] | ||||
|   then | ||||
|     mkdir -p "${LOCAL_BACKUP}" | ||||
|     rc=$? | ||||
|     if [ $rc -ne 0 ]; then | ||||
|       return $rc | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   gpg_backup_token "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET" | ||||
| 
 | ||||
|   # Get secret backup | ||||
|   ZPASSWORD=$(cat < "${LOCAL_BACKUP}/$GPGP_BACKUP_SECRET") | ||||
|   if [ -z "${ZPASSWORD}" ]; then | ||||
|      return 13 | ||||
|   fi | ||||
| 
 | ||||
|   # Exportar el anillo de claves GPG a un archivo de respaldo temporal | ||||
|   local TMP_PATH=$(mktemp -d) | ||||
|   local TMP_FILE="gpg.bak" | ||||
|   gpg --export-options backup -o "${TMP_PATH}/${TMP_FILE}" --export | ||||
|   rc=$? | ||||
|   if [ $rc -ne 0 ]; then | ||||
|     rm -rf "${tmp_path}" | ||||
|     return $rc | ||||
|   fi | ||||
| 
 | ||||
|   # Dump GPG_SUBKEYS table to SQL | ||||
|   local TMP_DB_DUMP="${SQL_GPG_SUBKEYS}" | ||||
|   local DB_DUMP="${TMP_PATH}/${TMP_DB_DUMP}" | ||||
|   sqlite_dump "${DB_BACKUP}" "${DB_DUMP}" "${DB_GPG_SUBKEYS}" | ||||
|   rc=$? | ||||
|   if [ ${rc} -ne 0 ] | ||||
|   then | ||||
|     rm -rf "${TMP_PATH}" | ||||
|     return $rc | ||||
|   fi | ||||
| 
 | ||||
|   # Copiar los archivos de revocación | ||||
|   local REVOKE_PATH="${GNUPGHOME:-$GPG_DEFAULT_PATH}/openpgp-revocs.d" | ||||
|   cp -rf "${REVOKE_PATH}"/${GPG_REVOKE_FILES} "${TMP_PATH}/" | ||||
|   rc=$? | ||||
|   if [ $rc -ne 0 ] | ||||
|   then | ||||
|     rm -rf "${TMP_PATH}" | ||||
|     return $rc | ||||
|   fi | ||||
| 
 | ||||
|   # Cambiar el directorio de trabajo a la carpeta temporal para poder hacer el empaquetamiento zip | ||||
|   cd "${TMP_PATH}" | ||||
| 
 | ||||
|   # Comprimir el archivo de respaldo en un archivo ZIP protegido con contraseña | ||||
|   BACKUP_FILE="${LOCAL_BACKUP}/gpg_${USER}_${TIMESTAMP}" | ||||
|   zip -r -P "${ZPASSWORD}" $BACKUP_FILE * | ||||
|   rc=$? | ||||
|   if [ $rc -ne 0 ] | ||||
|   then | ||||
|     rm -rf "${TMP_PATH}" | ||||
|     return $rc | ||||
|   fi | ||||
| 
 | ||||
|   rm -rf "${TMP_PATH}" | ||||
|   return 0 | ||||
| 
 | ||||
| } | ||||
|  |  | |||
|  | @ -1,95 +0,0 @@ | |||
| #!/bin/bash | ||||
| # | ||||
| # Library: sqlite.lib | ||||
| # Modified: 2024/12/09 08:20:00 | ||||
| # Derechos de Autor (C) [2024] [Mauro Rosero P. <mauro@roser.one>] | ||||
| # | ||||
| # Este programa es software libre: usted puede redistribuirlo y/o modificarlo | ||||
| # bajo los términos de la Licencia Pública Affero General de GNU tal como | ||||
| # lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, | ||||
| # o (a su elección) cualquier versión posterior. | ||||
| # | ||||
| # Este programa se distribuye con la esperanza de que sea útil, | ||||
| # pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de | ||||
| # COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la | ||||
| # Licencia Pública Affero General de GNU para obtener más detalles. | ||||
| # | ||||
| # Debería haber recibido una copia de la Licencia Pública Affero General | ||||
| # junto con este programa. Si no la recibió, consulte <https://www.gnu.org/licenses/>. | ||||
| 
 | ||||
| 
 | ||||
| DB_LOADED=1 | ||||
| DB_PATH=dbfiles | ||||
| DB_USER=${USER}.db | ||||
| 
 | ||||
| # Test library | ||||
| function sqlitelib_test() { | ||||
|   echo "Sqlite Library loaded!" | ||||
|   exit 1 | ||||
| } | ||||
| 
 | ||||
| # Export selected sqlite tables | ||||
| # Arguments: | ||||
| # $1: Database file | ||||
| # $2: Dump tables file | ||||
| # $3...: Tables list to dump | ||||
| # Example Use: | ||||
| # sqlite_export "my_database.db" "output.sql" "table1" "table2" | ||||
| # To export all tables, use: | ||||
| # sqlite_export "my_database.db" "output.sql" | ||||
| 
 | ||||
| function sqlite_dump() { | ||||
| 
 | ||||
|   local DATABASE=$1 | ||||
|   local DUMP_FILE=$2 | ||||
| 
 | ||||
|   shift 2 | ||||
|   local TABLES_LIST=("$@") | ||||
|   local rc=0 | ||||
| 
 | ||||
|   # Check if database exists | ||||
|   if [ -z "$DATABASE" ]; then | ||||
|     return 18 | ||||
|   fi | ||||
| 
 | ||||
|   if [ ! -f "$DATABASE" ]; then | ||||
|     return 14 | ||||
|   fi | ||||
| 
 | ||||
|   # Check not blank dump file name | ||||
|   if [ -z "$DUMP_FILE" ]; then | ||||
|     return 15 | ||||
|   fi | ||||
| 
 | ||||
|   if [ ${#TABLES_LIST[@]} -eq 0 ] | ||||
|   then | ||||
|     # If no tables are provided, dump all tables | ||||
|     sqlite3 "$DATABASE" .dump > $DUMP_FILE | ||||
|     rc=$? | ||||
|     if [ $rc -gt 1 ]; then | ||||
|       return $rc | ||||
|     else | ||||
|       return 0 | ||||
|     fi | ||||
|   fi | ||||
| 
 | ||||
|   # Reset dump file | ||||
|   > $DUMP_FILE | ||||
| 
 | ||||
|   for TABLE in "${TABLES_LIST[@]}" | ||||
|   do | ||||
|     # Check if table exists | ||||
|     EXIST=$(sqlite3 $DATABASE "SELECT name FROM sqlite_master WHERE type='table' AND name='$TABLE';") | ||||
| 
 | ||||
|     if [ "$EXIST" == "$TABLE" ]; then | ||||
|       sqlite3 "$DATABASE" .dump "$TABLE" >> "$DUMP_FILE" | ||||
|       rc=$? | ||||
|       if [ $rc -gt 1 ]; then | ||||
|         return $rc | ||||
|       fi | ||||
|     fi | ||||
|   done | ||||
| 
 | ||||
|   return 0 | ||||
| 
 | ||||
| } | ||||
|  | @ -13,17 +13,8 @@ | |||
| 
 | ||||
| 
 | ||||
| gpmsg_000="INICIALIZAR GPG" | ||||
| gpmsg_001="BACKUP GPG" | ||||
| 
 | ||||
| 
 | ||||
| gpmsg_101="Desea inicializar la configuración de GPG?" | ||||
| gpmsg_102="Inicialización de configuración GPG completada!" | ||||
| gpmsg_103="Plantilla de configuración GPG no existe!" | ||||
| gpmsg_104="Desea realizar una copia de seguridad de GPG?" | ||||
| gpmsg_105="Desea realizar copia de seguridad de las claves GPG?" | ||||
| gpmsg_106="Copia de seguridad de claves GPG completada!" | ||||
| gpmsg_107="Archivo de configuración GPG no fue encontrado!" | ||||
| gpmsg_108="Carpeta de copia de seguridad local no existe" | ||||
| gpmsg_109="Contraseña para encriptación del archivo ZIP no fue suministrada" | ||||
| gpmsg_110="Base de Datos SQLITE3 no fue suministrada" | ||||
| gpmsg_111="Archivo de Base de Datos SQLITE3 no existe!" | ||||
| gpmsg_112="Carpeta temporal de Backup no fue suministrada" | ||||
|  |  | |||
|  | @ -36,7 +36,6 @@ head_nobuild="No existe carpeta build para creación de contenedores" | |||
| head_nodockerfile="No existe el archivo de configuración Dockerfile" | ||||
| head_nobuilded="No se pudo completar la construcción del contenedor" | ||||
| head_builded="Construcción del contenedor completada!" | ||||
| head_zip="Utilitario zip no ha sido instalado!" | ||||
| 
 | ||||
| head_container="Generando contenedor" | ||||
| label_email="Correo Electrónico:" | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue