Làm cách nào để vô hiệu hóa hoặc sửa đổi các yêu cầu mật khẩu của pam?


9

Tôi đang sử dụng Fedora 19. Theo mặc định, nó được thiết lập với pam để vô hiệu hóa mật khẩu xấu, như "mật khẩu". Điều này là tốt Cố gắng thay đổi mặc định này là tức giận. Đây là một hộp để kiểm tra nội dung bên trong, không được kết nối với internet, cũng không phải bất kỳ máy nào. Mật khẩu xấu tạo điều kiện cho quá trình thử nghiệm. Ngoài ra, làm thế quái nào bạn thay đổi yêu cầu mật khẩu cả ??

hệ thống-auth

man pam_cracklibcó một số ví dụ tuyệt vời về việc thiết lập các yêu cầu mật khẩu khác nhau. Vì vậy, tôi mở ra /etc/pam.d/system-auth, đó là nơi bạn thấy các dòng như:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
password    requisite     pam_pwquality.so try_first_pass retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

* mũ *. Theo kinh nghiệm của tôi, các cảnh báo như thế này có nghĩa là các thay đổi của bạn sẽ bị xóa mỗi khi trình quản lý gói được chạy và / hoặc ngẫu nhiên.

tự động cấu hình

Vậy ... authconfiglà bước tiếp theo. Tôi tìm tất cả các tập tin có tên "authconfig". /etc/sysconfig/authconfigtrông đầy hứa hẹn. Và, không có cảnh báo nào ở đầu về việc phá hủy các chỉnh sửa của tôi một cách bất chợt. Tôi tìm thấy dòng này USEPWQUALITY=yesvà thay đổi nó. Bây giờ tôi chạy:

# authconfig --test
<snip>
pam_pwquality is enabled (try_first_pass retry=3 authtok_type=)
<snip>

wtf. Vì vậy, hãy đọc man authconfiggần hơn một chút. Oh! Có vẻ như tập tin đó không được đọc bởi authconfig, nó đã thay đổi . Vậy .... làm thế nào để bạn cấu hình authconfig? Hướng dẫn gợi ý system-config-authentication, mà tôi cài đặt và không cung cấp bất cứ thứ gì tương tự hộp kiểm để vô hiệu hóa pam_pwquality. Gợi ý tiếp theo từ hướng dẫn là các tùy chọn dòng lệnh. Tuyệt quá! Tôi yêu các công cụ dòng lệnh. Chỉ, không có tùy chọn dòng lệnh tài liệu nào vô hiệu hóa pam_pwquality.

pwquality.conf

Nhờ câu trả lời của Aaron, tôi biết được rằng một vài năm trước đây fedora quyết định làm /etc/security/pwquality.conf các nơi để cấu hình yêu cầu chất lượng mật khẩu. Thật không may, như được ghi lại trong tệp và trong man 5 pwquality.confđó, (1) không phải là cách để vô hiệu hóa việc kiểm tra từ điển và (2) không thể đặt độ dài mật khẩu được phép dưới sáu.


Nếu nó là nội bộ tại sao Pam được cài đặt hoặc thậm chí kích hoạt?
Ramhound

1
@Ramhound vì fedora bị nhiễm pam. yum remove pamloại bỏ, theo như tôi có thể biết theo thời gian cần thiết để cuộn tất cả các gói tùy thuộc, mọi thứ . Bao gồm yum và systemd. Ngoài ra, vô hiệu hóa pam cảm thấy giống như một chiếc búa tạ, khi tôi nghĩ rằng tôi chỉ muốn sử dụng giấy cát.
djeikyb

Câu trả lời:


4

Sau khi xem qua mã nguồn trong /usr/sbin/authconfig/usr/share/authconfig/authinfo.py:

  • Trang man không đầy đủ, danh sách đầy đủ các tùy chọn được chấp nhận bởi tập lệnh nằm trong authconfig --help
  • Mọi thứ có thể được ghi đè trên dòng lệnh (thậm chí /etc/security/pwquality.confcác cài đặt như độ dài tối thiểu của mật khẩu), ngoại trừ chính pwquality. IMHO, đây là một lỗi và cần được báo cáo.
  • Từ authinfo.pydòng 2489 và 2156:

    def read(self):
      self.readSysconfig()
      ...
      self.readPAM(ref)
      ...

    Lần readSysconfigđọc đầu tiên /etc/sysconfig/authconfig; sau đó những gì bạn đặt ở đó được ghi đè bằng readPAMnhững gì trong /etc/pam.d/*(đặc biệt password_auth*system_auth*):

      if module.startswith("pam_cracklib") or module.startswith("pam_pwquality"):
         self.setParam("enablePWQuality", True, ref)

TL; DR : đối với các tùy chọn không bị ghi đè (hoặc không thể), các cài đặt được lấy từ cấu hình hiện tại bao gồm các tệp được gắn thẻ tự động . Để làm cho nó hoạt động, chỉnh sửa /etc/sysconfig/authconfig loại bỏ các dòng được hiển thị bởigrep -E pwq\|crack /etc/pam.d/*


Chỉnh sửa : Có một lỗi thứ hai, khiến cho lời khuyên ở trên vẫn không hoạt động: dòng 2248:

    # Special handling for pam_pwquality and pam_passwdqc: there can be
    # only one.
    if self.enablePWQuality and self.enablePasswdQC:
            self.setParam("enablePasswdQC", False, ref)
    if not self.enablePWQuality and not self.enablePasswdQC:
            self.setParam("enablePWQuality", True, ref)

Bạn phải chọn một trong hai cách thực hiện kiểm soát chất lượng, hoặc một sẽ được chọn cho bạn! Kết hợp với lỗi đầu tiên, điều này làm cho nó không thể vô hiệu hóa.


2 năm sau trên fedora 26 alpha tình hình vẫn như cũ
eddygeek

2

Bạn có thể kiểm soát thủ công đối với system-authtập tin của bạn . Tạo một tệp mới (bạn có thể bắt đầu bằng cách sao chép system-auth-ac) và thay đổi system-authliên kết tượng trưng để trỏ đến tệp mới.

Điều này khiến bạn có trách nhiệm cập nhật phần này trong cấu hình PAM của mình, vì authconfig sẽ không còn chạm vào liên kết tượng trưng hoặc tệp mà nó trỏ đến. Tuy nhiên, authconfig vẫn sẽ cập nhật system-auth-actệp, vì vậy bạn có thể tiếp tục sử dụng tệp đó làm tài liệu tham khảo nếu bạn cần. Với một số thông minh, bạn thậm chí có thể đưa includenó vào bản sao cục bộ của mình, nhưng làm thế nào để làm điều đó nằm ngoài phạm vi của câu hỏi này.

Bạn cũng nên kiểm tra các liên kết tượng trưng khác, chẳng hạn như password-auth. Bạn có thể cần phải cung cấp cho họ điều trị tương tự.


Từ authconfig(8)trang, dưới Files:

/etc/pam.d/system-auth
    Common PAM configuration for system services which include it using
    the include directive. It is created as symlink and not relinked if
    it points to another file.

/etc/pam.d/system-auth-ac
    Contains the actual PAM configuration for system services and is the
    default target of the /etc/pam.d/system-auth symlink. If a local
    configuration of PAM is created (and symlinked from system-auth
    file) this file can be included there. 

Vì vậy, nếu system-authlà một tập tin, thì authconfig thay đổi nó để liên kết đến system-auth-ac. Nhưng nếu system-authlà một symlink, thì authconfig sẽ để nó một mình.


1

Nó có vẻ được cấu hình thông qua /etc/security/pwquality.conf

Nguồn: https://fedoraproject.org/wiki/Features/PasswordQualityChecking


Cảm ơn, tôi chưa thấy điều đó. Thật không may, pwquality.confkhông hỗ trợ vô hiệu hóa kiểm tra từ điển hoặc vô hiệu hóa kiểm tra độ dài mật khẩu.
djeikyb

Có lẽ gợi ý trong bài viết này sẽ làm việc? serverfault.com/questions/444258/ trộm
Aaron Okano

tức là xóa mô-đun khỏi hệ thống-auth và cũng đặt USEPWQUALITY = no và sau đó chạy authconfig --update.
Aaron Okano

Thật không may (như đã đề cập trong câu hỏi), chạy authconfig --updatealllại các tập tin. Tôi hoàn toàn bối rối trước câu trả lời đó, vì nó mâu thuẫn trực tiếp với hành vi tôi đang quan sát.
djeikyb

Tôi cũng cần lưu ý, chỉ cần thiết lập USEPWQUALITY=novà / hoặc USECRACKLIB=nokhông giải quyết vấn đề của mình, ngay cả trước khi chạy authconfig.
djeikyb

1

Bạn vẫn có thể thay đổi từ dòng lệnh. Bạn nhận được một cảnh báo, nhưng nó sẽ cho phép bạn đặt một mật khẩu quá ngắn, cũng như mật khẩu không đáp ứng các quy tắc phức tạp.


Đây hoàn toàn không phải là hành vi tôi trải nghiệm với Fedora 19.
djeikyb

@djeikyb chạy passwd <username>lệnh dưới quyền root (Hoặc có sudo passwd <username>hoặc sau su -với thiết bị đầu cuối gốc.
Nick

@Nick Điều đó không vô hiệu hóa hoặc sửa đổi các yêu cầu mật khẩu của pam.
djeikyb

@djeikyb Nó không thay đổi yêu cầu, nhưng nó bỏ qua nó. Khi bạn chạy passwdbằng root, nó sẽ bỏ qua các chính sách mật khẩu. Nếu bạn chỉ cần đặt nó một lần và quên nó, thì nó sẽ hoạt động. Nếu bạn đang cố gắng thiết lập nó để mỗi người dùng có thể tự do thay đổi mật khẩu của họ, thì bạn cần một giải pháp khác.
Nick

@Nick tôi thấy. Có, root có thể sử dụng passwdmà không cần fd với pam. Rất ít để làm với câu hỏi thực tế, nhưng nó làm cho tuyên bố trong "câu trả lời" này là đúng.
djeikyb

0

Tôi chỉ tìm thấy câu hỏi này dựa trên một tìm kiếm liên quan và tôi nghĩ rằng tôi có câu trả lời cho bạn.

Fedora tạo các liên kết tượng trưng đến các tệp được tạo authconfig. I E. system-authliên kết đến system-auth-ac. Nếu bạn tạo system-authtệp riêng của mình, về mặt lý thuyết, mọi thay đổi trong tương lai auth-configsẽ vẫn được cập nhật system-auth-acnhưng không thay đổi các tệp đã sửa đổi của bạn.

Nó thực sự khá thanh lịch, nhưng tôi chỉ phát hiện ra nó khi tự hỏi những gì các *-actập tin đã làm.


Điều này không hoạt động. Lần chạy tiếp theo authconfig(ví dụ authconfig --updateall) sẽ xóa tệp của bạn và liên kết nó trở lại -actệp.
docwhat

@TheDoctorCó gì vậy? Bây giờ nó không có ý nghĩa gì với tôi tại sao họ sẽ làm theo cách đó nếu nó không cho phép sự thay đổi cục bộ với sự dự phòng dễ dàng cho cấu hình được quản lý. Ồ tốt
Bão

Vâng, nó cũng làm tôi bối rối ... tài liệu không nói về nó và mã nguồn thậm chí còn có một bình luận dài giải thích cách họ cố gắng trở thành tất cả mọi thứ cho mọi người ... rất khó chịu.
docwhat
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.