Tạo chính sách mật khẩu trong Linux

Xin chào lần nữa! Các lớp học trong nhóm khóa học mới sẽ bắt đầu vào ngày mai "Quản trị viên Linux", về vấn đề này, chúng tôi đang xuất bản một bài viết hữu ích về chủ đề này.

Tạo chính sách mật khẩu trong Linux

Trong hướng dẫn trước, chúng tôi đã hướng dẫn bạn cách sử dụng pam_cracklibđể làm cho mật khẩu trên hệ thống phức tạp hơn Mũ đỏ 6 hoặc CentOS. Trong Mũ Đỏ 7 pam_pwquality thay thế cracklib như pam mô-đun mặc định để kiểm tra mật khẩu. mô-đun pam_pwquality cũng được hỗ trợ trên Ubuntu và CentOS, cũng như nhiều hệ điều hành khác. Mô-đun này giúp bạn dễ dàng tạo các chính sách mật khẩu để đảm bảo rằng người dùng chấp nhận các tiêu chuẩn về độ mạnh mật khẩu của bạn.

Trong một thời gian dài, cách tiếp cận phổ biến đối với mật khẩu là buộc người dùng sử dụng chữ hoa, chữ thường, số hoặc các ký hiệu khác. Những quy tắc cơ bản về độ phức tạp của mật khẩu này đã được quảng bá rộng rãi trong mười năm qua. Đã có rất nhiều cuộc thảo luận về việc liệu đây có phải là cách làm tốt hay không. Lập luận chính chống lại việc thiết lập các điều kiện phức tạp như vậy là người dùng viết mật khẩu ra các mảnh giấy và lưu trữ chúng một cách không an toàn.

Một chính sách khác gần đây đã được đặt ra nghi vấn buộc người dùng phải thay đổi mật khẩu x ngày một lần. Đã có một số nghiên cứu chỉ ra rằng điều này cũng gây bất lợi cho sự an toàn.

Nhiều bài viết đã được viết về chủ đề của các cuộc thảo luận này, chứng minh quan điểm này hay quan điểm khác. Nhưng đây không phải là những gì chúng ta sẽ thảo luận trong bài viết này. Bài viết này sẽ nói về cách đặt chính xác độ phức tạp của mật khẩu thay vì quản lý chính sách bảo mật.

Cài đặt chính sách mật khẩu

Dưới đây bạn sẽ thấy các tùy chọn chính sách mật khẩu và mô tả ngắn gọn về từng tùy chọn. Nhiều trong số chúng giống với các tham số trong mô-đun cracklib. Cách tiếp cận này giúp việc chuyển các chính sách của bạn từ hệ thống cũ trở nên dễ dàng hơn.

  • Tôi xin lỗi – Số ký tự trong mật khẩu mới KHÔNG nên có trong mật khẩu cũ của bạn. (Mặc định 5)
  • minlen – Độ dài mật khẩu tối thiểu. (Mặc định 9)
  • ucredit – Số tín chỉ tối đa cho việc sử dụng ký tự viết hoa (nếu tham số > 0) hoặc số ký tự viết hoa tối thiểu được yêu cầu (nếu tham số < 0). Mặc định là 1.
  • tín dụng — Số lượng tín chỉ tối đa cho việc sử dụng ký tự chữ thường (nếu tham số > 0) hoặc số lượng ký tự chữ thường tối thiểu được yêu cầu (nếu tham số < 0). Mặc định là 1.
  • tín dụng — Số tín chỉ tối đa để sử dụng chữ số (nếu tham số > 0) hoặc số chữ số tối thiểu được yêu cầu (nếu tham số < 0). Mặc định là 1.
  • anh ấy tin — Số lượng tín chỉ tối đa để sử dụng các ký hiệu khác (nếu tham số > 0) hoặc số lượng ký hiệu khác tối thiểu được yêu cầu (nếu tham số < 0). Mặc định là 1.
  • lớp tối thiểu – Xác định số lớp cần thiết. Các lớp bao gồm các tham số trên (ký tự chữ hoa, ký tự chữ thường, số, ký tự khác). Mặc định là 0.
  • lặp lại tối đa – Số lần tối đa một ký tự có thể được lặp lại trong mật khẩu. Mặc định là 0.
  • maxclassrepeat — Số lượng ký tự liên tiếp tối đa trong một lớp. Mặc định là 0.
  • kiểm tra địa lý – Kiểm tra xem mật khẩu có chứa bất kỳ từ nào trong chuỗi GECOS của người dùng hay không. (Thông tin người dùng, ví dụ: tên thật, vị trí, v.v.) Mặc định là 0 (tắt).
  • đường dẫn chính tả – Hãy vào từ điển cracklib.
  • từ xấu – Các từ bị cấm sử dụng dấu cách trong mật khẩu (Tên công ty, từ “mật khẩu”, v.v.).

Nếu khái niệm cho vay nghe có vẻ xa lạ cũng không sao, đó là chuyện bình thường. Chúng ta sẽ nói nhiều hơn về điều này trong các phần sau.

Cấu hình chính sách mật khẩu

Trước khi bắt đầu chỉnh sửa các tệp cấu hình, bạn nên viết trước chính sách mật khẩu cơ bản. Ví dụ: chúng tôi sẽ sử dụng các quy tắc độ khó sau:

  • Mật khẩu phải có độ dài tối thiểu 15 ký tự.
  • Cùng một ký tự không được lặp lại quá hai lần trong mật khẩu.
  • Các lớp ký tự có thể được lặp lại tối đa bốn lần trong một mật khẩu.
  • Mật khẩu phải chứa các ký tự của mỗi lớp.
  • Mật khẩu mới phải có 5 ký tự mới so với mật khẩu cũ.
  • Kích hoạt tính năng kiểm tra GECOS.
  • Cấm các từ “password, pass, word, putorius”

Bây giờ chúng ta đã đưa ra chính sách, chúng ta có thể chỉnh sửa tệp /etc/security/pwquality.confđể tăng yêu cầu độ phức tạp của mật khẩu. Dưới đây là một tập tin ví dụ với các ý kiến ​​​​để hiểu rõ hơn.

# Make sure 5 characters in new password are new compared to old password
difok = 5
# Set the minimum length acceptable for new passwords
minlen = 15
# Require at least 2 digits
dcredit = -2
# Require at least 2 upper case letters
ucredit = -2
# Require at least 2 lower case letters
lcredit = -2
# Require at least 2 special characters (non-alphanumeric)
ocredit = -2
# Require a character from every class (upper, lower, digit, other)
minclass = 4
# Only allow each character to be repeated twice, avoid things like LLL
maxrepeat = 2
# Only allow a class to be repeated 4 times
maxclassrepeat = 4
# Check user information (Real name, etc) to ensure it is not used in password
gecoscheck = 1
# Leave default dictionary path
dictpath =
# Forbid the following words in passwords
badwords = password pass word putorius

Như bạn có thể nhận thấy, một số tham số trong tệp của chúng tôi là dư thừa. Ví dụ, tham số minclass là dư thừa vì chúng ta đã sử dụng ít nhất hai ký tự trong lớp bằng cách sử dụng các trường [u,l,d,o]credit. Danh sách các từ không thể sử dụng của chúng tôi cũng dư thừa, vì chúng tôi đã cấm lặp lại bất kỳ lớp nào 4 lần (tất cả các từ trong danh sách của chúng tôi đều được viết bằng ký tự chữ thường). Tôi chỉ đưa vào các tùy chọn này để trình bày cách sử dụng chúng nhằm định cấu hình chính sách mật khẩu của bạn.
Khi đã tạo chính sách của mình, bạn có thể buộc người dùng thay đổi mật khẩu vào lần đăng nhập tiếp theo. hệ thống.

Một điều kỳ lạ khác mà bạn có thể nhận thấy là các trường [u,l,d,o]credit chứa số âm. Điều này là do các số lớn hơn hoặc bằng 0 sẽ ghi nhận việc sử dụng ký tự trong mật khẩu của bạn. Nếu trường chứa số âm, điều đó có nghĩa là cần phải có một số lượng nhất định.

Các khoản vay là gì?

Tôi gọi chúng là các khoản vay vì điều đó truyền tải mục đích của chúng một cách chính xác nhất có thể. Nếu giá trị tham số lớn hơn 0, bạn thêm một số "tín dụng ký tự" bằng "x" vào độ dài mật khẩu. Ví dụ: nếu tất cả các tham số (u,l,d,o)credit được đặt thành 1 và độ dài mật khẩu bắt buộc là 6, khi đó bạn sẽ cần 6 ký tự để đáp ứng yêu cầu về độ dài vì mỗi chữ hoa, chữ thường, chữ số hoặc ký tự khác sẽ cung cấp cho bạn một tín dụng.

Nếu bạn cài đặt dcredit ở mức 2, về mặt lý thuyết bạn có thể sử dụng mật khẩu dài 9 ký tự và nhận được 2 tín dụng ký tự cho các số và khi đó độ dài mật khẩu có thể đã là 10.

Nhìn vào ví dụ này. Tôi đặt độ dài mật khẩu thành 13, đặt dcredit thành 2 và mọi thứ khác thành 0.

$ pwscore
 Thisistwelve
 Password quality check failed:
  The password is shorter than 13 characters

$ pwscore
 Th1sistwelve
 18

Lần kiểm tra đầu tiên của tôi không thành công vì mật khẩu dài dưới 13 ký tự. Lần tiếp theo, tôi đổi chữ “I” thành số “1” và nhận được hai điểm cho các số đó, khiến mật khẩu bằng 13.

Kiểm tra mật khẩu

Gói libpwquality cung cấp các chức năng được mô tả trong bài viết. Nó cũng đi kèm với một chương trình pwscore, được thiết kế để kiểm tra độ phức tạp của mật khẩu. Chúng tôi đã sử dụng nó ở trên để kiểm tra các khoản vay.
Tính thiết thực pwscore đọc từ tiêu chuẩn. Chỉ cần chạy tiện ích và ghi mật khẩu, nó sẽ hiển thị lỗi hoặc giá trị từ 0 đến 100.

Điểm chất lượng mật khẩu có liên quan đến tham số minlen trong tập tin cấu hình. Nói chung, điểm dưới 50 được coi là “mật khẩu bình thường” và điểm cao hơn được coi là “mật khẩu mạnh”. Bất kỳ mật khẩu nào vượt qua kiểm tra chất lượng (đặc biệt là xác minh bắt buộc cracklib) phải chịu được các cuộc tấn công từ điển và mật khẩu có điểm trên 50 với cài đặt minlen thậm chí theo mặc định brute force các cuộc tấn công.

Kết luận

điều chỉnh pwquality – thật dễ dàng và đơn giản so với sự bất tiện khi sử dụng cracklib với chỉnh sửa tập tin trực tiếp pam. Trong hướng dẫn này, chúng tôi đã đề cập đến mọi thứ bạn cần khi thiết lập chính sách mật khẩu trên các hệ thống Red Hat 7, CentOS 7 và thậm chí cả Ubuntu. Chúng tôi cũng đã nói về khái niệm khoản vay, khái niệm này hiếm khi được viết chi tiết, vì vậy chủ đề này thường không rõ ràng đối với những người chưa từng gặp phải trước đây.

Nguồn:

trang man pwquality
trang man pam_pwquality
trang man pwscore

Liên kết hữu ích:

Chọn mật khẩu an toàn – Bruce Schneier
Lorrie Faith Cranor thảo luận về việc nghiên cứu mật khẩu của cô ấy tại CMU
Phim hoạt hình xkcd khét tiếng trên Entropy

Nguồn: www.habr.com

Thêm một lời nhận xét