Apache의 기본적인 보안사항에 대하여 알아봅니다.
Indexes 제거
<Diretory> 지시자의 Options 값에 Indexes 값을 제거한다. 이는 디렉토리 구조와 파일리스트를 출력하게 되어 보안상 위태롭다.
많은 사이트들이 Apache를 웹서버로 사용하고 있으며, UNIX/Linux 계에서 가장 널리 사용되는 웹서버 스크립트는 PHP라고 할수 있다.
또한, 여기에 무료이면서 성능(특히 속도)이 뛰어난 DBMS인 MySQL을 사용하는 경우가 많은데 아파치는 사용자가 많은 만큼, 버그가 빨리 발견되기 때문에 버그를 이용한 공격을 당하기 쉬운 단점도 있다. 아파치 및 php버전을 실제 버전과 다르게 표시한다면 해커들은 잘못된 버전의 취약점을 가지고 접근을 시도하게 되어 곤란하게 만들 수 있다 .
[root@server conf]# telnet 211.174.61.27 80
Trying 211.174.61.27...
Connected to 211.174.61.27.
Escape character is '^]'.
GET / HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 26 Dec 2000 10:23:34 GMT
Server: Apache/1.3.14 (Unix) PHP/4.0.3pl1
위와 같이 기존에 정상적으로 접근을 하면 아피치 버전과 php버전도 나오게 된다. 이걸 보고 버전에 따른 버그를 가지고 해커들은 불법접속을 시도할 것이다.
따라서 실제 버전 정보를 숨길 경우 조금이나마 서버 보안에 도움을 줄 수 있는데, 이 부분을 실제 세팅된 버전과 다르게 표시하는 방법에 대해서 알아보자. 또 다른 방법으로 간단하게 apache의 버전정보를 숨기는 방법도 있다.
/usr//local/apache/conf/httpd.conf 파일을 열고 이 문구를 추가해주면 된다.
ServerTokens ProductOnly
그리고 웹데몬을 다시 시작하고 테스트를 하면
[root@server conf]# telnet 211.174.61.27 80
Trying 211.174.61.27...
Connected to 211.174.61.27.
Escape character is '^]'.
GET / HTTP/1.0
HTTP/1.1 200 OK
Date: Tue, 26 Dec 2000 10:30:45 GMT
Server: Apache
이런식으로 Apache라고 표시만 된다.
'리눅스 > Linux 일반' 카테고리의 다른 글
리눅스 atime, mtime, ctime - 접근시간, 변경시간, 수정시간 (0) | 2013.09.12 |
---|---|
리눅스 특수 파일과 장치 (0) | 2013.09.11 |
웹서비스를 위한 퍼미션 문제 (13) | 2013.09.07 |
도메인과 공유기 그리고 SSH (0) | 2013.09.01 |
SSH Key 생성하기 (0) | 2013.08.16 |