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 사용자 이름과 암호가 틀리면 입력하라는 창이 나타난다. 3차례실패하면 다음과 같이 인증이 요구된다는 보안 메시지가 뜬다. 사용자 계정과 패스워드를 올바르게 입력하면, 다음과 같이 정상적으로 파일 내용이 보이게 된다.
|