Server Admin

본문 바로가기
사이트 내 전체검색


RedHat Linux >> Server Administration for Redhat Linux
[목차]
제5장 Apache Web 서버

    6. Apache에서 디렉토리별로 보안 창 띄우기[.htaccess]


httpd.conf파일의 Directory설정부분에서 디렉토리별로 보안을 강화할 수 있다. 하지만 여기서는 각 디렉토리에 .htaccess파일을 가지고 보안 창을 띄우는 방법을 알아보도록 하겠다.

웹 상에서 접근 가능한 디렉토리(DocumentRoot 이하) 어디에서나 가능하다. 해당 디렉토리에서 .htaccess파일안에 보안 사항을 기입하면 된다. 이를 위해서는 먼저 htpasswd프로그램으로 아파치용 보안 계정과 패스워드 파일을 만들어야 한다. 패스워드 파일명은 임의로 정할 수 있으나 보통 마침표(.)로 싲가하게 해서 숨겨진 파일(hidden)로 처리되게 한다.

 

1) httpd.conf 환경설정

다음 옵션 사항은 각 디렉토리에 있는 .htaccess파일 옵션에 우선한다. "All" 또는 "Options", "FileInfo", "Authconfig", "Limit"의 어떤 조합도 가능하다. 웹 문서 디렉토리에서 접근 제한 설정 파일인 .htaccess파일을 작동시킬 것인지의 여부를 결정한다. None으로 설정하면 .htaccess파일을 읽지 않게 되며, All로 설정하면 Authconfig(인증방법 명령을 사용할 수 있으며, AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, Authtype AuthUserFile require 등이 있다.), Fileinfo(AddEncoding, AddLanguage, AddType, DefaultType, LanguagerPriority명령을 사용할 수 있도록 한다.), Indexes(AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName등 디렉토리 인덱싱 관련 명령을 사용할 수 있다)

# This controls which options the .htaccess files in directories can

# override. Can also be "All", or any combination of "Options", "FileInfo",

# "AuthConfig", and "Limit"

#

    AllowOverride All

 

2) .htaccess파일의 생성

.htaccess파일은 다음과 같은 내용으로 되어 있다(없다면 추가한다).

[root@w3 htdocs]# mkdir bbs

[root@w3 htdocs]# cd bbs

[root@w3 bbs]# vi .htaccess

AuthName "LeeLAB BBS"        -> 화면에 나오게 될 이름.

AuthType Basic

AuthUserFile /usr/local/httpd/htdocs/bbs/.htpasswd              -> 패스워드 파일의 절대 경로

AuthGroupFile /dev/null

 

<Limit GET POST>

require valid-user jklee         -> jklee라는 계정만 적용됨

</Limit>

 

3) 보안 패스워드 파일의 생성

여기서 -c는 패스워드 파일을 처음 만들 때 사용한다. 이미 존재하는 파일에서 작업할 경우 사용자명이 있으면 패스워드를 수정하고, 없으면 새로 사용자명을 만들며 패스워드를 정하게 한다.

현재 웹 서버 루트 디렉토리에 bbs라는 디렉토리를 만들어 보겠다.

[root@w3 bbs]# /usr/local/httpd/bin/htpasswd -c .htpasswd jklee

New password:

Re-type new password:

Adding password for user jklee

[root@w3 bbs]# ls -al

합계 20

drwxr-xr-x    2 root     root         4096  9월 13 17:30 .

drwxr-xr-x    4 root     root         4096  9월 13 16:16 ..

-rw-r--r--    1 root     root          191  9월 13 17:30 .htaccess

-rw-r--r--    1 root     root           21  9월 13 17:32 .htpasswd

-rw-r--r--    1 root     root           17  9월 13 16:21 index.html

[root@w3 bbs]#

 

적용하기 위해 아파치 서버를 재시작한다.

[root@w3 bbs]# /usr/local/httpd/bin/apachectl restart

/usr/local/httpd/bin/apachectl restart: httpd restarted

[root@w3 bbs]#

 

소스를 설치했다면 위와 같이 하겠지만, 런레벨 스크립트를 이용한 실행방법이 설정되었다면, 아래와 같이 실행한다.

 

[root@w3 bbs]# /etc/rc.d/init.d/httpd restart

 

 

4) 동작확인

이제 실제 해당 디렉토리를 연결해 보자.

http://w3.isejong.or.kr/bbs

img1.gif

사용자 이름과 암호가 틀리면 입력하라는 창이 나타난다. 3차례실패하면 다음과 같이 인증이 요구된다는 보안 메시지가 뜬다.

img2.gif

사용자 계정과 패스워드를 올바르게 입력하면, 다음과 같이 정상적으로 파일 내용이 보이게 된다.

img3.gif

 

[목차]

개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.