Maison >Tutoriel système >Linux >Comment vérifier à distance la configuration et la politique du service SSH via ssh_scan

Comment vérifier à distance la configuration et la politique du service SSH via ssh_scan

PHPz
PHPzavant
2024-01-05 23:12:15636parcourir
Présentation ssh_scan est un programme de configuration des paramètres de service SSH et d'analyse de politiques facile à utiliser pour les serveurs Linux et UNIX. Ses idées proviennent du Guide de sécurité Mozilla OpenSSH. Ce guide fournit une recommandation de base de politique de sécurité fiable pour la configuration des paramètres de service SSH. tels que les algorithmes de chiffrement (Ciphers), les algorithmes de code d'information d'authentification de message (MAC), les algorithmes d'échange de clés (KexAlgos) et autres.

Comment vérifier à distance la configuration et la politique du service SSH via ssh_scan

ssh_scan présente les avantages suivants :

  • Ses dépendances sont minimisées, ssh_scan n'introduit que Ruby et BinData locaux pour faire son travail, sans trop de dépendances.
  • Il est portable, vous pouvez utiliser ssh_scan dans d'autres projets ou l'utiliser pour des tâches automatisées.
  • C'est facile à utiliser, il suffit de le pointer vers un service SSH et d'obtenir un rapport au format JSON sur les options et l'état des politiques prises en charge par ce service.
  • Il est également facile à configurer, vous pouvez donc créer une stratégie adaptée à vos besoins stratégiques.

Lecture recommandée : Comment installer et configurer le service OpenSSH sous Linux

Comment installer ssh_scan sur Linux

Il existe trois façons d'installer ssh_scan :

Utilisez Ruby Gem pour installer et exécuter, comme suit :

----------- 在 Debian/Ubuntu ----------- 
$ sudo apt-get install ruby gem
$ sudo gem install ssh_scan
----------- 在 CentOS/RHEL ----------- 
# yum install ruby rubygem
# gem install ssh_scan

Utilisez le conteneur Docker pour exécuter, comme suit :

# docker pull mozilla/ssh_scan
# docker run -it mozilla/ssh_scan /app/bin/ssh_scan -t github.com

Utilisez le code source pour installer et exécuter, comme suit :

# git clone https://github.com/mozilla/ssh_scan.git
# cd ssh_scan
# gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
# curl -sSL https://get.rvm.io | bash -s stable
# rvm install 2.3.1
# rvm use 2.3.1
# gem install bundler
# bundle install
# ./bin/ssh_scan
Comment utiliser ssh_scan sous Linux

La syntaxe d'utilisation de ssh_scan est la suivante :

$ ssh_scan -t ip地址
$ ssh_scan -t 主机名

Par exemple, pour analyser la configuration et la politique SSH du 192.168.43.198, tapez :

$ ssh_scan -t 192.168.43.198

Notez que vous pouvez également transmettre une [adresse IP/plage d'adresses/nom d'hôte] à l'option -t comme indiqué ci-dessous :

$ ssh_scan -t 192.168.43.198,200,205
$ ssh_scan -t test.tecmint.lan

Exemple de sortie :

I, [2017-05-09T10:36:17.913644 #7145]  INFO -- : You're using the latest version of ssh_scan 0.0.19
[
  {
    "ssh_scan_version": "0.0.19",
    "ip": "192.168.43.198",
    "port": 22,
    "server_banner": "SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.1",
    "ssh_version": 2.0,
    "os": "ubuntu",
    "os_cpe": "o:canonical:ubuntu:16.04",
    "ssh_lib": "openssh",
    "ssh_lib_cpe": "a:openssh:openssh:7.2p2",
    "cookie": "68b17bcca652eeaf153ed18877770a38",
    "key_algorithms": [
      "[email protected]",
      "ecdh-sha2-nistp256",
      "ecdh-sha2-nistp384",
      "ecdh-sha2-nistp521",
      "diffie-hellman-group-exchange-sha256",
      "diffie-hellman-group14-sha1"
    ],
    "server_host_key_algorithms": [
      "ssh-rsa",
      "rsa-sha2-512",
      "rsa-sha2-256",
      "ecdsa-sha2-nistp256",
      "ssh-ed25519"
    ],
    "encryption_algorithms_client_to_server": [
      "[email protected]",
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "[email protected]",
      "[email protected]"
    ],
    "encryption_algorithms_server_to_client": [
      "[email protected]",
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "[email protected]",
      "[email protected]"
    ],
    "mac_algorithms_client_to_server": [
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "hmac-sha2-256",
      "hmac-sha2-512",
      "hmac-sha1"
    ],
    "mac_algorithms_server_to_client": [
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "[email protected]",
      "hmac-sha2-256",
      "hmac-sha2-512",
      "hmac-sha1"
    ],
    "compression_algorithms_client_to_server": [
      "none",
      "[email protected]"
    ],
    "compression_algorithms_server_to_client": [
      "none",
      "[email protected]"
    ],
    "languages_client_to_server": [
    ],
    "languages_server_to_client": [
    ],
    "hostname": "tecmint",
    "auth_methods": [
      "publickey",
      "password"
    ],
    "fingerprints": {
      "rsa": {
        "known_bad": "false",
        "md5": "0e:d0:d7:11:f0:9b:f8:33:9c:ab:26:77:e5:66:9e:f4",
        "sha1": "fc:8d:d5:a1:bf:52:48:a6:7e:f9:a6:2f:af:ca:e2:f0:3a:9a:b7:fa",
        "sha256": "ff:00:b4:a4:40:05:19:27:7c:33:aa:db:a6:96:32:88:8e:bf:05:a1:81:c0:a4:a8:16:01:01:0b:20:37:81:11"
      }
    },
    "start_time": "2017-05-09 10:36:17 +0300",
    "end_time": "2017-05-09 10:36:18 +0300",
    "scan_duration_seconds": 0.221573169,
    "duplicate_host_key_ips": [
    ],
    "compliance": {
      "policy": "Mozilla Modern",
      "compliant": false,
      "recommendations": [
        "Remove these Key Exchange Algos: diffie-hellman-group14-sha1",
        "Remove these MAC Algos: [email protected], [email protected], [email protected], hmac-sha1",
        "Remove these Authentication Methods: password"
      ],
      "references": [
        "https://wiki.mozilla.org/Security/Guidelines/OpenSSH"
      ]
    }
  }
]

Vous pouvez utiliser l'option -p pour spécifier différents ports, l'option -L pour activer la journalisation et l'option -V pour spécifier le niveau de journalisation :

$ ssh_scan -t 192.168.43.198 -p 22222 -L ssh-scan.log -V INFO

Alternativement, un fichier de stratégie peut être spécifié à l'aide de l'option -P ou --policy (la valeur par défaut est Mozilla Modern) :

$ ssh_scan -t 192.168.43.198 -L ssh-scan.log -V INFO -P /path/to/custom/policy/file

Aide à l'utilisation de ssh_scan et autres exemples :

$ ssh_scan -h

Exemple de sortie :

ssh_scan v0.0.17 (https://github.com/mozilla/ssh_scan)
Usage: ssh_scan [options]
-t, --target [IP/Range/Hostname] IP/Ranges/Hostname to scan
-f, --file [FilePath]            File Path of the file containing IP/Range/Hostnames to scan
-T, --timeout [seconds]          Timeout per connect after which ssh_scan gives up on the host
-L, --logger [Log File Path]     Enable logger
-O, --from_json [FilePath]       File to read JSON output from
-o, --output [FilePath]          File to write JSON output to
-p, --port [PORT]                Port (Default: 22)
-P, --policy [FILE]              Custom policy file (Default: Mozilla Modern)
--threads [NUMBER]           Number of worker threads (Default: 5)
--fingerprint-db [FILE]      File location of fingerprint database (Default: ./fingerprints.db)
--suppress-update-status     Do not check for updates
-u, --unit-test [FILE]           Throw appropriate exit codes based on compliance status
-V [STD_LOGGING_LEVEL],
--verbosity
-v, --version                    Display just version info
-h, --help                       Show this message
Examples:
ssh_scan -t 192.168.1.1
ssh_scan -t server.example.com
ssh_scan -t ::1
ssh_scan -t ::1 -T 5
ssh_scan -f hosts.txt
ssh_scan -o output.json
ssh_scan -O output.json -o rescan_output.json
ssh_scan -t 192.168.1.1 -p 22222
ssh_scan -t 192.168.1.1 -p 22222 -L output.log -V INFO
ssh_scan -t 192.168.1.1 -P custom_policy.yml
ssh_scan -t 192.168.1.1 --unit-test -P custom_policy.yml

Lecture de référence relative au serveur SSH :

  1. Utilisez SSH Keygen (ssh-keygen) en cinq étapes pour obtenir une connexion SSH sans mot de passe
  2. 5 meilleures pratiques pour un serveur SSH sécurisé
  3. Utilisez Chroot pour empêcher les utilisateurs SSH d'accéder à certains répertoires
  4. Comment configurer une connexion SSH pour simplifier la connexion à distance

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