====== 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 - **디렉토리 리스트가 보이지 않는 상태** (수정후) Options FollowSymLinks AllowOverride All 혹은 Options -Indexes FollowSymLinks AllowOverride All ==== Virtual Hosting ==== - 아파치설정에서 Virtual Hosting 을 하고 있다면 Apache 설정 바꾸기를 추천한다. ==== 특정 디렉토리만 리스트 보이기 ==== - 특정 디렉토리만 리스트가 보이게 설정할 수 있다. \\ 아래는 http://siteurl/www/dirlist 디렉토리가 보이게 설정된 예이다. \\ Options Indexes FollowSymLinks AllowOverride All ==== 내부에 -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