pam의 비밀번호 요구 사항을 비활성화하거나 수정하려면 어떻게합니까?


9

Fedora 19를 사용하고 있습니다. 기본적으로 "password"와 같은 잘못된 암호를 비활성화하기 위해 pam으로 설정되어 있습니다. 이거 좋다 이 기본값을 변경하려고하면 화려합니다. 인터넷이나 인터넷에 연결되지 않은 내부 물건을 테스트하기위한 상자입니다. 암호가 틀리면 테스트 프로세스가 쉬워집니다. 또는 도대체 어떻게 암호 요구 사항을 변경합니까?

시스템 인증

man pam_cracklib다른 비밀번호 요구 사항을 설정하는 좋은 예가 있습니다. 그래서 나는 /etc/pam.d/system-auth다음과 같은 줄을 보게됩니다.

#%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

* headdesk *. 내 경험상 이와 같은 경고는 패키지 관리자가 실행되거나 무작위로 실행될 때마다 변경 사항이 지워진다는 것을 의미합니다.

authconfig

authconfig다음 단계는 ... "authconfig"라는 이름의 모든 파일을 찾습니다. /etc/sysconfig/authconfig유망 해 보인다. 그리고 변덕스러운 편집 내용을 파괴하는 것에 대한 경고는 없습니다. 이 줄을 찾아서 USEPWQUALITY=yes바꿉니다. 이제 나는 달린다.

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

wtf. man authconfig조금 더 자세히 읽어 봅시다 . 오! 해당 파일 을 authconfig에서 읽지 않은 것 같습니다 . 변경되었습니다 . 그렇다면 ... authconfig를 어떻게 구성합니까? 매뉴얼에서는을 system-config-authentication설치하고 pam_pwquality를 비활성화하는 확인란과 유사한 것을 제공하지 않습니다. 매뉴얼에서 다음 제안은 명령 행 옵션입니다. 큰! 나는 커맨드 라인 도구를 좋아한다. 문서화 된 명령 행 옵션 중 어느 것도 pam_pwquality를 비활성화하지 않습니다.

pwquality.conf

아론의 대답 덕분에, 나는 페도라 전에 몇 년이하기로 결정 사실을 알게 구성 암호 품질 요구 사항에 장소. 불행히도 파일 및에 문서화 된 바와 같이 (1) 사전 검사를 비활성화하는 방법이 없으며 (2) 허용되는 암호 길이를 6 미만으로 설정할 수 없습니다./etc/security/pwquality.conf man 5 pwquality.conf


내부에 Pam이 설치되었거나 활성화 된 이유는 무엇입니까?
Ramhound

1
페도라가 pam에 감염되어 있기 때문에 @Ramhound. yum remove pam종속 패키지를 모두 스크롤하는 데 걸리는 시간까지 모든 것을 제거 합니다. m 및 체계 포함. 또한 pam을 비활성화하면 모래 종이를 사용하고 싶을 때 망치처럼 느껴집니다.
djeikyb

답변:


4

의 소스 코드를 대충 살펴 후 /usr/sbin/authconfig/usr/share/authconfig/authinfo.py:

  • 매뉴얼 페이지가 불완전하고 스크립트가 허용하는 전체 옵션 목록이 authconfig --help
  • pwquality 자체를 제외한 모든 것을 명령 줄에서 무시할 수 있습니다 ( /etc/security/pwquality.conf비밀번호 최소 길이와 같은 설정 포함) . IMHO, 이것은 버그 이며보고해야합니다.
  • authinfo.py2489 및 2156 행 에서 :

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

    먼저 readSysconfig읽습니다 /etc/sysconfig/authconfig. 그런 다음 거기에 넣은 readPAM내용이 /etc/pam.d/*(특히 password_auth*system_auth*) 내용으로 덮어 씁니다 .

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

TL; DR : 무시되지 않거나 옵션이 아닌 옵션의 경우 자동 생성 태그가 지정된 파일을 포함 하여 현재 구성에서 설정을 가져옵니다 . 작동하게하려면 다음 /etc/sysconfig/authconfig 같이 표시된 행을 편집 하고 제거하십시오.grep -E pwq\|crack /etc/pam.d/*


편집 : 위의 조언이 여전히 작동하지 않는 두 번째 버그가 있습니다 : 라인 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)

품질 관리의 두 가지 구현 중 하나를 선택해야합니다. 그렇지 않으면 하나가 선택됩니다! 첫 번째 버그와 결합하면 비활성화 할 수 없습니다.


2 년 후 페도라 26 알파에서 상황은 동일하게
유지됨

2

system-auth파일 을 수동으로 제어 할 수 있습니다. 새 파일을 작성하고 (복사하여 시작할 수 있음 system-auth-ac) system-auth새 파일을 가리 키 도록 symlink를 변경 하십시오.

authconfig는 더 이상 symlink 또는 가리키는 파일을 건드리지 않으므로 PAM 구성의이 부분을 업데이트해야합니다. 그러나 authconfig는 여전히 system-auth-ac파일을 업데이트 하므로 필요할 경우 계속해서 참조로 사용할 수 있습니다. 약간의 영리함을 가지고, 당신은 include그것을 당신의 로컬 카피에 넣을 수도 있습니다 .

같은 다른 심볼릭 링크도 확인해야합니다 password-auth. 그들에게 동일한 치료를 제공해야 할 수도 있습니다.


로부터 authconfig(8)맨 아래 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. 

따라서 system-auth파일 인 경우 authconfig는로 링크되도록 변경합니다 system-auth-ac. 그러나 system-auth심볼릭 링크 인 경우 authconfig는이를 그대로 둡니다.


1

그것은 통해 구성 가능한 것으로 보인다 /etc/security/pwquality.conf

출처 : https://fedoraproject.org/wiki/Features/PasswordQualityChecking


고마워, 나는 아직 그것을 보지 못했다. 불행히도 pwquality.conf사전 검사 비활성화 또는 암호 길이 검사 비활성화는 지원하지 않습니다.
djeikyb

이 게시물의 제안이 효과가 있을까요? serverfault.com/questions/444258/…
Aaron Okano

즉, 시스템 인증에서 모듈을 제거하고 USEPWQUALITY = no를 설정 한 다음 authconfig --update를 실행하십시오.
Aaron Okano

불행히도 (질문에서 언급했듯이) 실행 authconfig --updateall하면 파일이 재설정됩니다. 나는 내가 관찰하고있는 행동과 직접 모순되기 때문에 그 대답에 철저히 당황하고 있습니다.
djeikyb

또한 authconfig를 실행하기 전에 설정 USEPWQUALITY=no및 / 또는 USECRACKLIB=no문제를 해결하지 않습니다.
djeikyb

1

여전히 명령 행에서 변경할 수 있습니다. 경고 메시지가 표시되지만 암호가 너무 짧고 복잡도 규칙을 충족하지 않는 암호를 설정할 수 있습니다.


이것은 내가 Fedora 19에서 경험 한 행동이 아닙니다.
djeikyb

@djeikyb passwd <username>는 루트로 명령을 실행합니다 ( 루트 터미널 과 함께 sudo passwd <username>또는 su -루트 터미널 후
Nick

@Nick 그것은 pam의 암호 요구 사항을 비활성화하거나 수정하지 않습니다.
djeikyb

@djeikyb 요구 사항을 변경하지는 않지만 무시합니다. passwd루트로 실행 하면 암호 정책이 무시됩니다. 한 번만 설정하고 잊어 버린 경우 작동합니다. 각 사용자가 자유롭게 비밀번호를 변경할 수 있도록 설정하려는 경우 다른 솔루션이 필요합니다.
Nick

@Nick 알겠습니다. 예, 루트는 passwdpam으로 fd없이 사용할 수 있습니다 . 실제 질문과 거의 관련이 없지만이 "답변"의 주장은 사실이됩니다.
djeikyb

0

방금 관련 검색을 바탕으로이 질문을 찾았으며 답이 있다고 생각합니다.

Fedora는 authconfig 생성 파일에 대한 심볼릭 링크를 만듭니다. 즉. system-auth에 링크합니다 system-auth-ac. system-auth자체 파일 을 만드는 경우 이론적으로 향후 변경 사항 auth-config은 계속 업데이트 system-auth-ac되지만 수정 된 파일은 변경되지 않습니다.

실제로 매우 우아하지만 *-ac파일이 무엇을했는지 궁금 할 때만 발견했습니다 .


작동하지 않습니다. 다음 실행 authconfig(예 authconfig --updateall:)은 파일을 삭제하고 -ac파일로 다시 심볼릭 링크 합니다.
docwhat

그게 뭐야? 이제 관리되는 구성에 쉽게 폴백하여 로컬 변경 사항을 지속시키지 않으면 왜 그렇게하는지 이해가되지 않습니다. 오 잘
사이클론

그래, 나도 혼란스러워 ... 문서는 그것에 대해 이야기하지 않으며 소스 코드는 모든 사람들을 위해 모든 것을하려고 노력하는 방법을 설명하는 긴 의견을 가지고 있습니다 ... 매우 성가시다.
docwhat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.