-
디렉터리 리스팅 막기보안 위협 관리 통제 2019. 5. 12. 01:10
구글같은 인터넷 검색엔진 검색을 하다보면
아래와 같이 index of 하고 나오는 파일들이 올라간 페이지가 나오는 경우가 있다.
직접 만든 예시 그런 경우 서버구축했을 때 의도 하지 않았을 경우가 많을 것이고 이런 경우 내가 보이고자 하지 않았던 내용을 보일 수 있으므로 보안상 취약할 수 있다. 조금 더 썰을 풀자면 구글에 검색만 잘하면 이런 페이지를 검색해서 여러자료를 볼수도 있다.
바로 이런 것들을 디렉터리 리스팅이라고 한다.
이때 왜 이런 현상이 발생하냐면 설정파일에서 DirectoryIndex 지시자의 파일이 없으면 쉽게 말해 index.html이 없으면 디렉터리 리스트를 출력하도록 설정이 되어있기 때문이다.
그래서 이번에는 이런 창이 나오지 않도록 httpd설정을 해보도록 하자.
일단 크게 두가지 방법이 있다. 첫 번째는 설정을 변경하지 않고 막는 방법이고 두 번째는 직접 설정 파일을 수정하는 것이다. 그 순서대로 설명하도록 하겠다.
먼저 환경 구축은 CentOS에서 httpd 를 설치후 /var/www/html 에 data 폴더를 만든 후 실습하였다
1. 설정을 변경하지 않고 막는 방법
첫 번째 방법은 간단하다 디렉터리 리스이 설정파일에서 DirectoryIndex 지시자의 파일이 없으면 쉽게 말해 index.html이 없으면 디렉터리 리스트를 출력하므로 폴더마다 index.html을 만들어 두면 디렉터리 리스팅이 나오지 않는다는 말이다.
그래서 사실 아래 사진에 있는 주소를 보면 data라는 폴더에 들어갔을 때 아래 화면이 나온 것을 볼 수있다. 하지만 기본적으로 data폴더에 index.html 파일이 저 폴더에 있다면 index.html 화면이 나오게 된다.
index.html파일이 없을때 data 폴더에 index.html을 만든 후 그래서 설정을 변경하지 않고 막기 위해서는 /var/www/html 안에있는 모든 폴더엔 index.html을 넣어두면 디렉토리 리스닝을 막을 수 있다.
다음으로는 설정을 변경해서 막는 방법을 알아보자
2. 설정을 변경해서 막는 방법
다시 원래 대로 돌아와서 아래와 같은 상황에서 시작한다고 가정하자.
index.html파일이 없을 때 이번에는 파일과 심볼릭 링크를 data 폴더에 심볼릭 링크 파일을 만들고선 실습을 해보도록 하자.
# cd /var/www/html
# ln -s /etc/passwd .
# touch data/a.txt
# touch data/b.txt
# touch data/c.txt
위에와 같이 명령어를 실행하고 두개의 페이지 에 들어가보면 다음과 같이 정보들을 그냥 볼 수 있을 것을 알 수 있다.
위에서 만든 파일들이 보인다(172.30.1.42/data) 심볼릭 링크가 보인다(172.30.1.42/passwd) 이와 같이 설정을 막지 않으면 디렉터리 리스팅과 심볼릭 링크을 볼수 있다.
그래서 이번에는 설정을 통해서 위와 같은 경우를 막아보도록 하자. 막는 방법은 다음과 같다.
#vim +332 /etc/httpd/conf/httpd.conf <--- 명령어 입력
Options Indexes FollowSymLinks <--- 아래의 그림과 같이 이줄로 이동 되어 있을 것이다.
vim +332 /etc/httpd/conf/httpd.conf Indexes : 디렉터리 인덱싱 허용
FollowSymLinks : 시스템 디렉터리의 파일을 웹디렉터리로 심볼릭 링크 허용 이므로
이때 아래와 같이 이 Options 뒤에 내용에 따라서 디렉터리 리스팅과 심볼릭 링크을 막을 수도 허용할 수도 있다.
Options Indexes FollowSymLinks <--- 둘다 허용
Options None <--- 둘다 허용 안함
따라서 아래와 같이 Options Indexes FollowSymLinks은 주석 처리하고 Options None 이라 적어 준 뒤
httpd를 재시작(service httpd restart 또는 /etc/init.d/httpd restart)을 해주면 문제를 해결할 수 있다.
Options 변경 디렉토리 리스닝 (172.30.1.42/data) 막힘 심볼릭 링크 (172.30.1.42/passwd) 막힘 '보안 위협 관리 통제' 카테고리의 다른 글
Domain 정보 수집 중 zone transfer를 통한 정보수집 (0) 2019.05.14 Domain 정보 수집 중 whois(site, nc, telnet 등)을 통한 정보수집 (0) 2019.05.14 정보 수집 (0) 2019.05.12 CentOS에서 MBR 삭제하는 프로그래밍 하기 (0) 2019.05.12 CentOS 6.10에서 MBR 복구하기 (0) 2019.05.11