Bagaimana cara mengunci pengguna setelah 5 percobaan login yang gagal?

12

Bagaimana cara mengunci pengguna setelah 5 percobaan login yang gagal?

Saya mengumpulkan beberapa distribusi / versi tentang cara melakukannya, tetapi saya tidak dapat mengujinya.

RHEL4 : dengan menambahkan:

auth        required      /lib/security/$ISA/pam_tally.so no_magic_root
account     required      /lib/security/$ISA/pam_tally.so deny=5 reset no_magic_root

untuk:

/etc/pam.d/system-auth
/etc/pam.d/login
/etc/pam.d/sshd

RHEL4 : ???

SLES9 : dengan menambahkan:

auth required pam_tally.so no_magic_root
account required pam_tally.so deny=5 reset no_magic_root

untuk:

/etc/pam.d/login
/etc/pam.d/sshd

SLES11 atau SLES10 : dengan menambahkan:

auth required pam_tally.so deny=5 onerr=fail per_user no_lock_time

untuk:

/etc/pam.d/common-auth

DAN dengan menambahkan:

account required pam_tally.so

untuk:

/etc/pam.d/common-account

PERTANYAAN : Dapatkah seseorang mengonfirmasikannya bahwa ini adalah cara yang berfungsi / baik untuk mengunci pengguna setelah 5 percobaan login yang gagal? ATAU BAGAIMANA CARA MELAKUKANNYA?

ps:

/sbin/pam_tally --user USERNAME --reset

adalah hal yang berguna untuk dilakukan sebelum melakukan ini? Bisakah saya mengunci pengguna root dengan ini? Mengedit PAM adalah hal yang sangat sensitif, karena Orang bisa mengunci diri dari server (maksud saya ex .: pengguna root). Adakah petunjuk saat melakukan ini?

peter gasko
sumber
modul penghitungan adalah cara untuk melakukannya, tetapi saya akan merekomendasikan pam_tally2 karena yang asli cukup rusak dan tidak intuitif. Juga, root terbuka untuk dikunci sedemikian rupa tetapi Anda harus mengaktifkannya melaluino_magic_root
Bratchley
BTW, saya tidak akan merekomendasikan melakukan penguncian pada akun root, itu pintu darurat Anda jika terjadi kesalahan (seperti misalnya, dengan penguncian akun) dan penyerang tidak boleh memiliki vektor langsung di sana.
Bratchley
Apakah SLES10 membutuhkan no_magic_root juga?
gasko peter
Semua distro GNU / Linux didasarkan dari set dasar proyek hulu yang sama, jadi kecuali Novell berusaha mengubah versi modul pam_tally mereka dengan cara yang akan membingungkan orang, itu harus sama pada SuSE seperti pada distro lain.
Bratchley
1
Apakah Anda yakin ini ide yang bagus? Dengan cara ini setiap pengguna dapat dengan mudah mencegah pengguna lain masuk. Menggunakan penundaan tinggi adalah IMO yang lebih praktis, tetapi putuskan sendiri.
Marco

Jawaban:

17

Anda mungkin ingin melihat fail2ban. Ini dapat dikonfigurasikan untuk mengunci akun setelah sejumlah upaya gagal, dan kemudian membuka kunci setelah periode waktu tertentu.

http://www.fail2ban.org/wiki/index.php/Downloads

Jika Anda benar-benar serius ingin menggunakannya pam_tally, Anda mungkin ingin menggunakannya pam_tally2. Harus diinstal dengan paket PAM apa pun yang saat ini. Anda dapat melakukan pam_tally2 pria untuk melihat bagaimana menggunakannya.

Inilah contoh untuk membantu Anda memulai. Menambahkan berikut ke awal auth bagian di file pam, /etc/pam.d/password-auth:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200

Dalam file yang sama tambahkan ini ke bagian akun:

account     required      pam_tally2.so

Parameter di atas adalah sebagai berikut:

  • file=/var/log/tallylog - File log default digunakan untuk menjaga jumlah login.
  • deny=3 - Tolak akses setelah 3 upaya dan mengunci pengguna.
  • even_deny_root - Kebijakan juga berlaku untuk pengguna root.
  • unlock_time=1200 - 20 mnt (60 dtk * 20 mnt = 1200 dtk)

Jika Anda tidak ingin mengunci root, ubah even_deny_root ke magic_root .

Itu dipertanyakan apakah Anda ingin mengunci akun root. Anda mungkin ingin melakukan sesuatu seperti ini sebagai gantinya, di mana akun root bisa dikunci, tetapi hanya untuk durasi yang lebih pendek daripada akun lain:

auth        required      pam_tally2.so  file=/var/log/tallylog deny=3 even_deny_root unlock_time=1200 root_unlock_time=60

Ini hanya akan mengunci akun root selama satu menit, semua orang normal 1200 detik.

File log sampel akan terlihat sebagai berikut:

$ ssh me@somemachine
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Permission denied, please try again.
me@somemachine's password:
Account locked due to 4 failed logins
Account locked due to 5 failed logins
Last login: Mon Jun 4 21:21:06 2013 from someothermachine

Anda dapat menanyakan tentang akun yang terkunci menggunakan perintah pam_tally2:

$ pam_tally2 --user=me
Login           Failures  Latest    failure     From
me                   5    06/04/13  21:21:06    someothermachine

Anda dapat membuka kunci pembatasan seperti:

pam_tally2 --user=me --reset
Login           Failures  Latest    failure     From
me                  5     06/04/13  21:21:06    someothermachine

Sekarang akun muncul di pam_tally2 seperti:

$ pam_tally2 --user=me
Login           Failures   Latest   failure     From
me                 0

Referensi

slm
sumber
2

pam_tally2awalnya membingungkan saya, tetapi saya mengetahuinya setelah mengikuti man pam_tally2-

  EXAMPLES
   Add the following line to /etc/pam.d/login to lock the account after 4 failed logins.
   Root account will be locked as well. The accounts will be automatically unlocked after
   20 minutes. The module does not have to be called in the account phase because the
   login calls pam_setcred(3) correctly.

   auth     required       pam_securetty.so
   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200
   auth     required       pam_env.so
   auth     required       pam_unix.so

kata-kata di atas sedikit membingungkan, karena Anda sebenarnya hanya menambahkan pam_tally2.sobaris.

sehingga Anda dapat mengedit /etc/pam.d/logindan menambahkannya di bawah semua authbaris lainnya :

   auth     required       pam_tally2.so deny=4 even_deny_root unlock_time=1200

atau jika sudah, /etc/pam.d/system-authAnda bisa menambahkannya di sana.

tidak perlu me-reboot atau memuat ulang layanan apa pun - layanan akan segera aktif untuk info masuk lokal baru.

Catatan: jika Anda ingin pam_tally2mendaftar ke sshdatau layanan jarak jauh lainnya juga, Anda juga perlu menambahkan saluran ke /etc/pam.d/sshddan / atau/etc/pam.d/password-auth


untuk memeriksa apakah itu berfungsi, buat upaya login yang gagal dengan pengguna yang valid, lalu jalankan pam_tally2

misalnya, untuk pengguna yang bernama jacobrun:

  $ sudo pam_tally2 -u jacob

dan itu akan menampilkan sesuatu seperti:

  Login           Failures Latest   failure     From
  jacob           1        01/01/01 11:00:00    tty1

jika terlalu banyak upaya login gagal dan akun terkunci, Anda dapat membuka kunci akun secara manual:

  $ sudo pam_tally2 -u jacob --reset
infinite-dan sebagainya
sumber