ssh_scan - Provjerava konfiguraciju i pravila SSH poslužitelja u Linuxu


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

Ima neke od sljedećih prednosti:

  • Ima minimalne ovisnosti, ssh_scan koristi samo izvorni Ruby i BinData za obavljanje svog posla, nema velikih ovisnosti.
  • 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 dobit ćete JSON izvješće o tome što podržava i statusu pravila.
  • Također se može konfigurirati, možete kreirati vlastita prilagođena pravila koja odgovaraju vašim specifičnim zahtjevima pravila.

Predloženo za čitanje: Kako instalirati i konfigurirati OpenSSH poslužitelj u Linuxu

Kako instalirati ssh_scan u Linuxu

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

Da biste instalirali i pokrenuli kao gem, 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 spremnika upišite:

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

Za instalaciju i pokretanje 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 za skeniranje SSH konfiguracija i pravila poslužitelja 92.168.43.198, unesite:


ssh_scan -t 192.168.43.198

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


ssh_scan -t 192.168.43.198,200,205
ssh_scan -t test.tecmint.lan
Uzorak izlaza

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 drugi port, -L da omogućite logger i -V da definirate razinu opširnosti kao što je prikazano u nastavku:

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

Dodatno, koristite prilagođenu datoteku pravila (zadano je Mozilla Modern) s -P ili --policy [FILE] ovako:

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

Upišite ovo za prikaz svih opcija upotrebe ssh_scan i više primjera:

ssh_scan -h
Uzorak izlaza
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 o SSH poslužitelju:

  1. SSH prijava bez lozinke pomoću SSH Keygena u 5 jednostavnih koraka
  2. 5 najboljih praksi za osiguranje SSH poslužitelja
  3. Ograničite korisnički pristup SSH određenim imenicima pomoću Chrooted Jaila
  4. Kako konfigurirati prilagođene SSH veze za pojednostavljenje udaljenog pristupa

Za više detalja posjetite ssh_scan Github repozitorij: 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 sva druga razmišljanja o ovom vodiču.