- htpasswd 명령어
- 특정 페이지를 제한하기 위해 인증을 요구하고 그 인증에 대한 관리를 하는 명령어
- 제한하고 싶은 아파치 내 디렉터리로 이동하여 .htaccess 파일을 만들어야 함
- [-c] : 지정한 디렉터리 페이지에 사용자 계정 및 패스워드를 생성
- htpasswd –c /var/www/html/.htpasswd admin
- /var/www/html/ 디렉터리에 대한 admin 계정, 패스워드를 생성
- 처음 추가 이후에는 [-c] 옵션 없이 추가함
- [-D] : 지정한 디렉터리(페이지)에 생성한 사용자 계정을 삭제 </aside>
- httpd
- [-t 또는 configtest] : 문법적 오류 확인
- [-k graceful] : 아파치 웹 서버를 재시작하지 않고, 변경된 환경 설정 파일만 다시 읽음
- [-S] : 아파치 웹 서버에 설정된 가상호스트 정보 출력
- [-M] : 아파치 웹 서버의 모듈 출력
- [-l] : 아파치 웹 서버에 컴파일되어 포함된 모듈의 목록만 출력 [-X] : 내부 디버깅 목적으로 하나의 프로세스로 실행되는 모드
- [-d serverroot] : ServerRoot 변수를 초기값으로 지정
- [-D] : IfDefind 선언에서 사용되는 이름을 정의
- [-f 설정 파일명] : 설정 파일을 지정해서 아파치 실행
- [-v] : 버전과 빌드 정보를 출력
- [-V] : 버전과 빌드 정보, 컴파일 시 셋팅 출력
- AllowOverride AuthConfig : httpd.conf 파일에 인증할 디렉터리 관련 설정
- ServerName : 도메인명 지정
- UserDir : 일반 사용자의 웹 디렉터리를 지정
- Alias 단축디렉터리 디렉터리 : 디렉터리를 단축디렉터리로 경로를 단축
- NameVirtualHost : 하나의 IP주소를 가지고 있는 시스템에서 2개의 도메인 설정이 가능하도록 지정
- ExtendedStatus : server-status 핸들러 실행 시 On으로 설정하면 현재 처리하고 있는 자원에 대한 정보도 함께 확인 가능
- SetHandler : 핸들러 설정
- AuthType : 인증 방식
- AuthName : 인증 프롬포트에 표시될 메시지
- AuthUserFile : 사용자 이름과 암호가 저장된 파일 경로 ( ex) /usr/local/apache/conf/password )
- Require valid-user : 인증된 모든 사용자를 허용
- 주 도메인 이외에 추가로 도메인 운영을 위해 설정하는 과정
| 가. 관련 모듈과 환경설정 파일을 활성화 |
| |
| LoadModule vhost_alias_module modules/mod_vhost_alias.so |
| Include conf/extra/httpd-vhosts.conf |
| |
| 나. 관련 파일에서 추가 도메인에 대한 설정을 진행 |
| |
| <VirtualHost 192.168.5.13:80> |
| ServerAdmin admin@ihd.or.kr |
| DocumentRoot “/usr/local/apache/htdocs” |
| </VirtualHost> |
- 조건 : 아파치 웹 서버는 소스 파일을 이용해서 /usr/local/apache 디렉터리에 설치되어 있음
| 가. 아파치 웹 서버 환경설정 파일을 vi 편집기로 불러옴 |
| |
| |
| 나. 도메인명을 www.ihd.or.kr으로 지정하고 포트 번호는 80을 사용 |
| ServerName [www.ihd.or.kr:80](http://www.ihd.or.kr/) |
| |
| 다. 웹 문서가 위치하는 디렉터리의 경로는 /usr/local/apache/html로 변경함 |
| DocumentRoot “/usr/local/apache/html” |
| |
| 라. 아파치 웹 서버 데몬을 실행함 |
| /usr/local/apache/bin/apachectl start |
- 개인 사용자의 홈페이지 등록과 관련된 아파치 웹 서버 환경설정 과정
| 가. 관련 모듈과 환경설정 파일을 활성화 |
| |
| LoadModule userdir_module modules/mod_userdir.so |
| Include conf/extra/httpd-userdir.conf |
| |
| 나. 개인 사용자들의 웹 문서가 위치하는 디렉터리를 www로 지정함 |
| |
| UserDir www |
| 가. 아파치 웹 사용자로 ihduser를 생성하고, 저장하는 파일명은 /etc/password로 지정함. |
| (단, /etc/password은 처음 생성하는 파일임.) |
| |
| |
| 나. httpd.conf 파일에 인증할 디렉터리 관련 설정을 함 |
| AllowOverride AuthConfig |
| |
| 다. 아파치 웹 사용자 인증 대상 디렉터리인 /usr/local/apache/htdocs에 생성할 파일명을 기입함 |
| .htaccess |
| 가. 도메인명을 www.ihd.or.kr으로 지정하고 포트 번호는 80번을 사용함 |
| ServerName [www.ihd.or.kr:80](http://www.ihd.or.kr/) |
| |
| 나. 웹 문서가 위치하는 디렉터리의 경로는 /usr/local/apache2/htdocs로 변경함 |
| DocumentRoot “/usr/local/apache2/htdocs” |
| |
| 다. 웹 디렉터리 접근 시에 인식되는 인덱스 파일의 순서를 index.html, index.htm, index.php 순으로 지정함 |
| DirectoryIndex index.html index.htm index.php |
| |
| 라. 일반 사용자의 웹 디렉터리를 www로 지정함 |
| UserDir www |
| 가. ihduser라는 웹 사용자를 생성하는데, 관련 파일은 /usr/local/apache/conf/password로 생성 |
| htpasswd –c /usr/local/apache/conf/password ihduser |
| |
| 나. 아파치 환경설정 파일의 문법적 오류가 있는지 여부를 점검 |
| httpd -t 또는 service httpd configtest |
| |
| 다. 아파치 웹 서버를 재시작하지 않고, 변경된 환경설정 파일 정보만을 다시 읽음 |
| httpd -k graceful 또는 service httpd graceful |
| 접근을 통제할 디렉터리는 /www/ihd/admin, 192.168.22.0 네트워크 대역의 주소를 갖는 클라이언트 접속만 허용 |
| [root@ihd ~] |
| <Directory “www/ihd/admin”> |
| Order Deny, Allow -> 뒤에 나온 게 먼저 실행 |
| Deny from All |
| Allow from 192.168.22.0/255.255.255.0 또는 192.168.22.0/24 또는 192.168.22. |
| </Directory> |
- 에러 페이지 제공 : ErrorDocument
- 403 – 허가 거부
- 401 – 인증되지 않은 경우
- 404 – 존재하지 않는 웹 문서에 접근