Wyszukiwanie w witrynie

ssh_scan — weryfikuje konfigurację i zasady serwera SSH w systemie Linux


ssh_scan to łatwy w użyciu prototypowy skaner konfiguracji i zasad SSH dla serwerów Linux i UNIX, zainspirowany Przewodnikiem bezpieczeństwa Mozilla OpenSSH, który zapewnia rozsądne zalecenia dotyczące zasad podstawowych dla parametrów konfiguracyjnych SSH, takich jak szyfry i adresy MAC , KexAlgos i wiele więcej.

Ma niektóre z następujących zalet:

  • Ma minimalne zależności, ssh_scan wykorzystuje tylko natywne Ruby i BinData do wykonywania swojej pracy, bez ciężkich zależności.
  • Jest przenośny, możesz użyć ssh_scan w innym projekcie lub do automatyzacji zadań.
  • Jest łatwy w użyciu, wystarczy skierować go na usługę SSH i uzyskać raport JSON na temat obsługiwanych elementów i statusu zasad.
  • Można je również konfigurować. Możesz tworzyć własne, niestandardowe zasady, które odpowiadają Twoim konkretnym wymaganiom.

Sugerowana lektura: Jak zainstalować i skonfigurować serwer OpenSSH w systemie Linux

Jak zainstalować ssh_scan w systemie Linux

Istnieją trzy sposoby instalacji ssh_scan:

Aby zainstalować i uruchomić jako klejnot, wpisz:

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

Aby uruchomić z kontenera dokowanego, wpisz:

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

Aby zainstalować i uruchomić ze źródła, wpisz:

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

Jak korzystać z ssh_scan w systemie Linux

Składnia używania ssh_scan jest następująca:

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

Na przykład, aby przeskanować konfiguracje SSH i politykę serwera 92.168.43.198, wpisz:


ssh_scan -t 192.168.43.198

Pamiętaj, że możesz także przekazać [IP/zakres/nazwę hosta] do opcji -t, jak pokazano w poniższych opcjach:


ssh_scan -t 192.168.43.198,200,205
ssh_scan -t test.tecmint.lan
Przykładowe wyjście

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żesz użyć -p, aby określić inny port, -L, aby włączyć rejestrator i -V, aby zdefiniować poziom szczegółowości, jak pokazano poniżej:

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

Dodatkowo użyj niestandardowego pliku zasad (domyślnym jest Mozilla Modern) z -P lub --policy [FILE] w następujący sposób:

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

Wpisz to, aby wyświetlić wszystkie opcje użycia ssh_scan i więcej przykładów:

ssh_scan -h
Przykładowe wyjście
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

Sprawdź kilka przydatnych artykułów na temat serwera SSH:

  1. Logowanie bez hasła SSH przy użyciu SSH Keygen w 5 prostych krokach
  2. 5 najlepszych praktyk dotyczących zabezpieczania serwera SSH
  3. Ogranicz dostęp użytkownika SSH do określonego katalogu za pomocą Chrooted Jail
  4. Jak skonfigurować niestandardowe połączenia SSH, aby uprościć dostęp zdalny

Aby uzyskać więcej informacji, odwiedź repozytorium ssh_scan Github: https://github.com/mozilla/ssh_scan

W tym artykule pokazaliśmy, jak skonfigurować i używać ssh_scan w systemie Linux. Czy znacie jakieś podobne narzędzia? Daj nam znać za pomocą poniższego formularza opinii, przedstawiając wszelkie inne przemyślenia na temat tego przewodnika.