Apache2: PAM Authentication 리눅스 계정으로 아파치 인증하기
[Q] Apache2 를 이용할 때, 아파치가
설치된 서버의 계정 정보를 이용한 로그인을 제공하려면 어떻게 해야 할까요? 예를 들어, 새로운 전산 프로젝트를 시작하기 위해
Trac 을 개설하고, Trac 을 설치한 서버의 사용자 계정 정보를 이용하여 로그인을 연동시키려면 어떻게 해야 할까요?
[A] PAM Authentication 을 이용하면 됩니다.
Debian / Ubuntu 배포판에서는 간단히 libapache2-mod-auth-pam 모듈을 설치합니다. 그리고 나서
사용자 인증을 필요로 하는 사이트 설정 (httpd.conf 나 각 사이트의 configuration) 의 해당 섹션에 이와
관련된 설정을 하면 됩니다.
우선 AutyType 을 Basic 으로 하는 경우 (가장 간단한 경우) 부터 보겠습니다.
AuthPAM_Enabled on
AuthType Basic
AuthBasicAuthorative off
AuthName “사용자에게 아이디 / 비번을 물어볼 때 표시될 문자열. 따옴표 포함해서 적으면 장땡임.”
Require group “로그인을 허용할 그룹들. 빈칸으로 구분. 따옴표는 적지 마세요.”
Require valid-user # 이건 뭐하는건지 모르겠음
그리고 이 설정을 제대로 이용하기 위해서는 /etc/shadow 파일을 Apache2 가 읽을 수 있어야 합니다. 따라서 이에 대한 설정을 적절한 곳에 해 주도록 합시다. httpd.conf 에 하면 되겠지요? 저같은 경우에는 /etc/apache2/mods-available/auth_pam.load 에 직접 적용하였습니다만 어디까지나 귀차니즘 때문이었습니다.
Group shadow
사실 저 자리에 적어주는 shadow 는 /etc/shadow 파일을 소유하고 있는 그룹명이면 됩니다. 이렇게 할 때 무언가 보안 헛점이 생길 가능성을 원천 봉쇄하기 위해 혹시라도 /etc/shadow 파일에 g+w 가 설정되어 있다면 이를 끄도록 합시다.
이상의 설정을 잘 적용하면 PAM 을 이용한 Login 을 지원하게 할 수 있습니다.
참고
http://chaeyk.springnote.com/pages/2225906
http://trac.edgewall.org/wiki/TracCgi#AddingAuthentication
http://www.debianhelp.co.uk/apachepam.htm
사실 이런 문서들을 보는 것보다는 Apache2 자체에 대한 문서를 찾아보는 게 더 좋겠지만 말입니다. =)