ssh_scan - Provjerava vašu konfiguraciju i pravila SSH servera u Linuxu


ssh_scan je jednostavan za korištenje prototip SSH konfiguracije i skener pravila za Linux i UNIX servere, inspiriran Mozilla OpenSSH sigurnosnim vodičem, koji pruža razumnu osnovnu preporuku za SSH konfiguracijske parametre kao što su šifre, MAC-ovi , i KexAlgos i još mnogo toga.

Ima neke od sljedećih prednosti:

  • Ima minimalne zavisnosti, ssh_scan koristi samo izvorni Ruby i BinData da obavlja svoj posao, bez teških zavisnosti.
  • Prenosiv je, možete koristiti ssh_scan u drugom projektu ili za automatizaciju zadataka.
  • Jednostavan je za korištenje, jednostavno ga usmjerite na SSH uslugu i dobijete JSON izvještaj o tome šta podržava i statusu politike.
  • Također se može konfigurirati, možete kreirati vlastite prilagođene politike koje odgovaraju vašim specifičnim zahtjevima politike.

Preporučeno čitanje: Kako instalirati i konfigurirati OpenSSH server u Linuxu

Kako instalirati ssh_scan u Linux

Postoje tri načina na koje možete instalirati ssh_scan, a to su:

Da biste instalirali i pokrenuli kao dragulj, upišite:

----------- On Debian/Ubuntu ----------- 
sudo apt-get install ruby gem
sudo gem install ssh_scan

----------- On CentOS/RHEL ----------- 
yum install ruby rubygem
gem install ssh_scan

Za pokretanje iz docker kontejnera upišite:

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

Da biste instalirali i pokrenuli iz izvora, upišite:

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

Kako koristiti ssh_scan u Linuxu

Sintaksa za korištenje ssh_scan je sljedeća:

ssh_scan -t ip-address
ssh_scan -t server-hostname

Na primjer da skenirate SSH konfiguracije i politiku servera 92.168.43.198, unesite:


ssh_scan -t 192.168.43.198

Imajte na umu da također možete proslijediti [IP/Range/Hostname] na -t opciju kao što je prikazano u opcijama ispod:


ssh_scan -t 192.168.43.198,200,205
ssh_scan -t test.tecmint.lan
Sample Output

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 ",
      "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 ",
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "[email ",
      "[email "
    ],
    "encryption_algorithms_server_to_client": [
      "[email ",
      "aes128-ctr",
      "aes192-ctr",
      "aes256-ctr",
      "[email ",
      "[email "
    ],
    "mac_algorithms_client_to_server": [
      "[email ",
      "[email ",
      "[email ",
      "[email ",
      "[email ",
      "[email ",
      "[email ",
      "hmac-sha2-256",
      "hmac-sha2-512",
      "hmac-sha1"
    ],
    "mac_algorithms_server_to_client": [
      "[email ",
      "[email ",
      "[email ",
      "[email ",
      "[email ",
      "[email ",
      "[email ",
      "hmac-sha2-256",
      "hmac-sha2-512",
      "hmac-sha1"
    ],
    "compression_algorithms_client_to_server": [
      "none",
      "[email "
    ],
    "compression_algorithms_server_to_client": [
      "none",
      "[email "
    ],
    "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 , [email , [email , hmac-sha1",
        "Remove these Authentication Methods: password"
      ],
      "references": [
        "https://wiki.mozilla.org/Security/Guidelines/OpenSSH"
      ]
    }
  }
]

Možete koristiti -p da navedete drugačiji port, -L da omogućite loger i -V da definirate nivo opširnosti kao što je prikazano ispod:

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

Dodatno, koristite datoteku prilagođene politike (podrazumevano je Mozilla Modern) sa -P ili --policy [FILE] na sljedeći način:

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

Upišite ovo da vidite sve opcije korištenja ssh_scan i više primjera:

ssh_scan -h
Sample Output
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

Pogledajte neke korisne članke na SSH serveru:

  1. SSH prijava bez lozinke koristeći SSH Keygen u 5 jednostavnih koraka
  2. 5 najboljih praksi za osiguranje SSH servera
  3. Ograničite SSH korisnički pristup određenom direktoriju koristeći Chrooted Jail
  4. Kako konfigurirati prilagođene SSH veze za pojednostavljenje udaljenog pristupa

Za više detalja posjetite ssh_scan Github spremište: https://github.com/mozilla/ssh_scan

U ovom članku smo vam pokazali kako postaviti i koristiti ssh_scan u Linuxu. Znate li za neke slične alate? Obavijestite nas putem obrasca za povratne informacije u nastavku, uključujući sve druge misli u vezi sa ovim vodičem.