====== APACHE 설정에서 디렉토리 리스트(Index of ...) 숨기기 ======
===== 개요 =====
- 웹사이트 방문자들이 파일이나 이미지를 다운로드할때 보여지는 주소를 통해 파일리스트를 볼 수 있다.
- 개발서버나 개발을 막시작하려고 할때에는 유용하지만, **운영시에는 보안상 매우 위험**하다.
- 디렉토리 리스트가 보여지게 설정이 되어 있을 경우, \\ http://www.adminschool.net/images/dotimage.jpg 이미지 주소가 있을때 \\ http://www.adminschool.net/images/ 를 브라우저 주소창에 입력하면 디렉토리에 있는 파일들이 모두 보여진다.
=== 디렉토리 리스트 보기를 막기 위해서 다음 중 한가지를 선택해야 한다. ===
- **각 디렉토리마다 index 파일을 넣기**
- **Apache 설정을 바꾸기**
- Global 설정
- Local(Virtual) 설정
===== Directory 설정 =====
==== 기본형식 ====
- **디렉토리 리스트가 보이는 상태** (수정전) \\
Options Indexes FollowSymLinks
AllowOverride All
Directory>
- **디렉토리 리스트가 보이지 않는 상태** (수정후)
Options FollowSymLinks
AllowOverride All
Directory>
혹은
Options -Indexes FollowSymLinks
AllowOverride All
Directory>
==== Virtual Hosting ====
- 아파치설정에서 Virtual Hosting 을 하고 있다면 Apache 설정 바꾸기를 추천한다.
==== 특정 디렉토리만 리스트 보이기 ====
- 특정 디렉토리만 리스트가 보이게 설정할 수 있다. \\ 아래는 http://siteurl/www/dirlist 디렉토리가 보이게 설정된 예이다. \\
Options Indexes FollowSymLinks
AllowOverride All
Directory>
==== 내부에 -Indexes 옵션 무력화 시키기 ====
- 디렉토리 내부에 .htaccess 파일을 통해 디렉토리 리스트를 볼 수 있다.
- 파일에 다음 한줄만 추가해 주면 된다. Options Indexes
===== 설정예제 =====
- 아래는 adminschool.net의 apache 설정파일이다. \\ http://adminschool.net 의 모든 디렉토리 보기는 막혀있고, http://adminschool.net/images 만 디렉토리 보기가 허용된 상태이다. \\
ServerName www.adminschool.net
ServerAlias adminschool.net
DocumentRoot /html/adminschool/
ServerAdmin webmaster@adminshcool.net
Options -Indexes
Options Indexes
suPHP_Engine on
ErrorLog /var/log/apache2/www.adminschool.net-error.log
CustomLog /var/log/apache2/www.adminschool.net-access.log combined env=!dontlog