GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menolak akses ke akun AD yang dinonaktifkan melalui kerberos di pam_krb5?

Saya telah membaca di tempat lain orang lain meminta SSH untuk "diperbaiki" sehingga akun yang terkunci tidak dapat masuk melalui SSH. (lihat bug Debian 219377) Permintaan ini ditolak sebagai tambalan "karena merusak beberapa harapan dari pengguna [yang] terbiasa dengan passwd -l hanya mengunci passwd." (lihat bug Debian 389183) mis. beberapa orang INGIN dapat mengunci akun dari login sandi, tetapi tetap mengizinkan akses kunci SSH.

PAM tidak akan menolak autentikasi kunci SSH untuk akun yang baru saja dikunci (misalnya karena percobaan kata sandi yang tidak valid, karena autentikasi kunci SSH dirancang untuk tidak memperhatikan bidang kata sandi, yang biasanya digunakan untuk mengunci akun.)

Saya mengerti bahwa entri hash kata sandi secara implisit diperiksa pada waktu pam_authenicate(), bukan pada waktu pam_acct_mgmt(). pam_unix.so pam_sm_acct_mgmt() sama sekali tidak memeriksa hash kata sandi, dan pam_authenticate() tidak dipanggil selama autentikasi kunci publik.

Jika niat Anda adalah untuk dapat menonaktifkan akun secara terpusat agar tidak masuk, ada kemungkinan solusi lain, termasuk:

Mengubah shell login.

(kembali) memindahkan file authorized_keys mereka.

Opsi lain untuk menolak akses dapat berupa penggunaan DenyGroups atau AllowGroups di sshd_config.(kemudian menambahkan pengguna ke grup "sshdeny", atau menghapusnya dari grup "sshlogin" untuk menonaktifkannya agar tidak masuk.)( baca di sini:https://help.ubuntu.com/8.04/serverguide/user-management.html )

Dari http://web.archiveorange.com/archive/v/67CtqEoe5MhDqkDmUMuLI baca:"Masalahnya adalah pam_unix hanya memeriksa tanggal kedaluwarsa entri bayangan, bukan isi bidang hash kata sandi."Jika ini benar, apakah kedaluwarsa akun daripada menguncinya, lakukan apa yang Anda butuhkan?

Jawaban atas pertanyaan Anda mungkin adalah "ya, jika Anda menonaktifkannya di tempat lain selain bidang kata sandi"


Melakukan beberapa pekerjaan rumah lagi, dan saya menjawab pertanyaan saya sendiri.

Di pam_krb5 RedHat (pam_krb5-2.3.14-1/src/acct.c ), kecuali modul berpartisipasi dalam tahap autentikasi, fungsi pam_sm_acct_mgmt() mengembalikan PAM_IGNORE atau PAM_USER_UNKNOWN tergantung pada konfigurasi modul. Oleh karena itu, diperlukan perubahan pada kode pam_krb5 untuk melakukan apa yang saya inginkan.

Jawaban JohnGH adalah solusi yang bagus; menggunakan atribut "proksi" untuk menyampaikan arti yang sama, seperti memecah cangkang atau menambahkan ke grup "pengguna yang dinonaktifkan".

Solusi lain (diuji sebagian) adalah menyetel tanggal kedaluwarsa akun di masa lalu, dan menggunakan modul seperti pam_unix untuk menggagalkan pemeriksaan akun. Ini menggunakan LDAP, bukan KRB5, tetapi melakukan kueri terhadap direktori pengguna yang dikelola secara terpusat yang sama.


Otentikasi berbasis kunci SSH tidak tergantung pada PAM. Anda memiliki solusi berikut:

  • nonaktifkan autentikasi berbasis kunci di sshd_config
  • ubah dan kompilasi ulang sshd dan tambahkan pengait sehingga autentikasi berbasis kunci juga akan memeriksa apakah akun tersebut valid melalui pam.

Jika Anda ingin menggunakan login tanpa kata sandi melalui kerberos, Anda harus memastikan bahwa:

  • Anda tidak menggunakan pam untuk sshd
  • Anda telah mengonfigurasi kerberos dengan benar. Misalnya. Anda dapat melakukan kinit -k host/[email protected]
  • sshd Anda dikonfigurasi untuk menggunakan gssapi:

    KerberosAuthentication yesGSSAPIAuthentication yesGSSAPICleanupCredentials yesUsePAM no

  • Anda menggunakan klien ssh kerber seperti Putty v0.61 atau yang lebih baru.


Linux
  1. Memblokir akses melalui file .htaccess

  2. Cara Mengatur Login SSH Tanpa Kata Sandi

  3. Bagaimana Cara Mengetik Kata Sandi Untuk Banyak Windows?

  1. Bagaimana Cara Membuat Pengguna Baru Dengan Akses Ssh?

  2. Cara menolak akses ke file tertentu di situs Anda melalui .htaccess

  3. Bagaimana cara scp melalui mesin perantara?

  1. Bagaimana cara menentukan apakah saya masuk melalui SSH?

  2. Bagaimana Kerberos bekerja dengan SSH?

  3. Cara menghentikan/mencegah bruteforce SSH