FAQ:Crypt FichiersMotDePasse

De WikiFr_dbSQWare
Aller à la navigation Aller à la recherche

Généralités


Warning:
Avant toutes choses, n'allez pas plus loin si vous n'avez pas lu la section "Concepts dbSQWare" !.


Limites de cette section

Cette section vous propose un chiffrement pour les fichiers de mots de passe qui peuvent être nécessaires au foncitonnement de certains scripts de dbSQWare.
Cette section est réservée à des DBA et Admin qui maîtrisent bien la partie authentification au SGBD.

Cette section se base sur une installation du point central sous Rocky Linux 9.x 64bits sur une VM (2 vCPU et 4 Go de RAM) avec 100 Go de disque (Permet de tenir 2 ans d'historique pour une centaine d'instances). Vous pouvez l'avoir installer sur un autre type de Linux/Unix, Il peut arriver que vous ayez besoin de paquets ou commandes différentes liées à ce choix.

Principes de fonctionnement


Technologies utilisées

AES-256 avec OpenSSL et du "salage"

Mise en place

Ici, nous prendrons en exemple le fichier dédié aux connexions MS SQL, .passwd_mssql, se trouvant à la racine du home de l'utilisateur mssql sur la machine vmsqwarebox.

Ce mode opératoire peut être reproduit pour tous les utilisateurs de la vmsqwarebox ou vos utilisateurs portant les instances sur les serveurs de base de données, oracle, postgres, mysql, ...

Visualisation du contenu du fichier stocké en clair :

mssql@vmsqwarebox:/home/mssql (NoSID) $
# cat .passwd_mssql
DEFAULT;dba_dbs;def@ult_passworde
SRVDBMSQL01;msq_dba;def@ult_passworde
SRVDBMSQ02;DBSQWARE\UserFreeTds;def@ult_passworde
SRVDBMSQ03;DBSQWARE\UserFreeTds;def@ult_passworde
SRVDBMSQ06;DEV-ENV\svc-mssql;def@ult_passworde


Vérification que la connexion se fait bien, si la connexion ne fonctionne pas avec le fichier de mots de passe en clair cela ne fonctionnera pas avec le fichier chiffré.

mssql@vmsqwarebox:/home/mssql (NoSID) $
# e SRVDBMSQL01
Sourcing .profile for SRVDBMSQL01 ...


mssql@vmsqwarebox:/home/mssql (SRVDBMSQL01) $
# tis
Sourcing .profile for SRVDBMSQL01 ...

Connection to instance SRVDBMSQL01 : login msq_dba ...
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>


On commence par renommer le fichier avant de le sauvegarder et, ou de laisser le nom libre pour le fichier chiffré.

mssql@vmsqwarebox:/home/mssql (SRVDBMSQL01) $
# mv .passwd_mssql /backups/archives/.passwd_mssql_vmsqwarebox_20251007


Ensuite il faut recréer le fichier .passwd_mssql mais cette fois si chiffré :

mssql@vmsqwarebox:/home/mssql (SRVDBMSQL01) $
# too
total 68
drwxr-x---  2 dbsqware dba 4096 Nov  9 19:53 .
drwxr-x--- 15 dbsqware dba  187 Nov  9 19:53 ..
-rwxr-x---  1 dbsqware dba 6136 Nov  9 19:52 sqwmsq_AlterDatabaseModifyLogGrowth.ksh
-rwxr-x---  1 dbsqware dba 5871 Nov  9 19:52 sqwmsq_AlterDatabaseRecoverySimple.ksh
-rwxr-x---  1 dbsqware dba 6025 Nov  9 19:52 sqwmsq_AlterDatabaseShrinkLogs.ksh
-rwxr-x---  1 dbsqware dba 6017 Nov  9 19:52 sqwmsq_CreateAuditLogon.ksh
lrwxrwxrwx  1 dbsqware dba   36 Jul 10 13:27 sqwmsq_Crypt.ksh -> ../../generic/tools/sqwgen_Crypt.ksh
-rwxr-x---  1 dbsqware dba 4895 Nov  9 19:52 sqwmsq_GenerateCreateInstance.ksh
lrwxrwxrwx  1 dbsqware dba   44 Jul 10 13:27 sqwmsq_KillAllChilds.ksh -> ../../generic/tools/sqwgen_KillAllChilds.ksh
lrwxrwxrwx  1 dbsqware dba   51 Jul 10 13:27 sqwmsq_ListAsyncFilesGlobal.ksh -> ../../generic/tools/sqwgen_ListAsyncFilesGlobal.ksh
lrwxrwxrwx  1 dbsqware dba   45 Jul 10 13:27 sqwmsq_ListAsyncFiles.ksh -> ../../generic/tools/sqwgen_ListAsyncFiles.ksh
lrwxrwxrwx  1 dbsqware dba   39 Jul 10 13:27 sqwmsq_MvToBash.ksh -> ../../generic/tools/sqwgen_MvToBash.ksh
-rwxr-x---  1 dbsqware dba 5589 Nov  9 19:52 sqwmsq_SetEnv.ksh
-rwxr-x---  1 dbsqware dba 1129 Nov  9 19:52 sqwmsq_Sqlcmd.ksh
-rwxr-x---  1 dbsqware dba 5289 Nov  9 19:52 sqwmsq_TestInstConnection.ksh
lrwxrwxrwx  1 dbsqware dba   40 Jul 10 13:27 sqwmsq_TestMySQL.ksh -> ../../generic/tools/sqwgen_TestMySQL.ksh
lrwxrwxrwx  1 dbsqware dba   43 Jul 10 13:27 sqwmsq_TestSendmail.ksh -> ../../generic/tools/sqwgen_TestSendmail.ksh
-rwxr-x---  1 dbsqware dba 1506 Nov  9 19:52 sqwmsq_Tis.ksh
lrwxrwxrwx  1 dbsqware dba   38 Jul 10 13:27 sqwmsq_Uncrypt.ksh -> ../../generic/tools/sqwgen_Uncrypt.ksh


mssql@vmsqwarebox:/home/mssql/SQWareProduction/mssql/tools (SRVDBMSQL01) $
# ./sqwmsq_Crypt.ksh -h
Sourcing sqwmsq_Global.lib v2025.10.04 SQWareProduction for MsSql (dbSQWare) ...

Usage: sqwmsq_Crypt.ksh -ClearFile ClearFileName -EncryptedFile EncryptedFileName [-h] [+ options]

DESCRIPTION
   sqwmsq_Crypt.ksh crypt file with openssl
SUPPORT
   All rdbms type and version

PARAMETERS
     -ClearFile     file: File that contain clear datas.
     -EncryptedFile file: Dest file for encryted datas.
OPTIONS
     -h                 : Display the full usage.
     -s                 : Display samples of usage.


mssql@vmsqwarebox:/home/mssql/SQWareProduction/mssql/tools (SRVDBMSQL01) $
# ./sqwmsq_Crypt.ksh -ClearFile /backups/archives/.passwd_mssql_vmsqwarebox_20251007 -EncryptedFile ~/.passwd_mssql
Sourcing sqwmsq_Global.lib v2025.10.04 SQWareProduction for MsSql (dbSQWare) ...
openssl enc -e -aes-256-cbc -pbkdf2 -iter 100000 -salt -in /backups/archives/.passwd_mssql_vmsqwarebox_20251007 -out /home/mssql/.passwd_mssql -pass file:/home/mssql/sqwConfig/.ssl


mssql@vmsqwarebox:/home/mssql/SQWareProduction/mssql/tools (SRVDBMSQL01) $

Tentative de visualisation du contenu du nouveau fichier chiffré :

mssql@vmsqwarebox:/home/mssql (SRVDBMSQL01) $
# cat .passwd_mssql
▒▒w▒▒7J▒▒▒e)▒▒▒▒~/ZF▒}▒▒▒:▒Y▒▒h3/▒▒▒[▒L7▒Q1ؙXQ%)ÿQ▒_▒#=¤Գ▒▒▒▒▒A▒;<▒▒R▒شRR▒▒bط▒G▒▒▒?▒'▒8h▒U,▒▒▒!r5

mssql@vmsqwarebox:/home/mssql (NoSID) $
#


Vérification que la connexion se fait bien avec le fichier chiffré.

mssql@vmsqwarebox:/home/mssql/SQWareProduction/mssql/tools (SRVDBMSQL01) $
# tis
Sourcing .profile for SRVDBMSQL01 ...

Case of encrypted file (tools/sqwmsq_SetEnv.ksh) ...
Connection to instance SRVDBMSQL01 : login msq_dba ...
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1>