3 votes

Scanner SSH pour les options d'authentification offertes

Je voudrais analyser notre réseau (IPv4 et IPv6) pour ssh et trouver les options d'authentification proposées.

En fin de compte, je voudrais obtenir une liste analysable[1] d'hôtes contenant les informations suivantes :

  • Adresse IP [IPv4|IPv6]
  • Facultatif : FQDN au moment de l'analyse
  • Port
  • Offre d'authentification par clé publique [OUI|NON]
  • Offre d'autres options [OUI|NON]
  • Est en SSHv1 [OUI|NON]
  • Version SSH (la bannière)

En réalité, le format d'entrée m'importe peu, je pourrais le générer, une solution optimale accepterait les éléments suivants :

  • CIDR
  • Enregistrements DNS
  • Adresses IPv4/IPv6

dans un fichier séparé par des sauts de ligne. J'ai examiné nmap et son moteur nse, nmap de base propose une analyse pour sshv1 mais pas pour les options d'authentification. Étant donné que mes compétences en lua sont ... en par avec les compétences en Karaté de David Carradine et en tant qu'acteur de Chuck Norris, je ne peux pas écrire ces choses moi-même.

De plus, je ne suis pas fixé sur nmap car c'est plutôt lent (du moins pour moi) et j'aimerais exécuter cette analyse régulièrement pour signaler les résultats.

La question est : Quels outils offrent les fonctionnalités requises ?

[1] : Peu importe si c'est XML, JSON, $FANCY_REPRESENTATION. Cela doit simplement être analysable par machine.


Comme demandé dans le commentaire :

J'ai accès aux hôtes. Je peux me connecter et même utiliser sudo :) -- Il s'agit d'une vérification de conformité. Je peux obtenir la configuration du serveur et nous utilisons Puppet qui devrait garantir que la configuration est correcte. Nous préférons quand même nous reposer sur un client qui vérifie de l'extérieur si tout fonctionne, l'avantage étant que je peux (avec des analyses automatisées) aller vers la personne responsable de l'hôte et demander pourquoi la gestion de la configuration ne fonctionne pas comme prévu. Nous parlons de quelques milliers d'hôtes ici et nous sommes 12 personnes dans l'équipe opérationnelle, passer en revue toutes les configurations... n'est pas vraiment ce que nous voulons (et ce que les auditeurs veulent).

0voto

Martin M. Points 6418

Avant que quelqu'un ne ferme cela, j'ai fini par créer un script moche :

Il contient la plupart des informations de base dont j'ai besoin et je vais probablement l'élargir pour qu'il corresponde à nos besoins internes.

$ python scanner.py --help
usage: scanner.py [-h] [--num-cpus NUM_CPUS] [--infile INFILE] [--port PORT]

optional arguments:
  -h, --help           affiche ce message d'aide et quitte
  --num-cpus NUM_CPUS  Nombre de CPUs. Définit le nombre maximal de tâches parallèles.
  --infile INFILE      Fichier d'entrée à lire (Par défaut : stdin).
  --port PORT          Quel port doit être scanné ! (Si vous pouvez deviner le
                       défaut, vous êtes génial !)
[INFO/MainProcess] arrêt du processus

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X