Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
puppet-ssh-hardening — Ce module Puppet fournit des configurations sécurisées pour ssh-client et ssh-server. | Kitploit
Outils/GitHubGitHub/dev-sec/puppet-ssh-hardening
Sécurité de l'Infrastructure CloudAudit de ConfigurationSécurité RéseauDevSecOpsAuthentification
GitHubdev-sec/puppet-ssh-hardening

puppet-ssh-hardening

Ce module Puppet fournit des configurations sécurisées pour ssh-client et ssh-server.

Voir le dépôt
603148il y a 2 ansVérifié par Kitploit
Site web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Durcissement SSH Puppet

Puppet Forge Build Status Gitter Chat

Description

Ce module Puppet fournit des configurations sécurisées pour ssh-client et ssh-server.

Prérequis

  • Puppet
  • Modules Puppet : saz/ssh (>= 2.3.6), puppetlabs/stdlib (>= 4.2.0)

Paramètres

  • ipv6_enabled = false - true si IPv6 est nécessaire
  • cbc_required = false - true si CBC est requis pour les chiffrements. Cela n'est généralement nécessaire que si d'anciens mécanismes M2M doivent communiquer avec SSH et n'ont aucun des chiffrements sécurisés configurés activés. CBC est une alternative faible. Tout ce qui est plus faible doit être évité et n'est donc pas disponible.
  • weak_hmac = false - true si des mécanismes HMAC plus faibles sont requis. Cela n'est généralement nécessaire que si d'anciens mécanismes M2M doivent communiquer avec SSH et n'ont aucun des HMAC sécurisés configurés activés.
  • weak_kex = false - true si des mécanismes d'échange de clés (KEX) plus faibles sont requis. Cela n'est généralement nécessaire que si d'anciens mécanismes M2M doivent communiquer avec SSH et n'ont aucun des KEX sécurisés configurés activés.
  • allow_root_with_key = false - false pour désactiver complètement la connexion root. Définir sur true pour autoriser root à se connecter via un mécanisme basé sur les clés.
  • ports = [ 22 ] - ports sur lesquels ssh-server doit écouter et auxquels ssh-client doit se connecter
  • listen_to = [ "0.0.0.0" ] - une ou plusieurs adresses IP sur lesquelles ssh-server doit écouter. La valeur par défaut est vide, mais doit être configurée pour des raisons de sécurité !
  • remote_hosts - un ou plusieurs hôtes auxquels ssh-client peut se connecter. La valeur par défaut est vide, mais doit être configurée pour des raisons de sécurité !
  • allow_tcp_forwarding = false - définir sur true pour autoriser le transfert TCP
  • allow_agent_forwarding = false - définir sur true pour autoriser le transfert d'agent
  • use_pam = false pour désactiver l'authentification PAM
  • client_options = {} - définir des valeurs dans le hash pour remplacer les paramètres du module
  • server_options = {} - définir des valeurs dans le hash pour remplacer les paramètres du module

Utilisation

Après avoir ajouté ce module, vous pouvez utiliser la classe :

class { 'ssh_hardening': }

Cela installera ssh-server et ssh-client. Vous pouvez également choisir un seul des deux via :

class { 'ssh_hardening::server': }
class { 'ssh_hardening::client': }

Vous devez configurer les attributs principaux :

class { 'ssh_hardening::server':
  "listen_to" : ["10.2.3.4"]
}

La valeur par défaut de listen_to est 0.0.0.0. Il est fortement recommandé de modifier cette valeur.

Remplacer les options par défaut

Les options par défaut seront fusionnées avec les options transmises via les paramètres client_options et server_options. Si une option est définie à la fois par défaut et via le paramètre d'options, cette dernière prévaudra.

L'exemple suivant activera X11Forwarding, qui est désactivé par défaut :

class { 'ssh_hardening':
  server_options => {
    'X11Forwarding' => 'yes',
  },
}

Tests locaux

Pour les tests locaux, vous pouvez utiliser vagrant et Virtualbox ou VMWare pour exécuter les tests localement. Vous devrez installer Virtualbox et Vagrant sur votre système. Voir Téléchargements Vagrant pour un paquet vagrant adapté à votre système. Pour tous nos tests, nous utilisons test-kitchen. Si vous n'êtes pas familier avec test-kitchen, veuillez consulter leur guide.

Ensuite, installez test-kitchen :

# Install dependencies
gem install bundler
bundle install

# Fetch tests
bundle exec thor kitchen:fetch-remote-tests

# Do lint checks
bundle exec rake lint

# Do spec checks
bundle exec rake spec

# fast test on one machine
bundle exec kitchen test default-ubuntu-1204

# test on Debian-based machines
bundle exec kitchen test

# for development
bundle exec kitchen create default-ubuntu-1204
bundle exec kitchen converge default-ubuntu-1204

Pour plus d'informations, voir test-kitchen

FAQ / Pièges

Je n'arrive pas à me connecter à mon compte. J'ai enregistré la clé client, mais cela ne me laisse toujours pas entrer.

Si vous avez épuisé tous les problèmes typiques (pare-feu, réseau, clé manquante, mauvaise clé, compte désactivé, etc.), il est possible que votre compte soit verrouillé. Le moyen le plus rapide de le savoir est de consulter le hash du mot de passe de votre utilisateur :

sudo grep myuser /etc/shadow

Si le hash contient un !, votre compte est verrouillé :

myuser:!:16280:7:60:7:::

La bonne façon de résoudre ce problème est de déverrouiller le compte (passwd -u myuser). Si l'utilisateur n'a pas de mot de passe, vous pouvez le déverrouiller via :

usermod -p "*" myuser

Alternativement, si vous avez l'intention d'utiliser PAM, vous l'avez activé via use_pam = true. PAM permettra aux utilisateurs verrouillés d'entrer avec des clés.

Pourquoi mon application ne se connecte-t-elle plus via SSH ?

Consultez toujours d'abord les fichiers journaux et, si possible, examinez la négociation entre le client et le serveur qui s'effectue lors de la connexion.

Nous avons constaté certains problèmes dans des applications (basées sur python et ruby) dus à leur utilisation d'un ensemble cryptographique obsolète. Cela entre en conflit avec ce module de durcissement, qui a réduit la liste des chiffrements, des codes d'authentification de message (MAC) et des algorithmes d'échange de clés (KEX) à une sélection plus sécurisée.

Si vous constatez que cela ne suffit pas, n'hésitez pas à activer cbc_required pour les chiffrements, weak_hmac pour les MAC et weak_kex pour les KEX.

Contributeurs + Remerciements

  • Dominik Richter arlimus
  • Edmund Haselwanter ehaselwanter
  • Christoph Hartmann chris-rock
  • Patrick Meier atomic111
  • Matthew Haughton 3flex
  • Bernhard Schmidt bernhardschmidt
  • Kurt Huwig kurthuwig
  • Artem Sidorenko artem-sidorenko
  • Guillaume Destuynder gdestuynder
  • Bernhard Weisshuhn bkw
  • stribika

Licence et auteur

  • Auteur:: Dominik Richter [email protected]
  • Auteur:: Deutsche Telekom AG

Sous licence Apache License, Version 2.0 (la « Licence ») ; vous ne pouvez utiliser ce fichier qu'en conformité avec la Licence. Vous pouvez obtenir une copie de la Licence à l'adresse

http://www.apache.org/licenses/LICENSE-2.0

Sauf si requis par la loi applicable ou convenu par écrit, le logiciel distribué sous la Licence est distribué sur une base « EN L'ÉTAT », SANS GARANTIES NI CONDITIONS D'AUCUNE SORTE, expresses ou implicites. Voir la Licence pour le langage spécifique régissant les permissions et les limitations de la Licence.

Télécharger l’outil