본문 바로가기

시스템 보안

17. 아파치 서버 설정

반응형

오늘은 웹 서버의 보안설정을 통해 시스템 내부 파일이 노출되지 않도록 실습해볼거야

오늘 사용할 tool은 'APMtools' 인데 sulinux에 설치해주도록 하자

설치는 apmtools 를 입력하면 blue screen이 뜰거야

거기서 apache,php,mariaDB의 버전을 선택할 수 있는데 최신 버전을 선택하고 설치를 진행하면 돼

설치하는데 조금 시간이 걸릴 수 있으니 이 점 감안하고 실습 따라오도록!

APM= Apache, Php, MariaDB

 

 

APM tools 설치가 끝나면 ok를 누르고 실습에 참여하도록 하자!

 

 

 

1. Apache server

 

APM tools가 성공적으로 설치가 되었다면 apache server의 home directory를 확인해보자

apache 디렉토리의 경로는 "/usr/local/apache/conf"

이제 여기서 service httpd restart 명령을 통해서 apache server가 잘 작동하는지 확인해보자

해당 디렉토리에 상주하는 파일들이야 httpd.conf는 오늘 실습에서 자주 사용하게 될거야

 

 

windows10에서 인터넷에 접속해서 주소창에 192.168.10.135를 입력해보도록 하자.

참고로 192.168.10.135는 sulinux의 IP 주소야

밑의 사진처럼 나오면 정상적으로 apache server가 작동중인거야

 

 

이제 우리는 apache server의 설정파일을 가지고 보안적인 취약점을 알아보도록 할게

그 전에 apache server에 사용되는 디렉토리가 어떤 것이 있는지 알려주고 갈게

 

1. /usr/local/apache/conf  >>  apache server의 home 디렉토리야 

2. /usr/local/apache/htdocs  >>  apache server의 html 설정 디렉토리야

 

해당 디렉토리의 경로는 sulinux에서의 경로이기 때문에 OS마다 다를 수 있다는 점 기억해!

 

 

-directory listing 취약점

apache server의 파일을 변경하면 directory의 파일 내용들이 웹페이지에 고스란히 나오게 되는 취약점이야

한 번 간단하게 실험 삼아 index.html 파일 이름을 jjj.html로 변경한 후 sulinux의 웹 서버로 접속해볼게

 

 

현재 apache server의 html 파일이 바로 index.html인데 

이 파일의 이름을 jjj.html로 바꾸면 apache web server에 접근이 불가능하게 될거야

그 이유는 바로 apache/conf 파일에 설정되어 있는 설정값들 때문인데

일단 결과를 보고 apache/conf 파일로 넘어가보도록 하자

 

 

이 상태에서 우리는 apache/conf 디렉토리에 httpd.conf 파일을 조작해보도록 할거야

line 123으로 가보자

해당 line은 Options FollowSymlinks 라고 적혀있는데 여기에 indexes를 추가하고 

service httpd restart로  web server를 리부팅 시키도록 하자

 

 

windows10으로 넘어가서 192.168.10.135로 인터넷 접속을 해보도록 하자

 

 

위의 결과처럼 /usr/local/apache/htdocs 디렉토리 안에 있는 파일들을 확인할 수 있게 되었어

아까 line 123에 indexes 라는 설정을 하나 더 추가했을 뿐인데 

htdocs 디렉토리의 파일들을 열람할 수 있게 된거지 

참고로 해당 파일들은 하이퍼링크처럼 클릭하면 해당 파일의 내용도 보여줘

htdocs 디렉토리에 jnu.txt 파일을 하나 추가하고 확인해본 결과를 보여줄게

 

 

자 indexes 라는 단어 하나만 추가했는데 이렇게 보안적으로 취약한 부분이 그대로 드러나지?

그래서 line 123에 추가한 indexes는 삭제해놓은 상태에서 web server에 접근하도록 해야돼

그런데 왜 이런 일이 발생하는 걸까? 바로 httpd.conf file의 line 173을 보도록 하자

 

directoryindex가 요청한 파일들을 통해 apache가 작동된다는 것을 알 수 있어

만약 해당 파일의 이름을 갖지 않는다면 apache 작동이 되지 않게 되는거지

따라서 index.html 파일의 이름을 변경하면 web server 접근이 불가능하게 되는건 당연하겠지?

 

 

 

 

- 특정 IP 차단

httpd.conf 파일에서 설정 가능한 것은 특정 host에 대한 web server 접근에 대한 차단이야
그 전에 먼저 line 112~ line 167 까지 어떤 역할을 하는 범위인지 알아볼 필요가 있어

112 DocumentRoot "/usr/local/apache/htdocs"
...
...
167 </Directory>

 

DocumentRoot 가 의미하는 바는 program을 올리는 directory의 명을 뜻하는거야

여기서부터 htdocs directory에 대한 설정들이 line 167까지 이어지는거야

아까 위에서 살펴본 line 123의 indexes 설정 또한 이에 해당하는 설정이지

이제 여기서 특정 host를 차단하는 line이 나오는데 바로 line 123 밑의 line 124,125야!

 

 

현재 상태는 모든 host에 대해 allow를 해주지만

아까 사용한 windows10의 ip주소인 192.168.10.134의 web server 접근을 차단하고 있어

그렇다면 windows 10으로 가서 192.168.10.135로 인터넷 접속을 해보도록 할게!

 

 

접속이 안되는 것을 볼 수 있지? 다른 host는 접근 가능하냐고?

한 번 확인해보자 centos7으로 firefox를 이용하여 접근 시도를 해볼게 과연...??

 

 

접근 성공!!

windows10에 대한 접근만 차단했기 때문에 다른 host들의 apache server 접근은 가능해!

 



 

이를 통해 특정 IP를 대상으로 apache server의 접근을 차단할 수 있다는 것까지 배워봤어

오늘은 여기까지 하는걸로 하고 다음 시간부터는 침투테스트 카테고리로 넘어갈거야

지금까지 배워왔던 시스템,서버 지식을 통해 침투테스트 tool을 이용해서 OS에 직접 침투해볼거야

재미있겠지?? ㅋㅋㅋㅋ

아무튼 다음 시간에는 침투테스트에서 보도록 하자~ 안녕!

 

반응형

'시스템 보안' 카테고리의 다른 글

16. FTP(2)  (0) 2022.11.02
15. FTP(1)  (0) 2022.11.02
14. Samba  (0) 2021.12.29
13. NFS (2)  (0) 2021.12.27
12. NFS (1)  (0) 2021.12.27