Bagaimana saya bisa mendaftar MAC, Ciphers, dan KexAlogrithms yang didukung oleh server ssh saya?

18

Bagaimana saya bisa menentukan MAC, Ciphers, panjang kunci, dan KexAlogrithms yang didukung oleh server ssh saya?

Saya perlu membuat daftar untuk audit keamanan eksternal. Saya mencari sesuatu yang mirip openssl s_client -connect example.com:443 -showcerts. Dari penelitian saya, sshmenggunakan sandi default seperti yang tercantum di man sshd_config. Namun saya memerlukan solusi yang dapat saya gunakan dalam skrip dan man sshd_configtidak mencantumkan informasi tentang panjang kunci . Aku harus memperbaiki diri di sini: Anda dapat menentukan ServerKeyBitsdi sshd_config.

Saya kira itu ssh -vv localhost &> ssh_connection_specs.outmengembalikan informasi yang saya butuhkan tetapi saya tidak yakin apakah cipher yang terdaftar adalah cipher yang didukung klien atau oleh server. Saya juga tidak yakin bagaimana menjalankan skrip non-interaktif ini.

Apakah ada cara mudah untuk mendapatkan SSHinformasi koneksi?

Henrik Pingel
sumber
2
ternyata sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"seperti yang disarankan oleh @ Jakuje hanya bekerja pada host RHEL7, tetapi tidak untuk RHEL6. Saya akhirnya menggunakan nmap --script SSH2-hostkey localhostdannmap --script ssh-hostkey localhost
Henrik Pingel
ssh -vvmengeluarkan fungsionalitas yang didukung sebagai client to server (ctos) dan server to client (stoc). Namun, tampaknya output tersebut terbatas pada apa yang didukung kedua belah pihak, menjadikannya kurang bermanfaat untuk audit keamanan.
Moshe

Jawaban:

17

Anda kehilangan beberapa poin dalam pertanyaan Anda:

  • Apa versi openssh Anda? Ini bisa sedikit berbeda dari versi.
  • ServerKeyBits adalah opsi untuk protokol versi 1, yang diharapkan telah dinonaktifkan!

Didukung Cipher, Mac dan KexAlgorithms selalu tersedia di manual dan ini tidak memiliki kesamaan apa pun dengan panjang kunci.

Diaktifkan Chiphers, Mac dan KexAlgorithms adalah orang-orang yang ditawarkan menggunakan koneksi seperti yang Anda tunjukkan. Tetapi mereka dapat diperoleh juga dengan cara lain, misalnya menggunakansshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"

Untuk mendapatkan panjang kunci dari kunci server Anda, Anda dapat menggunakan ssh-keygen: ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub

tetapi Anda mungkin ingin juga ukuran moduli yang ditawarkan dan digunakan selama pertukaran kunci, tetapi itu benar-benar tergantung pada metode pertukaran kunci, tetapi itu juga harus dapat dibaca dari hasil debug ssh -vvv host.

Jakuje
sumber
1
Terima kasih. Ternyata sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"hanya berfungsi host RHEL7 saya, tetapi tidak RHEL6. Saya akhirnya menggunakan nmap --script SSH2-hostkey localhostdannmap --script ssh-hostkey localhost
Henrik Pingel
1
Host RHEL6 dengan pembaruan openssh terbaru harus memperbaikinya juga.
Jakuje
Sialan kau benar tentang itu. Saya hanya memeriksa VM yang ketinggalan zaman ... terima kasih
Henrik Pingel
sshd -T hanya akan menawarkan informasi tentang cipher yang dikonfigurasikan dalam file sshd_config, bukan yang memang dapat ditambahkan ke dalamnya karena didukung oleh biner
Daniel J.
10

Bagaimana saya bisa menentukan MAC, Ciphers, panjang kunci, dan KexAlogrithms yang didukung oleh server ssh saya?

Sepertinya jawaban di /superuser//a/1219759/173408 juga merupakan jawaban untuk pertanyaan Anda. Cocok dalam satu baris:

nmap --script ssh2-enum-algos -sV -p 22 1.2.3.4

Berikut ini adalah output pada mesin Debian 9.4 biasa dengan versi SSH saat ini:

Mulai Nmap 7.01 (https://nmap.org) di 2018-05-22 13:40 CEST
Laporan pemindaian Nmap untuk 1.2.3.4
Host sudah habis (latensi 0,00024s).
VERSI LAYANAN NEGARA PELABUHAN
22 / tcp buka ssh OpenSSH 7.4p1 Debian 10 + deb9u3 (protokol 2.0)
| ssh2-enum-algos:
| kex_algorithms: (10)
| curve25519-sha256
| [email protected]
| ecdh-sha2-nistp256
| ecdh-sha2-nistp384
| ecdh-sha2-nistp521
| diffie-hellman-group-exchange-sha256
| diffie-hellman-group16-sha512
| diffie-hellman-group18-sha512
| diffie-hellman-group14-sha256
| diffie-hellman-group14-sha1
| server_host_key_algorithms: (5)
| ssh-rsa
| rsa-sha2-512
| rsa-sha2-256
| ecdsa-sha2-nistp256
| ssh-ed25519
| Enkripsi_algoritma: (6)
| [email protected]
| aes128-ctr
| aes192-ctr
| aes256-ctr
| [email protected]
| [email protected]
| mac_algorithms: (10)
| [email protected]
| [email protected]
| [email protected]
| [email protected]
| [email protected]
| [email protected]
| [email protected]
| hmac-sha2-256
| hmac-sha2-512
| hmac-sha1
| compression_algorithms: (2)
| tidak ada
| _ [email protected]
Info Layanan: OS: Linux; CPE: cpe: / o: linux: linux_kernel

Deteksi layanan dilakukan. Silakan laporkan hasil yang salah di https://nmap.org/submit/.
Nmap selesai: 1 alamat IP (1 host up) dipindai dalam 0,52 detik
Stéphane Gourichon
sumber
1
Saya mendapatkan PORT STATE SERVICE VERSION 22/tcp filtered sshdengan perintah ini - meskipun saya bisa masuk ke server yang sama melalui ssh.
Hei,
Apakah Anda benar-benar menggunakan perintah, atau apakah Anda mengganti 1.2.3.4dengan IP server Anda?
Stéphane Gourichon
Saya menggunakan IP server saya.
hei