apache 웹 서버에서 ‘index of /’ 페이지 없애는 방법

안녕하세요. 이번에는 apache의 'index of /'에 대한 설명과 없애는 방법에 대해 알아보겠습니다.

apache의 'index of /'란 무엇인가요?

apache는 웹 서버 소프트웨어로, 웹 브라우저와 웹 사이트 간의 통신을 가능하게 해줍니다. apache는 웹 사이트의 파일들을 저장하고 있으며, 웹 브라우저가 요청하는 파일을 전달해줍니다.
그런데, 웹 브라우저가 특정 디렉토리(폴더)를 요청할 때, 그 디렉토리에 index.html이나 index.php와 같은 기본 파일이 없다면, apache는 'index of /'라는 제목으로 그 디렉토리의 모든 파일과 하위 디렉토리를 나열해주는 페이지를 보여줍니다.

예를 들어, http://example.com/galerias/ 라는 주소로 접속했을 때, galerias 디렉토리에 index.html이나 index.php가 없다면, 다음과 같은 화면을 볼 수 있습니다.

'index of' 페이지

이러한 페이지를 디렉토리 인덱싱이라고 부르며, apache의 mod_autoindex 모듈이 제공하는 기능입니다.
디렉토리 인덱싱은 웹 사이트의 구조나 파일들을 쉽게 확인할 수 있게 해주는 장점이 있지만, 보안측면에서 심각한 문제를 초래합니다.

apache의 'index of /'를 없애는 방법은 무엇인가요?

apache의 'index of /'를 없애는 방법은 크게 세 가지입니다.


1. 기본 파일 생성하기
가장 간단한 방법은 디렉토리에 index.html이나 index.php와 같은 기본 파일을 생성하는 것입니다.
이렇게 하면, 웹 브라우저가 디렉토리를 요청할 때, apache는 기본 파일을 보여주게 됩니다.

예를 들어, http://example.com/galerias/ 라는 주소로 접속했을 때, galerias 디렉토리에 index.html이 있다면, 다음과 같은 화면을 볼 수 있습니다.

index.html에 접속하면 사이트 주인이 작성한 내용을 볼 수 있다.

기본 파일은 비어있거나 간단한 내용만 담고 있어도 상관없습니다.
중요한 것은 디렉토리 인덱싱을 막아주는 역할을 한다는 것입니다.

2. .htaccess 파일 수정하기
두 번째 방법은 .htaccess 파일을 수정하는 것입니다.
.htaccess 파일은 apache의 설정을 변경할 수 있는 특수한 파일로, 각 디렉토리에 위치할 수 있습니다.
.htaccess 파일에 다음과 같은 한 줄을 추가하면, 해당 디렉토리의 인덱싱을 비활성화할 수 있습니다.

1
2
Options -Indexes
 
cs

.htaccess 파일은 하위 디렉토리에도 영향을 미치므로, 상위 디렉토리에 .htaccess 파일을 작성하면 하위 디렉토리의 인덱싱도 비활성화할 수 있습니다.

3. apache 설정 파일 수정하기

세 번째 방법은 apache 설정 파일을 수정하는 것입니다.
apache 설정 파일은 일반적으로 /etc/apache2/httpd.conf 또는 /etc/apache2/apache2.conf 에 위치합니다. 이 파일에서 다음과 같은 부분을 찾아서 수정하면 됩니다.


1
2
3
4
5
<Directory /var/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
cs

여기서 Options Indexes FollowSymLinks 라는 부분에서 Indexes를 제거하거나 -Indexes로 바꾸면 됩니다. 

예를 들어,



1
2
3
4
5
<Directory /var/www/>
    Options FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
cs

또는

1
2
3
4
5
<Directory /var/www/>
    Options -Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
cs

이렇게 수정하고 apache 서버를 재시작하면, /var/www/ 디렉토리와 그 하위 디렉토리의 인덱싱이 비활성화됩니다.

결론

apache의 'index of /'는 웹 서버가 특정 디렉토리의 내용을 나열해주는 기능입니다.
이 기능은 웹 사이트의 구조나 파일들을 쉽게 확인할 수 있게 해주는 장점이 있지만, 보안이나 디자인 측면에서 문제가 될 수도 있습니다.
그래서 이 기능을 없애고 싶다면, 다음과 같은 세 가지 방법 중 하나를 사용할 수 있습니다.

  1. 기본 파일 생성하기\
  2. .htaccess 파일 수정하기
  3. apache 설정 파일 수정하기

저는 개인적으로 .htaccess 파일을 수정하는 방법이 가장 편리하고 유연하다고 생각합니다.
왜냐하면 각 디렉토리마다 다른 설정을 적용할 수 있고, 서버 재시작 없이 바로 적용될 수 있기 때문입니다.
하지만 이 방법은 서버에서 .htaccess 파일의 사용을 허용해야만 가능하기 때문에 여러 서비스를 운영중인 서버라면 권장하는 방법은 아닙니다.

오늘은 apache의 'index of /'에 대해 알아보았습니다.
이 글이 도움이 되었으면 좋겠습니다.
감사합니다.

글 쓰는 Jiniwar



댓글

이 블로그의 인기 게시물

crontab 설정방법과 로그 확인하는 법

Microsoft Defender 방화벽 설정 또는 해제하는 방법

한국 군비지출 세계 9위