5. 함께 묶기

이번 섹션에서는 지난 섹션에 다루었던 내용을 묶는 예제를 보여주겠다.

5.1. 아파치 + mod_auth_pam

앞의 예와 같이 PAM을 사용해서 웹서버의 사용자 인증을 할 때 사용하는 아파치 모듈인 mod_auth_pam을 설치 및 구성할 것이다. 이 예제의 목적에 맞게 여러분들은 아파치가 설치 되어 있어야 한다. 만약에 아파치가 설치되어 있지 않다면 판매자로 부터 설치패키지를 구할 수 있을 것이다.

5.2. 예

우리들의 목적은 PAM을 이용해서 사용자인증을 하기 위해family/ 디렉토리인 웹서버의 제한된 영역을 구성하는 것이다. 이 디렉토리는 개인적인 패밀리 정보를 담고 있고 사용자 그룹 패밀리의 멤버들에게 접근이 허용되어야 한다.

5.3. mod_auth_pam 설치하기

먼저 여러분들은 http://blank.pages.de/pam/mod_auth_pam/에서 mod_auth_pam을 다운받아야 한다. 다음 명령어들은 mod_auth_pam을 컴파일하는 것이다.(반드시 root 로 로그인해야 한다.):

   ~# tar xzf mod_auth_pam.tar.gz
   ~# cd mod_auth_pam-1.0a
   ~/mod_auth_pam-1.0a# make
   ~/mod_auth_pam-1.0a# make install
   

만약에 mod_auth_pam 모듈을 설치할 때 문제가 발생하면 여러분들은 반드시 아파치-dev 패키지 배포판을 설치해야 한다. 여러분들이 mod_auth_pam을 설치한 후에, 아파치를 재시작해야 한다. 아파치는 아래 명령어를 치면 재시작된다.(root 이어야 한다):

   ~# /etc/init.d/apache restart
   

5.4. PAM 구성하기

아파치 PAM구성파일은 /etc/pam/d/httpd에 저장되어 있다. 기본구성(mod_auth_pam을 설치하면 기본구성이 설치된다)은 안전하다. 그러나 기본구성파일은 많은 시스템에서 없는 모듈(pam_pwdb.so)을 사용한다.(게다가 그 파일을 처음부터 구성해보면 재미있을 것이다). 그래서 /etc/pam.d/httpd 파일을 삭제하고 새로 시작해보자.

5.4.1. PAM 구성방법 결정하기

PAM이 아파치의 인증요청을 처리하는 방법을 구성하려고 하면, PAM이 무엇을 체크해야 하는 지를 정확히 알 필요가 있다. 먼저 반드시 PAM은 사용자 패스워드는 표준유닉스 패스워드 데이터베이스에 사용자의 패스워드와 일치시킨다는 것을 확인해야 한다. 이말은 'auth'타입과 pam_unix.so 모듈와 같은 말이다. 모듈의 통제 타입이 'required'로 설정되어 있어야 하고, 그래서 정확한 패스워드 없이는 인증은 실패한다.아래는 /etc/pam.d/httpd의 첫 번째줄을 보여주고 있다:

     auth	required	pam_unix.so
     

두 번째 사용자 계정은 반드시 유효해야 한다.(즉 사용자의 패스워드는 사용기간 만료되지 않았다). 이것은 'account'의 타입이고 pam_unix.so 모듈에 의해서 제공된다. 다시 이 모듈의 통제 타입을 'required'로 설정하고, 이 줄을 추가한 후에 /etc/pam.d/httpd 구성은 아래와 같다:

     auth	required	pam_unix.so
     account	required	pam_unix.so
     

이것은 엄청 정교한 것은 아니다. 그러나 잘 된다. PAM서비스를 구성방법을 배울려면 이렇게 시작해야 한다.

5.5. 아파치 구성하기

PAM이 아파치 요청을 인증하도록 구성했기 때문에, family/ 디렉토리에 접근을 제한하는 PAM 인증을 적절히 사용하기 위해 아파치를 구성해야 한다. 그렇게 하기 위해서는 httpd.conf(/etc/apache//etc/httpd에 저장되어 있다)에 다음과 같은 줄을 추가해라:

    <Directory /var/www/family>
    AuthPAM_Enabled on
    AllowOverride None
    AuthName "Family Secrets"
    AuthType "basic"
    require group family
    </Directory>
    

여러분들은 /var/www//home/httpd/인 웹문서의 기본저장장소로 바꾸는 것이 필요하다. 저장장소가 어디든 family 디렉토리를 만들어야 한다. 설치을 시험하기 전에 여러분들이 지금 막 들어간 아파치 구성을 잠깐 설명하겠다. <Directory>명령은 이 디렉토리의 구성데이터를 포함하는 데 사용된다. 이 명령어 안에 PAM인증을 활성화한다("AuthPAM_enabledon"), 이 구성내용은 변경되는 것을 막고("AllowOverride none"), 이 인증 영역을 "Family Secrets"라고 이름을 붙이고, 기본적인 http 인증형태(PAM 인증이 아니다)로 설정하고(AuthType "basic"), 사용자 그룹패밀리를 요구한다.("Require group family")

5.6. 설치한 것 시험하기

전부다 설치가 잘 되었기 때문에, 성공을 축하할 때다. 가장좋아하는 웹브라우져를 열어라. 그리고 http://your-domain/family/을 쓰라(여러분의 도메인으로 바뀌어라). 여러분들은 이제 사용자 인증자이다