คุณจะตั้งข้อกำหนด (เช่นความยาวขั้นต่ำ) ในรหัสผ่านได้อย่างไร


18

มีวิธีใดในการตั้งค่าข้อกำหนดรหัสผ่านขั้นต่ำเช่นความยาวต่ำสุดข้อกำหนดของตัวอักษรผสมตัวเลขและตัวอักษรผสมอย่างน้อย 1 สัญลักษณ์ในรหัสผ่านและบังคับใช้เมื่อมีการเปลี่ยนแปลงรหัสผ่าน?

คำตอบ:


21

ความซับซ้อนของรหัสผ่านใน Ubuntu ถูกควบคุมโดย PAM น่าเสียดายที่ PAM เป็น "ปกติ Unix" เหมือนในแนวทางของมัน หมายความว่ามันกระจายการกำหนดค่าผ่านทางไฟล์ที่มีความสับสนจำนวนมาก

ไฟล์ที่ควบคุมความซับซ้อนของรหัสผ่านคือ:

/etc/pam.d/common-password

มีเส้น:

password [success=1 default=ignore] pam_unix.so obscure sha512

ซึ่งกำหนดกฎพื้นฐานสำหรับความซับซ้อนของรหัสผ่าน คุณสามารถเพิ่มการลบล้างความยาวขั้นต่ำได้โดยเปลี่ยนเป็น:

password [success=1 default=ignore] pam_unix.so obscure sha512 minlen=12

หรืออะไรก็ตามที่คุณต้องการ อย่างที่คุณเห็นค่าเริ่มต้นกำหนดกฎความสับสนขั้นพื้นฐานไว้แล้ว กฎพื้นฐานเหล่านี้สามารถเห็นได้ใน:

man pam_unix

ค้นหา "obscure"

มีโมดูลแพมจำนวนมากที่สามารถติดตั้งได้

apt-cache search libpam-

ควรแสดงให้พวกเขาเห็น

คุณจะต้องตามล่าหาเอกสารให้พวกเขาฉันกลัว แต่ "cracklib" เป็นส่วนเสริมทั่วไป

UPDATE: ฉันควรจะชี้ให้เห็นว่าพารามิเตอร์ "คลุมเครือ" เริ่มต้นรวมถึงการทดสอบความซับซ้อนตามรหัสผ่านก่อนหน้าและความเรียบง่าย (ความยาวจำนวนอักขระประเภทต่าง ๆ ) ตัวอย่างใน manpage แสดงให้เห็นถึงการทำงานของ cracklib ติดตั้ง libpam_cracklib เพื่อให้ใช้งานได้

นอกจากนี้เมื่อคุณแก้ไขสิ่งที่เปลี่ยนแปลงแล้วการเปลี่ยนแปลงจะเหมือนกันในไฟล์อื่น ๆ เพื่อให้คุณสามารถบังคับใช้การตรวจสอบรหัสผ่านเดียวกัน (หรือที่แตกต่างกัน) สำหรับ SSH และแอปพลิเคชันอื่น ๆ


ตามman pam_unixที่ MINLENGTH รหัสผ่านเริ่มต้นคือ 6 minlenตัวอักษรหากคุณค้นหา
Timo

มันใช้งานไม่ได้กับ Ubuntu 18.04 - แม้จะมีการตั้งค่านี้ฉันสามารถใส่รหัสผ่านใด ๆ ที่ฉันต้องการ (สั้น, palindrome, .. ) - ฉันแค่ต้องทำซ้ำรหัสผ่าน 4x :(
xhudik

เมื่อคุณพูดว่า "ไม่ทำงาน" จะไม่ชัดเจนว่าคุณหมายถึงอะไร คุณหมายถึงว่ามันใช้งานได้ แต่การทำซ้ำรหัสผ่านสั้น ๆ 4 ครั้งคือ "บายพาส" บางชนิด - ถ้าเป็นเช่นนั้นคุณผิดด้วยความเคารพนั่นยังเป็นรหัสผ่านที่ดี มิฉะนั้นคุณช่วยอธิบายได้ไหม?
Julian Knight

1

ค่ารหัสผ่านถูกควบคุมในไฟล์

/etc/pam.d/common-password

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีแก้ไขไฟล์โปรดดูที่pam_unix manpage


1
pam_unix คุณได้ระบุไว้ (5) หน้าที่ถูกต้องคือ pam_unix (8) linux.die.net/man/8/pam_unix อันที่จริง manpage รุ่นออนไลน์ด้วยเหตุผลบางอย่างดูเหมือนจะไม่แสดงรายการส่วนที่สำคัญในพารามิเตอร์ "คลุมเครือ" - ที่ฉันได้รวมไว้ในคำตอบของฉัน ถ้าคุณทำman pam_unixคุณจะสามารถเห็นมัน
Julian Knight

1
@JulianKnight ขอบคุณสำหรับความคิดเห็น ฉันแก้ไขลิงก์ :)
มิทช์

1

โมดูล PAM ที่ติดตั้งล่วงหน้าช่วยให้คุณสามารถตั้งค่าข้อกำหนดพื้นฐานภายใต้ความซับซ้อน มีโมดูลที่ดีซึ่งเป็นตัวต่อของโมดูล pam_cracklib คือ - pam_pwquality เพื่อที่จะติดตั้งมันพิมพ์ต่อไปนี้

apt-get install libpam-pwquality

จากนั้นทำความคุ้นเคยกับอันนี้

man pam_pwquality

โดยเฉพาะอย่างยิ่งกับส่วน "ตัวเลือก"

ตอนนี้คุณสามารถแก้ไขรหัสผ่านทั่วไปใน /etc/pam.d/

vi /etc/pam.d/common-password

ค้นหาบรรทัดที่มีคำสั่ง "รหัสผ่านที่จำเป็นต่อไปนี้ pam_pwquality.so" และหลัง pam_pwquality.so แนบตัวเลือกของคุณเช่นนี้

password        requisite         pam_pwquality.so minlen=16 ucredit=-4 retry=3

ซึ่งย่อมาจาก "ขนาดต่ำสุดของรหัสผ่านคือ 16 ตัวอักษรโดยอย่างน้อย 4 ตัวเป็นตัวพิมพ์ใหญ่ให้ผู้ใช้ป้อนรหัสผ่าน 3 ครั้ง

pam_pwquality ช่วยให้คุณสร้างความต้องการรหัสผ่านที่ซับซ้อนมากขึ้นร่วมกับโมดูลอื่น ๆ เช่น pam_pwhistory โชคดี

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