ssh_scan - Pag-verify sa Imong SSH Server Configuration ug Policy sa Linux


Ang ssh_scan usa ka dali gamiton nga prototype nga SSH configuration ug policy scanner para sa Linux ug UNIX servers, nga giinspirar sa Mozilla OpenSSH Security Guide, nga naghatag ug rasonable nga baseline policy nga rekomendasyon para sa SSH configuration parameters sama sa Ciphers, MACs, ug KexAlgos ug daghan pa.

Kini adunay pipila sa mosunod nga mga benepisyo:

  • Kini adunay gamay nga dependency, ang ssh_scan naggamit lang sa lumad nga Ruby ug BinData sa pagbuhat sa trabaho niini, walay bug-at nga dependency.
  • Kini madaladala, mahimo nimong gamiton ang ssh_scan sa laing proyekto o para sa automation sa mga buluhaton.
  • Sayon ra kining gamiton, itudlo lang kini sa usa ka serbisyo sa SSH ug pagkuha og JSON nga report kung unsa ang gisuportahan niini ug ang kahimtang sa palisiya niini.
  • Mahimo usab kini i-configure, makahimo ka sa imong kaugalingon nga kostumbre nga mga palisiya nga mohaum sa imong piho nga kinahanglanon sa palisiya.

Giunsa ang Pag-install sa ssh_scan sa Linux

Adunay tulo ka mga paagi nga imong ma-install ang ssh_scan ug kini mao ang:

Aron ma-install ug modagan ingon usa ka mutya, i-type ang:

----------- 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

Aron makadagan gikan sa usa ka docker container, i-type ang:

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

Aron ma-install ug modagan gikan sa gigikanan, i-type ang:

# 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

Giunsa Paggamit ang ssh_scan sa Linux

Ang syntax sa paggamit sa ssh_scan mao ang mosunod:

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

Pananglitan sa pag-scan sa SSH configs ug palisiya sa server 92.168.43.198, pagsulod:

$ ssh_scan -t 192.168.43.198

Timan-i nga mahimo usab nimong ipasa ang [IP/Range/Hostname] sa -t nga opsyon sama sa gipakita sa mga opsyon sa ubos:

$ ssh_scan -t 192.168.43.198,200,205
$ ssh_scan -t test.tecmint.lan
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"
      ]
    }
  }
]

Mahimo nimong gamiton ang -p aron ipiho ang lahi nga pantalan, -L aron mahimo ang logger ug -V aron mahibal-an ang lebel sa verbosity sama sa gipakita sa ubos:

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

Dugang pa, gamita ang custom policy file (ang default mao ang Mozilla Modern) nga adunay -P o --policy [FILE] sama niini:

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

I-type kini aron makita ang tanan nga mga kapilian sa paggamit sa ssh_scan ug daghang mga pananglitan:

$ ssh_scan -h
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

Tan-awa ang pipila ka mapuslanong artilces sa SSH Server:

  1. SSH Passwordless Login Gamit ang SSH Keygen sa 5 Sayon nga Lakang
  2. 5 Labing Maayo nga Praktis sa Pagsiguro sa SSH Server
  3. I-restrict ang SSH User Access sa Piho nga Direktoryo Gamit ang Chrooted Jail
  4. Unsaon Pag-configure sa Custom nga SSH Connections aron Pasimplehon ang Remote Access

Alang sa dugang nga mga detalye bisitaha ang ssh_scan Github repository: https://github.com/mozilla/ssh_scan

Niini nga artikulo, gipakita namon kanimo kung giunsa ang pag-set up ug paggamit sa ssh_scan sa Linux. Nahibal-an ba nimo ang bisan unsang parehas nga mga himan didto? Ipahibalo kanamo pinaagi sa porma sa feedback sa ubos, lakip ang bisan unsang ubang mga hunahuna bahin sa kini nga giya.