Authentication
고영남 2000/ 1/27
update 2000/ 8/16

 

웹상의 특정 디렉토리를 인증된 사용자에게만 볼 수 있게 하는 것을 사용자 인증이라고 하지요.

사용자 인증을 위해서는 아파치 설정 파일을 약간 고쳐서 사용해야 합니다.

디폴트로 httpd.conf 파일에서는 .htaccess 인증을 허가하지 않기 때문에 설정을 변경해야 합니다.

물론 이것은 root 권한으로 고쳐야 겠지요. 아래와 같이 모든 디렉토리에 cgi 와 인증을 가능하게 하기 위해

<Directory /> 섹션에다 설정을 추가 합니다.


<Directory />
0 Options FollowSymLinks Includes ExecCGI

0 AllowOverride None
0 Order allow,deny
0 Allow from all
</Directory>

위에서 AllowOveride None 부분을 Auth Config로 변경해야 합니다.

이부분을 All 로 처리하게 되면 .htaccess 파일은 인증뿐만아니라. 대부분의 설정을 변경할 수 있는

또 하나의 httpd.conf 파일이 되므로 이를 이용해 마음대로 서비스를 이용하는데 악용될 수 있으므로

주의해서 사용해야 합니다 . Auth Config를 이용하면 인증부분에만 .htaccess 에서 사용할 수 있도록

허가 합니다. 그러면 잠시 Overrides에 대해 알아보자.

AllowOverride 지시자는 .htacces파일에 있는 지시자가 그 이전에 설정된 여러 지시자들을 무시하고

사용되도록 합니다. AllowOverride를 통해 새설정 가능한 지시자들은 다음의 몇가지가 있습니다.

AuthConfig

AuthDBMGroupFile, AuthDBMuserFile, AuthGroupFile, AuthName, AuthType,
AuthUserFile 과 require 지시자들을 이용하여 개벼적인 세팅이 가능함.

AuthUserFile
AuthName, AuthType, 그리고 require가 재설정 가능함
FileInfo
FancyIndexing, AddIcon, 그리고 AddLanguage를 허용
Indexes
FancyIndexing, AddIcon, 그리고 AddDescription을 허용
Limit
호스트명이나 IP 주소로 나타난 호스트들에 대해 접속제한을 재설정할 수 있다.
Option
Options 지시자에 대한 재설정을 허용한다.
All
위의 모든 것을 포함한다
None
위에서 나열한 것 중에서 아무것도 포함하지 않는다.

 

그리고 인증에 사용될 파일을 정의해 줍니다.


AccessfileName   .htaccess

설정이 끝난 후에 httpd 를 재 실행해서 변경사항이 적용되도록 합니다.

아파치가 재실행되고 나면 인증이 필요한 디렉토리에 .htaccess파일을 만들어 주면 됩니다.

물론 관리자가 만들 수도 있고 각 계정사용자가 자신의 허가권내에서 필요한 디렉토리를 인증할 수도

있습니다.

.htaccess파일은 인증할 디렉토리에서 직접 작성합니다.


$ vi .htaccess

   AuthName "인증창의 이름"
   AuthType Basic                                         
   AuthUserFile   /home/gyn/public_html/.htpasswd
   
   <Limit GET POST>                       
        require valid-user
   </Limit>

위의 내용을 간략하게 설명하면

AuthName 인증영역에 나타날 제목 으로 반드시 " " 를 사용해야 합니다.
AuthType Basic

인증타입은 일반적으로 Basic 과 Digest 두 가지를 사용하고,
패스워드 인증방식으로
crypt를 이용한 패스워드 암호화냐 MD5 해쉬 함수를
사용했느냐에 따라 나누어 집니다.
대분분의 경우 Basic 을 사용합니다.

AuthUserFile 인증할 유저를 정의한 htpasswd 로 생성된 패스워드 파일의 위치.
반드시 절대경로로 적어야 하며 웹상에서 보안을 위해 hidden파일로
생성하길 권장하며
.htpasswd 는 지정해 준 경로에 같은 이름으로
존재해야 하며 위치가 다르면 인증창이
뜨지 않는다.
<Limit GET POST> get 과 post 방식의 접근만 허용.
require valid-user

인증된 사용자만 접근을 허용. 

이제 허가를 위한 패스워드 파일을 만들어보쟝.

사용방법은 .htpasswd 사용할 패스워드 파일 사용자 id 순으로 입력하면 된다.

$ htpasswd -c .htpasswd gyn

htpasswd -c .htpasswd gyn   에서 -c 옵션은 처음실행할 때 반드시 사용해야 합니다.

htpasswd 명령의 사용법은 간단히 옵션없이 입력하면 그 사용법이 출력됩니다.

-c
처음에 파일이 없는 상태에서 한번만 사용.
계속해서 사용하게 되면 기존의 파일을 덮어 써서 지우게 됩니다.
-m
MD5 패스워드 사용시
-d
crypt 패스워드 사용시, 디폴트 옵션
-p
암호화 하지 않는 평문, 텍스트 파일
-s
SHA 방식의 암호화

.htpasswd 추가 삭제

사용자를 추가 할 경우에는 위의 사용법 그대로 사용하면 되고 처음에만 -c 옵션을 줍니다.


$ htpasswd -c .htpasswd  aaa

다음부터는 -c옵션없이 사용.


$ htpasswd .htpasswd  bbb

수정은 추가 방법과 동일 합니다.


$ htpasswd .htpasswd  bbb

삭제는 .htpasswd 파일내에서 삭제할 id가 있는 라인을 지우면 됩니다.

사용시에 파일을 찾을수 없다는 에러가 나면 경로를 확인하고 . 명령 수행후 .passwd 파일을 확인해보시면

되겠습니다.

 

 


CopyLeft 1999 - 2001 by GYN
mailto gyn90001@hanmail.net