วิธีล็อคผู้ใช้หลังจากพยายามเข้าสู่ระบบไม่สำเร็จ 5 ครั้ง


12

วิธีล็อคผู้ใช้หลังจากพยายามเข้าสู่ระบบไม่สำเร็จ 5 ครั้ง

ฉันรวบรวมดิสทริบิวชั่น / รุ่นมาสองสามชุดเพื่อทำ แต่ฉันไม่สามารถทดสอบได้

RHEL4 : โดยการเพิ่ม:

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

ถึง:

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

RHEL4 : ???

SLES9 : โดยการเพิ่ม:

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

ถึง:

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

SLES11 หรือ SLES10 : โดยการเพิ่ม:

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

ถึง:

/etc/pam.d/common-auth

และโดยการเพิ่ม:

account required pam_tally.so

ถึง:

/etc/pam.d/common-account

คำถาม : มีคนช่วยยืนยันได้ไหมว่านี่เป็นวิธีที่ดีในการล็อคผู้ใช้หลังจากพยายามเข้าสู่ระบบไม่สำเร็จ 5 ครั้ง? หรือจะทำเช่นนี้ได้อย่างไร?

PS:

/sbin/pam_tally --user USERNAME --reset

เป็นสิ่งที่มีประโยชน์ที่ต้องทำก่อนทำเช่นนี้? ฉันสามารถล็อกผู้ใช้รูทด้วยสิ่งเหล่านี้ได้หรือไม่? การแก้ไข PAM เป็นสิ่งที่ละเอียดอ่อนมากเพราะผู้คนสามารถล็อคตัวเองจากเซิร์ฟเวอร์ (ฉันหมายถึงอดีต: ผู้ใช้รูท) มีคำใบ้อะไรเมื่อทำเช่นนี้?


โมดูลนับเป็นวิธีที่จะทำ แต่ฉันอยากจะแนะนำ pam_tally2 ตั้งแต่เดิมที่ค่อนข้างเสียและไม่ง่าย นอกจากนี้รากจะเปิดให้ถูกขังในลักษณะดังกล่าว แต่คุณต้องเปิดการใช้งานผ่านทางno_magic_root
Bratchley

BTW ฉันจะไม่แนะนำให้ทำการล็อกใด ๆ ในบัญชีรูทนั่นคือช่องหนีของคุณควรมีบางอย่างผิดปกติ (เช่นการล็อคบัญชี) และผู้โจมตีไม่ควรมีเวกเตอร์โดยตรงเลย
Bratchley

SLES10 ต้องการ no_magic_root ด้วยหรือไม่
gasko peter

ดิสทริบิวชัน GNU / Linux ทั้งหมดใช้ชุดพื้นฐานของโครงการอัปสตรีมเดียวกันดังนั้นหาก Novell พยายามเปลี่ยนโมดูล pam_tally ในแบบที่จะสร้างความสับสนให้กับคน
Bratchley

1
คุณแน่ใจหรือว่านี่เป็นความคิดที่ดี วิธีนี้ทำให้ผู้ใช้ทุกคนสามารถป้องกันไม่ให้ผู้ใช้รายอื่นเข้าสู่ระบบได้ง่ายการใช้ความล่าช้าสูงนั้นเป็นประโยชน์มากกว่า IMO แต่ให้ตัดสินใจด้วยตัวเอง
Marco

คำตอบ:


17

คุณอาจต้องการดู fail2ban สามารถกำหนดค่าให้ล็อคบัญชีหลังจากตั้งค่าจำนวนครั้งที่พยายามล้มเหลวจากนั้นปลดล็อคหลังจากช่วงเวลาที่กำหนดไว้

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

หากคุณจริงจังกับการใช้งานจริงๆpam_tallyคุณอาจต้องการใช้pam_tally2แทน ควรติดตั้งกับแพคเกจ PAM ใด ๆ ที่เป็นปัจจุบัน คุณสามารถทำได้pam_tally2 คนเพื่อดูวิธีการใช้งาน

นี่คือตัวอย่างเพื่อให้คุณเริ่มต้น เพิ่มรายการต่อไปนี้ไปยังจุดเริ่มต้นของส่วนรับรองความถูกต้องในไฟล์ pam /etc/pam.d/password-auth:

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

ในไฟล์เดียวกันเพิ่มสิ่งนี้ลงในส่วนบัญชี:

account     required      pam_tally2.so

พารามิเตอร์ด้านบนมีดังนี้:

  • file=/var/log/tallylog - ไฟล์บันทึกเริ่มต้นจะใช้เพื่อนับการเข้าสู่ระบบ
  • deny=3 - ปฏิเสธการเข้าถึงหลังจาก 3 ครั้งและล็อคผู้ใช้
  • even_deny_root - นโยบายนี้ใช้กับผู้ใช้รูทด้วย
  • unlock_time=1200 - 20 นาที (60 วินาที. * 20 นาที = 1200 วินาที)

หากคุณไม่ต้องการที่จะล็อครากออกจากการเปลี่ยนแปลงeven_deny_rootเพื่อmagic_root

เป็นเรื่องที่น่าสงสัยถ้าคุณต้องการล็อคบัญชีรูท คุณอาจต้องการทำสิ่งนี้แทนที่บัญชีรูทสามารถถูกล็อคได้ แต่ใช้เวลาสั้นกว่าบัญชีอื่น:

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

การดำเนินการนี้จะล็อคบัญชีผู้ใช้รากเป็นเวลาหนึ่งนาทีทุกคนอื่นปกติ 1,200 วินาที

ไฟล์บันทึกตัวอย่างจะมีลักษณะดังนี้:

$ 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

คุณสามารถสอบถามเกี่ยวกับบัญชีที่ถูกล็อคโดยใช้คำสั่ง pam_tally2:

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

คุณสามารถปลดล็อกข้อ จำกัด ดังนี้:

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

ตอนนี้บัญชีปรากฏใน pam_tally2 เช่นนี้:

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

อ้างอิง


2

pam_tally2เริ่มแรกทำให้ฉันสับสน แต่ฉันคิดออกหลังจากทำตาม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

ข้อความด้านบนมีความสับสนเล็กน้อยเนื่องจากคุณเพิ่มpam_tally2.soบรรทัดเท่านั้น

เพื่อให้คุณสามารถแก้ไข/etc/pam.d/loginและเพิ่มในauthบรรทัดอื่น ๆ ด้านล่าง:

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

หรือถ้าคุณมี/etc/pam.d/system-authคุณสามารถเพิ่มที่นั่น

ไม่ต้องรีบูตหรือโหลดซ้ำบริการใด ๆ - มันจะเปิดใช้งานทันทีสำหรับการเข้าสู่ระบบในเครื่องใหม่

หมายเหตุ: หากคุณต้องการpam_tally2นำไปใช้sshdหรือบริการระยะไกลอื่น ๆ เช่นกันคุณจะต้องเพิ่มสาย/etc/pam.d/sshdและ / หรือ/etc/pam.d/password-auth


เพื่อตรวจสอบว่ามันใช้งานได้พยายามเข้าสู่ระบบล้มเหลวกับผู้ใช้ที่ถูกต้องแล้วเรียกใช้ pam_tally2

ตัวอย่างเช่นสำหรับผู้ใช้ชื่อjacobrun:

  $ sudo pam_tally2 -u jacob

และมันจะออกผลลัพธ์เช่น:

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

หากการเข้าสู่ระบบล้มเหลวมากเกินไปและบัญชีถูกล็อคคุณสามารถปลดล็อคบัญชีด้วยตนเอง:

  $ sudo pam_tally2 -u jacob --reset
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.