PAM - 비밀번호 로그인을 완전히 비활성화합니다.

PAM - 비밀번호 로그인을 완전히 비활성화합니다.

저는 전체 IT 인프라의 보안을 향상시키려고 로그인에 스마트 카드를 사용하기 시작했습니다. 개인 키와 x.509 인증서를 사용하여 PIV 스마트 카드를 성공적으로 구성하고 설정했습니다.pam_pkcs#11이렇게 하면 스마트 카드 로그인이 작동합니다. 문서에 명시된 대로 다음을 추가했습니다.

auth    [success=2 default=ignore]      pam_pkcs11.so

이 시점에서는 etc/pam.d/common-auth스마트 카드 로그인이 작동 중입니다. 그러나 이제 카드 리더와 스마트 카드를 제거하면 시스템은 비밀번호 로그인(이 경우 gnome)으로 돌아갑니다.

따라서 내 목표는 그래픽 인터페이스 유무에 관계없이 비밀번호 로그인을 완전히 비활성화하는 것입니다. 카드 리더기와 스마트 카드가 연결되어 있지 않으면 로그인할 수 없습니다.

계정의 비밀번호가 비활성 상태로 설정된다는 기사를 읽었지만 passwd -l $(whoami)제게는 맞지 않는 것 같습니다.

pam전체 시스템에 대해 비밀번호 로그인을 비활성화하여 이 작업을 수행할 수 있습니까 ?

그런데: 지금은 우분투 19.10을 사용하고 있습니다.

답변1

이 모듈은 pam_unix.so다음을 담당 하는 것으로 보입니다 standard Unix authentication.

PAM_UNIX(8)                           Linux-PAM Manual                           PAM_UNIX(8)

NAME
       pam_unix - Module for traditional password authentication

SYNOPSIS
       pam_unix.so [...]

DESCRIPTION
       This is the standard Unix authentication module. It uses standard calls from the
       system's libraries to retrieve and set account information as well as authentication.
       Usually this is obtained from the /etc/passwd and the /etc/shadow file as well if
       shadow is enabled.

따라서 비밀번호 기반 인증을 완전히 비활성화하려면 디렉토리 pam_unix.so에 포함된 모든 줄을 주석 처리하는 /etc/pam.d것으로 충분하다고 생각합니다.

답변2

때로는 자동 로그인, 쉘 스크립팅을 위해 사용자에 대해 비밀번호 없는 로그인을 설정해야 비밀번호를 제공할 필요가 없습니다. 이는 다음을 사용하여 달성할 수 있습니다.비밀번호명령하다-디할당된 비밀번호를 제거하는 옵션.

예:

비밀번호 -d 사용자 이름

이렇게 변경한 후에는 /etc/shadow 필드의 비밀번호 필드가 빈 상태로 변경되므로 비밀번호 없이 어떤 컴퓨터에서든 로컬 컴퓨터에 로그인할 수 있습니다. 업데이트: 일부 사용자는 이것이 로컬 로그인에서만 작동하고 원격 로그인에서는 작동하지 않는다고 지적했습니다.

답변3

PAM을 비활성화하려고 할 때 발생하는 문제에 대한 해결 방법은 다음과 같습니다.

나는 내 컴퓨터의 유일한 사용자이므로 PAM을 좋아하지 않지만 PAM을 피하려면 다른 곳에 설명된 비활성화 명령("Skip Authentication")을 사용하십시오. 일반적으로 여기에 설명된 작업을 수행하려면 루트 로그인이 필요합니다.

다음은 Ubuntu v.20.04.3 LTS를 사용하여 테스트되었습니다. 이는 시스템에 크게 의존하지 않으며 아래 설명된 프로세스는 모든 최신 Ubuntu 운영 체제에서 작동합니다.

불행히도 현재 버전의 Ubuntu는 특정 PAM 파일 없이는 실행되지 않습니다. 이러한 파일이 제거되거나 비활성화되면 Ubuntu는 부팅되지 않으며 Ubuntu "복구 모드"에서 재부팅을 시도하는 것도 작동하지 않습니다. Ubuntu가 PAM에 전적으로 의존하도록 설계된 이유를 모르겠습니다. 일종의 설계 오류인 것 같습니다.

어쨌든, 이 기사에서는 Ubuntu 운영 체제를 다시 설치하지 않고 치명적인 PAM 오류를 복구하는 방법을 설명합니다.

예선

먼저 Ubuntu 재설치 DVD를 만들어야 합니다. 이는 일반적으로 인터넷에서 무료로 다운로드할 수 있는 iso 파일입니다(다른 공급업체에서 명목상의 가격으로 판매할 수도 있음). K3b와 같은 일부 다운로드 가능한 응용 프로그램을 사용하여 부팅 불가능한 DVD를 수정하여 부팅 가능한 DVD를 생성하는 것도 가능합니다.

이 부팅 가능한 DVD를 만든 후에는 자체적으로 부팅되는지 테스트해야 합니다. 부팅한 후 Ubuntu를 설치해 보라는 메시지가 표시됩니다. 아무것도 변경하지 않으려면 컴퓨터를 종료하거나 종료하십시오.

둘째, 전체 Ubuntu 운영 체제를 정기적으로(예: 매주) 백업하는 습관을 기르도록 선택할 수도 있습니다. 그러다가 Ubuntu를 다시 설치해야 하는 경우에는 최근에 백업한 데이터도 설치할 수 있습니다.

운영 체제 오류 복구

복구의 핵심은 운영 체제가 해당 파일 없이 실행되고 있다는 사실을 알지 못한 채 운영 체제 파일을 삭제하지 않는 것입니다. 운영 체제 파일(예: PAM 파일) 제거를 고려할 때는 항상 설치된 파일을 그대로 두고 먼저 이름을 변경하여 비활성화한 다음 재부팅하고 효과를 테스트해야 합니다.

내가 선호하는 이름 바꾸기는 (file).exe를 (file).exe_JMW_WAS로 변경하는 것입니다. (whatever).exe_JMW_WAS라는 파일은 Ubuntu(또는 Windows) 실행 파일이 아니기 때문입니다. 이름 바꾸기 오류는 모든 *_JMW_WAS에 대해 찾기를 수행하여 쉽게 수정할 수 있습니다(저는 "find / -name *_JMW_WAS -print"를 사용합니다).

설치된 여러 PAM 파일을 비활성화하면 재부팅이 방지됩니다. 그러나 이러한 실수를 수정하는 방법은 무엇입니까? 특정 PAM 파일을 비활성화하거나 삭제한 후 정상적인 재시작이 중단되고 복구 모드를 다시 시작해도 치명적인 오류 메시지가 인쇄되고 계속되지 않습니다.

첫째, PAM 파일을 삭제하지 말고, 실행을 방지하려면 이름을 바꾸십시오.

둘째: 재해가 발생하면 Ubuntu 복구 모드를 사용해 보세요. 복구 모드가 작동하지 않는 경우 재설치 DVD를 사용하여 재부팅하십시오.

잠시 후 이 DVD에서는 (a) Ubuntu를 사용해 볼 것인지, (b) Ubuntu를 설치할 것인지 선택할 수 있는 옵션을 제공합니다. 평가판 옵션을 선택하세요.

잠시 후 실행할 몇 가지 수동 명령이 표시되며 파일 명령을 선택합니다.

파일 표시에는 설치된 운영 체제를 나열하는 최종 "기타 위치" 옵션이 있습니다. 이 목록에는 부팅할 수 없는 Ubuntu 운영 체제와 설치된 Windows가 포함됩니다.

루트로 로그인하고 사용 가능한 터미널 명령을 사용하면 이제 부팅할 수 없는 Ubuntu OS에서 파일을 선택하고 이전에 실수로 수정하거나 비활성화한 PAM 또는 기타 파일이 포함된 /etc 또는 /lib 디렉터리로 이동할 수 있습니다. 물론 이름이 바뀌었지만 삭제되지는 않았습니다.

해당 파일의 이름을 다시 원래 실행 파일 이름으로 바꾸세요. 짜잔! 이제 Ubuntu 운영 체제가 정상적으로 다시 시작됩니다!

관련 정보