วิธีป้องกันผู้ใช้จากการขยายหน้าต่างการเข้าสู่ระบบที่ถูกต้อง


14

เคยทำงานเกี่ยวกับขั้นตอนการชุบแข็งการรักษาความปลอดภัยสำหรับกล่อง RedHat และฉันต้องการทราบว่าจะเป็นไปได้ไหมที่จะป้องกันไม่ให้ผู้ใช้เปลี่ยนรหัสผ่านเมื่อหมดอายุ

สำหรับลูกค้าคนหนึ่งของเราข้อกำหนดคือพวกเขาจะต้องเข้าถึงเซิร์ฟเวอร์ผ่านบัญชีชั่วคราวเท่านั้นซึ่งหมายความว่าเมื่อสร้างข้อมูลประจำตัวผู้ใช้รหัสผ่านจะต้องหมดอายุภายใน 4 ชั่วโมงและเมื่อรหัสผ่านหมดอายุเพียงรากควรจะสามารถเปลี่ยนได้ .

สำหรับความต้องการแรก (รหัสผ่านหมดอายุหลังจาก 4 ชั่วโมง) ผมคิดว่ามันจะประสบความสำเร็จโดยการตั้งค่าpasswordMaxAge = 144000 แต่ฉันก็ยังหาวิธีป้องกันไม่ให้ผู้ใช้เปลี่ยนรหัสผ่านที่หมดอายุโดยไม่ต้องปิดการใช้รหัสผ่าน

ใครช่วยได้บ้าง


4
ไม่เป็นไรถ้าผู้ใช้เปิดเซสชันการเข้าใช้งานที่มีอยู่ผ่านหน้าต่าง 4 ชั่วโมงหรือไม่ การหมดอายุรหัสผ่านของผู้ใช้จะไม่เริ่มต้นหากพวกเขาลงชื่อเข้าใช้แล้วฉันสามารถเปิดเซสชัน SSH ไว้เป็นเวลาหลายสัปดาห์
Wyzard

แทนที่จะพึ่งพา at / cronjobs และการเปลี่ยนแปลงของไบนารีระบบคุณอาจจะเขียนโมดูล pam ง่าย ๆ หรืออาจจะมีแม้แต่หนึ่งในนั้น (หรือคุณอาจจะแยก pam_time เพื่อรวมตัวเลือกเพิ่มเติม)
PlasmaHH

คำตอบ:


21

โดยทั่วไปการหมดอายุรหัสผ่านจะใช้เพื่อบังคับให้ผู้ใช้เปลี่ยนรหัสผ่าน ดูเหมือนว่าคุณต้องการทำคือล็อคบัญชีซึ่งป้องกันการเข้าสู่ระบบทั้งหมด

สิ่งที่ฉันอยากจะแนะนำให้คุณทำคือเมื่อคุณสร้างบัญชีให้ตั้งค่างานที่จะล็อคบัญชีหลังจากสี่ชั่วโมง

ตัวอย่างเช่น:

useradd temp8143
echo chage -E 0 temp8143 | at now + 4 hours

( chage -Eคาดว่าจะได้รับวันหมดอายุเป็นวันดังนั้นเราจึงแก้ไขปัญหานี้ด้วยการทำงาน)


3
นั่นเป็นทางออกที่ดี +1 จากฉัน
Jenny D

2
อาระเบิด - ฉันชอบความคิดนี้เช่นกัน ; +1 ด้วย คุณสามารถทำatเท็ดuserdelได้ซึ่งจะมีประโยชน์ในการจัดเก็บบัญชีชั่วคราวเหล่านี้เพื่อที่พวกเขาจะได้ไม่ต้องไปไหนมาไหนตลอดไป
MadHatter

2
ฉันคิดว่านี่ดีกว่าคำแนะนำของฉันจริง ๆ
Jenny D

ผมคิดว่าจะประสบความสำเร็จเป็นสิ่งเดียวกับpasswd -l temp813 chage -E 0 temp8143
Nate Eldredge

5
@NateEldredge ไม่ตรง passwd -lจะไม่ป้องกันการลงชื่อเข้าใช้คีย์ ssh หรือการลงชื่อเข้าใช้ลายนิ้วมือเป็นต้นในขณะที่chage -E 0จะ
Michael Hampton

24

หากคุณลบบิต setuid ออกจากคำสั่ง passwd เฉพาะ root เท่านั้นที่สามารถใช้งานได้ นี่จะเป็นการปิดการใช้งานผู้ใช้จากการเปลี่ยนรหัสผ่านก่อนที่มันจะหมดอายุ - ซึ่งอาจเป็นวิธีที่ผู้ใช้สามารถขยายบัญชีได้อีกสี่ชั่วโมง

[jenny@finch ~] sudo chmod -s /usr/bin/passwd
[jenny@finch ~]$ passwd
Changing password for user jenny.
Changing password for jenny.
(current) UNIX password: 
New password: 
Retype new password: 
passwd: Authentication token manipulation error

รูทยังสามารถเปลี่ยนรหัสผ่านใด ๆ :

[jenny@finch ~]$ sudo passwd jenny
Changing password for user jenny.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.

5
สง่างามและ UNIX มาก +1 จากฉัน @borntohula อย่าลืมยอมรับคำตอบนี้โดยคลิกที่ "ขีด" เค้าร่างถ้าคุณมีความสุขกับมัน
MadHatter

6
นี้เกือบจะทำงาน ปัญหาก็คือว่าการลบบิต setuid ของคุณจะถูกยกเลิกถ้าpasswdระบบได้รับการปรับปรุง
Michael Hampton

3
@MichaelHampton True แก้ไขนั่นคือสิ่งที่เช่นหุ่นเชิดสำหรับ ทุกคนไม่ตรวจสอบระบบของพวกเขาเพื่อหาบิต setuid / setgid ใหม่หลังจากอัพเดตแต่ละครั้งหรือไม่
Jenny D

1
@JennyD - พวกเขาอาจจะควรตรวจสอบบิต setuid / setgid เปลี่ยนแปลง แต่น้อยมากที่เคยทำ
วอร์เรน

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