이 장에서는 Linux-PAM을 보안감각을 갖고 사용하는 좋은 사례에 대해 논의할 것이다. 내용이 부족한데... 제안은 환영한다!
Linux-PAM은 시스템의 보안을 변경시키는 심각한 잠재력을 갖고 있다. 당신은 아무런 보안도 하지 않게 할 수도 있고, 완벽보안 (아무도 접근할 수 없게)을 할 수도 있다. 보통은 Linux-PAM이 후자의 경우 에러를 낸다. 설정에러는 시스템을 부분적으로 또는 완전히 접근을 막아버릴 수 있다.
가장 Linux-PAM을 설정할 때 부닥치게 되는 가장 기가 막힌 상황은 설정파일(/etc/pam.d/* 나 /etc/pam.conf)을 지우는 것이다. 이렇게 되면 당신의 시스템은 당신자신도 쓸 수 없게 완전히 잠겨버린다!
이를 복구하기 위한 최선의 방법은 시스템을 재부팅한 후 싱글 유저 모드로 들어가서 문제를 고치는 것이다. 다음은 이 문제에 대해 David Wood가 답한 email에서 귀중한 내용을 인용한 것이다.
> 내가 도대체 지금 무엇을 한겁니까? 알았습니다. 진정하세요. 당신이 우선 PAM을 사용하는 사용자의 절반 가량에게 이 일이 생긴다는 것을 아셔야 할 필요가 있습니다. 여기에서도 한번도아니고 두번도 아니고 세번이나 일어났습니다. 결국, 매번 해결책은 항상 같았습니다. 첫째로, 당신이 LILO를 딜레이를 갖도록 설정했기를 바랍니다. 가능하다면, 리부팅을 하고 shift나 tab을 친 후 아래와 같이 치십시오: LILO boot: linux single ('linux'를 '당신이 쓰는 linux 이미지 이름'으로 바꾸세요). 이것은 당신이 로그인 없이 시스템에 들어가게 해줄 것입니다. 콘솔에서 linux머신에 침입하는 것이 얼마나 쉬운지 궁금해하지 않았습니까? 이제 당신도 압니다. 이것을 할 수 없다면, bootkernel 플로피와 slackware의 rescue.gz같은 root디스크를 구하십시오. (RedHat의 설치 디스크를 이 모드로도 사용가능합니다.) 두 경우 모두, root 프롬프트를 다시 볼 수 있을겁니다. 두번째로, 당신이 pam 설치를 완전히 망가뜨리지 않았다고 가정하겠습니다. 즉, 설정파일만 없앴것으로 알겠습니다. 여기에 어떻게 당신의 설정파일을 다시 멋있게 만드는지 보여드리겠습니다: cd /etc mv pam.conf pam.conf.orig mv pam.d pam.d.orig mkdir pam.d cd pam.d 그리고 vi를 사용해서 "other"라는 파일을 이 디렉토리에 만드십시오. 이 파일에 아래의 네줄을 포함하도록 하십시오: auth required pam_unix_auth.so account required pam_unix_acct.so password required pam_unix_passwd.so session required pam_unix_session.so 이제 당신은 당신이 사용하던대로 동작하는 가장 단순한 PAM설정 파일을 갖게 되었습니다. 모든게 마법처럼 다시 동작할 것입니다. ALT-F2를 누르고, 다른 버츄얼 콘솔에서 로그인 해보십시오. 만일 제대로 되지 않는다면, 당신은 더 큰 문제를 가지고 있거나, 설정파일에 오자가 있을 겁니다. 이 시스템의 이상한일이 설정파일에 오타가 있는 것이라면 콘솔에서는 에러 메시지를 볼수 없고, log파일에서 볼 수 있습니다. 한번 보세요. ('tail /var/log/messages'라고 해보세요) 이제부터 예전처럼 돌아가서 실제 설정파일을 가져옵시다. 망가뜨려도 상관없는 시스템에서 시험을 거친후에 가져오는 것이 좋겠지요. :/ 약간의 지시사항(RedHat에서는 모두 잘 될겁니다.): 최신 pam, pamconfig, pwdb를 redhat의 current 디렉토리에서 인스톨하세요. rpm -Uvh [아마 --force도] pam-* pamconfig-* pwdb-* 그리고, 최신의 libc, util-linux, wuftp, NetKit을 설치/재설치했는지 확인하세요. xlock같은 X 응용프로그램에 영향을 주는 새 버젼의 설치를 시도하다가 당하는 퇴짜는 아직까지는 없었습니다. |
약하게 디폴트(OTHER)설정을 두는 것은 좋지 않다. PAM을 지원하는 응용프로그램들에 대해 이 디폴트 설정이 적용되고 만약 이 설정이 약하다면, 시스템이 공격받기 쉽다.
여기에 'other'설정파일에 대한 예가 있다. pam_deny 모듈은 항상 접근을 불허하고 pam_warn 모듈은 syslog 메시지를 auth.notice에게 보낼 것이다:
# # The PAM configuration file for the `other' service # auth required pam_deny.so auth required pam_warn.so account required pam_deny.so account required pam_warn.so password required pam_deny.so password required pam_warn.so session required pam_deny.so session required pam_warn.so |