L'équipe de sécurité de mon organisation nous a dit de désactiver les chiffrements faibles car ils émettaient des clés faibles.
arcfour
arcfour128
arcfour256
Mais j'ai essayé de rechercher ces chiffres dans les fichiers ssh_config et sshd_config, mais je les ai trouvés commentés.
grep arcfour *
ssh_config:# Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc
Où d'autre devrais-je vérifier pour désactiver ces chiffres de SSH?
Si vous n'avez pas de liste explicite de chiffres définie dans ssh_config
en utilisant le mot clé Ciphers
, puis la valeur par défaut, selon man 5 ssh_config
(côté client) et man 5 sshd_config
(côté serveur), c'est:
aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
[email protected],[email protected],
[email protected],
aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
aes256-cbc,arcfour
Notez la présence des quatre chiffres de l'arcfour. Vous devrez donc peut-être définir explicitement une valeur plus restrictive pour Ciphers
.
ssh -Q cipher
du client vous indiquera les schémas que votre client peut prendre en charge. Notez que cette liste n'est pas affectée par la liste des chiffres spécifiés dans ssh_config
. Suppression d'un chiffre de ssh_config
ne le supprimera pas de la sortie de ssh -Q cipher
. De plus, en utilisant ssh
avec le -c
L'option pour spécifier explicitement un chiffre remplacera la liste restreinte de chiffres que vous définissez dans ssh_config
et éventuellement vous permettre d'utiliser un chiffrement faible. Il s'agit d'une fonctionnalité qui vous permet d'utiliser votre client ssh
pour communiquer avec des serveurs SSH obsolètes qui ne prennent pas en charge les nouveaux chiffrements plus puissants.
nmap --script ssh2-enum-algos -sV -p <port> <Host>
vous indiquera les schémas pris en charge par votre serveur.
Pour désactiver RC4 et utiliser des chiffrements sécurisés sur le serveur SSH, codez en dur ce qui suit dans /etc/ssh/sshd_config
ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
OU si vous préférez ne pas dicter de chiffres mais souhaitez simplement supprimer les chiffres non sécurisés, exécutez-les à la place sur la ligne de commande (en mode Sudo):
sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|[email protected]\)\,\?//g" >> /etc/ssh/sshd_config
Vous pouvez vérifier les chiffres actuellement utilisés par votre serveur avec:
Sudo sshd -T | grep ciphers | Perl -pe 's/,/\n/g' | sort -u
Assurez-vous que votre client ssh peut utiliser ces chiffres, exécutez
ssh -Q cipher | sort -u
pour voir la liste.
Vous pouvez également demander à votre client SSH de négocier uniquement des chiffrements sécurisés avec des serveurs distants. Dans /etc/ssh/ssh_config
ensemble:
Host *
ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
Les extraits ci-dessus proviennent de ici
Pour tester les paramètres de votre serveur, vous pouvez utiliser ssh-audit
Le problème avec la spécification explicite d'une liste de chiffrement est que vous devez ajouter manuellement de nouveaux chiffres à mesure qu'ils sortent. Au lieu de cela, listez simplement les chiffres que vous souhaitez supprimer, en ajoutant la liste (pas chaque chiffre individuel) avec un caractère "-". Donc, dans ce cas, la ligne Ciphers devrait se lire:
Ciphers -arcfour*
Ou si vous préférez:
Ciphers -arcfour,arcfour128,arcfour256
Depuis la page de manuel sshd_config sur l'option Ciphers (depuis OpenSSH 7.5, publié le 20/03/2017):
Si la valeur spécifiée commence par un caractère "+", les chiffres spécifiés seront ajoutés à l'ensemble par défaut au lieu de les remplacer. Si la valeur spécifiée commence par un caractère "-", les chiffres spécifiés (y compris les caractères génériques) seront supprimés de l'ensemble par défaut au lieu de les remplacer.
Cela s'applique également aux options KexAlgorithms et MACs.
Comment désactiver un chiffrement ssh faible, 100% de travail testé sur Fedora 29. Le problème: Nessus rapporte que mon serveur samba4 utilise des chiffrements non forts aes256-cbc et aes128-cbc. J'ai donc mis ces lignes dans /etc/ssh/sshd_config
MACs hmac-sha2-512,hmac-sha2-256
Ciphers aes256-ctr,aes192-ctr,aes128-ctr
KexAlgorithms diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,curve25519-sha256,[email protected]
Et voilà! .. il utilise toujours le chiffrement cbc car cette commande fonctionne :(
ssh -c aes256-cbc samba4
Je vérifie donc le systemd utile et je découvre que le service sshd utilise un autre fichier pour les chiffres
/etc/crypto-policies/back-ends/opensshserver.config
Sauvegardez le fichier pour plus de sécurité
cp /etc/crypto-policies/back-ends/opensshserver.config /etc/crypto-policies/back-ends/opensshserver.config.old
Modifiez-le et supprimez le chiffrement cbc. Redémarrez le service
systemctl restart sshd
Et enfin tester, fonctionne très bien..cbc désactivé.
ssh -c aes256-cbc samba4
Unable to negotiate with 192.168.0.48 port 22: no matching cipher found. Their offer: [email protected],[email protected],aes256-ctr,[email protected],aes128-ctr
activer/désactiver le chiffrement besoin de l'ajouter/le supprimer dans le fichier/etc/ssh/sshd_config Après avoir édité ce fichier, le service doit être rechargé
systemctl reload sshd
/etc/init.d/sshd reload
Ensuite, l'exécution de cette commande à partir du client vous indiquera les schémas pris en charge
ssh -Q cipher
Pour vérifier si le chiffrement arcfour est activé ou non sur le serveur, exécutez cette commande
ssh localhost -c arcfour
Pour vérifier si le chiffrement arcfour128 est activé ou non sur le serveur, exécutez cette commande
ssh localhost -c arcfour128