ssh_scan - Linux'ta SSH Sunucu Yapılandırmanızı ve Politikanızı Doğrular


ssh_scan, Linux ve UNIX sunucularına yönelik, Şifreler, MAC'ler gibi SSH yapılandırma parametreleri için makul bir temel politika önerisi sağlayan Mozilla OpenSSH Güvenlik Kılavuzu'ndan ilham alan, kullanımı kolay bir prototip SSH yapılandırması ve politika tarayıcısıdır. , KexAlgos ve çok daha fazlası.

Aşağıdaki avantajlardan bazılarına sahiptir:

  • Minimum düzeyde bağımlılıkları vardır, ssh_scan işini yapmak için yalnızca yerel Ruby ve BinData'yı kullanır, ağır bağımlılıklar yoktur.
  • Taşınabilirdir, ssh_scan'i başka bir projede veya görevlerin otomasyonu için kullanabilirsiniz.
  • Kullanımı kolaydır, sadece onu bir SSH hizmetine yönlendirin ve neleri desteklediğine ve politika durumuna ilişkin bir JSON raporu alın.
  • Ayrıca yapılandırılabilir; özel politika gereksinimlerinize uyan kendi özel politikalarınızı oluşturabilirsiniz.

Önerilen Okuma: Linux'ta OpenSSH Sunucusu Nasıl Kurulur ve Yapılandırılır

Linux'ta ssh_scan Nasıl Kurulur

ssh_scan'i kurmanın üç yolu vardır ve bunlar şunlardır:

Gem olarak yüklemek ve çalıştırmak için şunu yazın:

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

Docker kapsayıcısından çalıştırmak için şunu yazın:

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

Kaynaktan yüklemek ve çalıştırmak için şunu yazın:

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

Linux'ta ssh_scan Nasıl Kullanılır

Ssh_scan'i kullanmanın sözdizimi aşağıdaki gibidir:

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

Örneğin, 92.168.43.198 sunucusunun SSH yapılandırmalarını ve politikasını taramak için şunu girin:


ssh_scan -t 192.168.43.198

Aşağıdaki seçeneklerde gösterildiği gibi -t seçeneğine de bir [IP/Aralık/Ana Bilgisayar Adı] iletebileceğinizi unutmayın:


ssh_scan -t 192.168.43.198,200,205
ssh_scan -t test.tecmint.lan
Örnek Çıktı

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"
      ]
    }
  }
]

Farklı bir bağlantı noktası belirtmek için -p komutunu, günlükçüyü etkinleştirmek için -L ve ayrıntı düzeyini tanımlamak için -V komutunu aşağıda gösterildiği gibi kullanabilirsiniz:

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

Ek olarak, aşağıdaki gibi -P veya --policy [FILE] ile özel bir politika dosyası (varsayılan Mozilla Modern'dir) kullanın:

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

Tüm ssh_scan kullanım seçeneklerini ve daha fazla örneği görüntülemek için bunu yazın:

ssh_scan -h
Örnek Çıktı
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

SSH Sunucusunda bazı yararlı makalelere göz atın:

  1. 5 Kolay Adımda SSH Keygen Kullanarak SSH Şifresiz Giriş
  2. SSH Sunucusunu Güvenli Hale Getirmek İçin En İyi 5 Uygulama
  3. Chrooted Jail Kullanarak SSH Kullanıcısının Belirli Dizine Erişimini Kısıtlama
  4. Uzaktan Erişimi Basitleştirmek için Özel SSH Bağlantıları Nasıl Yapılandırılır

Daha fazla ayrıntı için ssh_scan Github deposunu ziyaret edin: https://github.com/mozilla/ssh_scan

Bu yazımızda sizlere Linux'ta ssh_scan kurulumu ve kullanımını gösterdik. Piyasada buna benzer araçlar biliyor musunuz? Bu kılavuzla ilgili diğer düşüncelerinizi de içeren aşağıdaki geri bildirim formunu kullanarak bize bildirin.