Pesan kesalahan khusus untuk sshd

8

Apakah mungkin untuk mengatur pesan kesalahan khusus untuk pengguna yang ditolak untuk mengakses server? Bahkan, saya hanya ingin menampilkan pesan ini jika pengguna ditolak karena set filter IP masuk sshd_config. Tapi satu pesan kesalahan global sudah cukup.

Mikulas Dite
sumber

Jawaban:

6

Dengan "pesan kesalahan" Saya yakin maksud Anda string teks yang ditampilkan oleh program klien. Kata "pesan" memiliki beberapa konteks dalam protokol otentikasi SSH RFC yang akan saya rujuk nanti, tetapi saya rasa itu bukan konotasi yang Anda gunakan.

Saya yakin Anda berpikir SSH adalah sesuatu seperti TELNET, di mana string teks sewenang-wenang yang dikirim oleh daemon server akan ditampilkan oleh klien. SSH menggunakan protokol otentikasi yang meneruskan pesan-pesan tokenized dalam bentuk nilai biner bolak-balik antara klien dan server. Salah satu pesan token ini, "SSH_MSG_USERAUTH_BANNER", dapat digunakan untuk menginstruksikan klien untuk menampilkan string teks arbitrer (jika dipilih) tetapi Anda harus memodifikasi daemon SSH Anda untuk mengirim ini pada waktu yang tepat. Saya tidak percaya bahwa OpenSSH memiliki fungsionalitas bawaan untuk mengirim SSH_MSG_USERAUTH_BANNER pesan selama titik arbitrer dalam proses otentikasi.

Saya akan mempertanyakan mengapa Anda ingin memberikan penyerang jarak jauh informasi tambahan tentang mengapa otentikasi mereka gagal. Mereka tahu itu gagal karena klien SSH mereka menerima dan bereaksi terhadap pesan tokenized dari daemon SSH menandakan kegagalan.

Evan Anderson
sumber
1

EDIT: Evan Anderson mengetik lebih cepat dari yang saya lakukan, dan tampaknya mengkonfirmasi bahwa pesan tersebut tidak dapat disesuaikan pada ukuran server.

Anda dapat menentukan file banner di sshd_config. Spanduk akan ditampilkan kepada semua pengguna sebelum prompt masuk dan menyatakan bahwa hanya login dari domain dan alamat tertentu yang diizinkan.

SSH dapat meneruskan login ke perintah unix / bin / login. Bergantung pada OS Anda, Anda mungkin memiliki opsi di sana untuk menyesuaikan permintaan dan kesalahan?

Hal lain yang bisa saya pikirkan mungkin berarti mengedit kode dan mengkompilasi ulang. Dan ada kemungkinan bahwa pesan kegagalan tidak dikirim dari server ke klien sebagai string, tetapi sebagai kode, untuk mencegah penyerang mengumpulkan informasi. (Jika ini adalah string, dan dapat dikustomisasi, seseorang akan mengaturnya menjadi "Login Gagal. OpenSSH_3.7_p2 21032004")

Bill Gates
sumber
0

Ini tidak akan bekerja secara khusus untuk filter ip sshd_config, tetapi itu akan bekerja untuk kontrol akses yang dilaksanakan oleh PAM dengan menggunakan pam_echo.so.

Sebagai contoh:

account [success=2 default=ignore] pam_lastlog.so inactive=30
account optional pam_echo.so file=/path/to/lastlog_error_message.txt
account requisite pam_deny.so
account ...

Dalam skenario ini jika pengguna yang diautentikasi tidak login dalam tiga puluh hari terakhir, konten /path/to/lastlog_error_message.txtakan digaungkan ke standar sebelum koneksi SSH ditutup. Jika mereka lulus dari pemeriksaan pam_lastlogmaka evaluasi akan melewatkan pam_echodan pam_denydoa untuk terus mengevaluasi modul PAM yang tersisa.

jgibson
sumber