Maison  >  Article  >  base de données  >  Quelles sont les mesures de renforcement de la base de données cache Redis ?

Quelles sont les mesures de renforcement de la base de données cache Redis ?

WBOY
WBOYavant
2023-06-01 20:28:191573parcourir

Protection des données sensibles et du cryptage

1. Enregistrement du mot de passe (important)

Problème de sécurité : les mots de passe natifs du serveur Redis requirepass et masterauth sont enregistrés en texte clair dans redis.conf.

Solution : cryptez le mot de passe du serveur à l'aide de PBKDF2 et enregistrez-le sur redis.conf.

Compte tenu des problèmes de performances, il serait plus long d'utiliser PBKDF2 pour chaque authentification. Après examen, une fois la première authentification réussie, la mémoire sera mise en cache avec SHA256 et les requêtes suivantes seront d'abord vérifiées à l'aide de SHA256.

2. Remplacement de la clé de support (important)

Problèmes de sécurité : les clés secrètes impliquées dans le cryptage et le déchiffrement ne peuvent pas être codées en dur dans le code.

Solution : la clé secrète prend en charge le remplacement régulier.

➤redis server redis-server :

Le fichier de configuration ajoute un élément de configuration : cipher-dir

Configurez le chemin complet du dossier où se trouvent redis_shared.key et root.key, par exemple : cipher-dir /opt/ redis/ etc/cipher

➤Client redis : redis-cli

Ajoutez le paramètre -cipherdir, pointant vers le chemin complet du dossier où se trouvent redis_shared.key et root.key

Par exemple : redis-cli -h 127.0 .0.1 -cipherdir / opt/redis/etc/cipher -a sessionrdb@dbuser@Changeme_123 -p 32091

➤SDK client redis : jedis*.jar

Dans le même processus, l'interface Jedis est une chaîne, dbname@user@ pwd, car l'interface tierce (similaire à Jdbc) ne peut pas être chiffrée.

3. Transmission du mot de passe (important)

Problème de sécurité : Native Redis peut obtenir des informations sensibles côté serveur via la commande config get.

Solution : Il est interdit de transmettre des informations sensibles telles que des mots de passe au client, les fonctions telles que config get requirepas/masterauth/requireuserpass doivent donc être désactivées.

4. Modification du mot de passe (important)

Problème de sécurité : modifier la transmission du mot de passe en texte brut : configuration définie masterauth pwd

Solution : la mémoire Redis enregistre le problème du mot de passe en texte brut : masterauth utilise le cryptage AES128 et le mot de passe est enregistré en AES128

Sécurité du mot de passe

1. Le produit active la fonction de vérification de la complexité du mot de passe de la base de données par défaut

Problème de sécurité : il n'y a pas de vérification de la complexité pour la modification du mot de passe Redis.

Solution : fournissez un outil de modification Redis distinct pour changer le mot de passe, portez une attention particulière aux points suivants :

1. Effectuez une vérification de la complexité du mot de passe.

2. Lorsque vous saisissez un nom d'utilisateur ou un mot de passe incorrect, aucune invite de raison trop claire telle que « Le mot de passe est erroné » ou « Le nom d'utilisateur n'existe pas » ne doit apparaître pour empêcher les attaquants de deviner le nom d'utilisateur/mot de passe du système.

3. Pour modifier le mot de passe, vérifiez l'ancien mot de passe.

4. Le mot de passe de la base de données ne peut pas être le même que le nom d'utilisateur.

5. Masquez le mot de passe lorsque vous modifiez le mot de passe de manière interactive.

6. Il est recommandé dans la documentation de changer le mot de passe de manière interactive.

2. Pour éviter le craquage par force brute, configurez le nombre de tentatives de connexion au compte ayant échoué.

Problème de sécurité : la version native de Redis subit un craquage par force brute.

Solution : Nombre maximum d'échecs : maxauthfailtimes (temps unitaires, plage valide (0, 100 000], valeur par défaut 10 000)

Ce paramètre ne peut être configuré que via le fichier redis.conf au démarrage et ne peut pas être obtenu par modification dynamique, l'opération de jeu de configuration correspondante est désactivée.

Ne prend pas en charge le réglage sur 0 : signifie qu'aucune adresse IP ne sera verrouillée

3. Configurez le temps de déverrouillage automatique après le verrouillage du compte

Temps de verrouillage en cas d'échec d'authentification : temps de verrouillage d'authentification (unité minutes, plage valide [0 ~ 999], valeur par défaut 10)

Lorsqu'il est défini sur 0, cela signifie un verrouillage permanent

Remarque : cet élément de configuration ne prend en charge que la configuration redis.conf au démarrage et ne prend pas en charge la modification dynamique de l'ensemble de configuration correspondant. est bloqué. 4. Afficher l'adresse IP verrouillée

Problème : Une fois l'adresse IP verrouillée, vous devez afficher l'adresse IP verrouillée

Solution :

Seul l'administrateur peut afficher la liste des adresses IP verrouillées, le séparateur est un deux-points anglais (. :)

Exemple 1 : config get.lockedips

Renvoie : 10.67.147.111;10.67.147.112;
Exemple 2 : config get lockips
Renvoie : 10.67.147.111;
Remarque : le jeu de configuration lockips n'est pas pris en charge. Si forcé, une erreur. est renvoyé : ERR Paramètre de CONFIG non pris en charge : verrouilléips

5. Déverrouillage manuel des IP

Seuls les administrateurs peuvent exécuter des commandes pour déverrouiller les IP verrouillées. Seul le déverrouillage d'une seule IP ou le déverrouillage de toutes les IP est pris en charge. Solution :

Exemple 1, le déverrouillage d'une. IP unique : config set unlockips 10.67.147.111
Exemple 2. Déverrouiller toutes les IP : config set unlockips « all »

Remarque : config get unlockips n'est pas pris en charge si l'exécution est forcée, elle retournera vide et redis-cli invite : ( liste ou ensemble vide)

S'il n'y a pas d'exception dans l'IP dans le paramètre, un échec de déverrouillage sera renvoyé, par exemple :
(erreur) ERR Argument invalide '10.67.147.111' pour CONFIG SET 'unlockips'

Effectuer un déverrouillage manuel et enregistrez la trace, par exemple :
Par exemple : 26 décembre 03:15:19.958 * 10.67.147.113 déverrouillé par 10.67.147.111:59417 Audit du journal

6 Audit de sécurité

Redis lui-même prend en charge la journalisation dans le journal système, tel que /var/log/localmessage, mais il doit être configuré comme suit dans redis.conf :

syslog -enabled yes

syslog-ident redis

syslog-facility local0

2. compte et autres informations.

3. Les opérations de maintenance pertinentes doivent avoir des enregistrements de journaux détaillés.

Exemple : 29118:S 26 novembre 11:19:29.100 * Le readdbuser s'est connecté avec succès ;10.145.93.119:52817;

7. Dump du journal des opérations

Problème de sécurité : la version officielle du journal Redis ne sera pas vidée, un temps d'exécution long peut remplir le disque.

Solution : Exécutez le processus tracemonitor (version python) séparément et gérez régulièrement la taille du fichier journal Redis, principalement la compression des journaux et la suppression régulière, pour éviter d'utiliser trop de disque.

Remarque : La plate-forme actuelle effectue par défaut une détection toutes les 60 secondes, les journaux peuvent être compressés à 20 Mo et le nombre maximum de journaux est de 50.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer