HTTP 404 페이지 아파치 버전 숨기기

Jmnote (토론 | 기여)님의 2013년 12월 18일 (수) 21:33 판 (→‎같이 보기)
404 Not Found 아파치 버전 숨기기

1 문제 상황

  • 404 Not Found 페이지에서 아파치 버전과 OS가 노출된다.
  • 이것을 숨기고 싶다.
[root@jmnote ~]# curl http://localhost/asdfasdf
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /not_found.php was not found on this server.</p>
<hr>
<address>Apache/2.2.3 (CentOS) Server at localhost Port 80</address>
</body></html>
→ 아파치 버전은 2.2.3, OS는 CentOS임이 표시됨

2 확인

[root@jmnote ~]# cat /etc/httpd/conf/httpd.conf | grep ServerSignature On
→ 서버 정보를 표시하게 되어 있음. 이게 기본값

3 변경

  • 아파치 설정파일 httpd.conf를 httpd.conf_old로 복사하여 보존
[root@jmnote ~]# cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_old
  • sed를 이용하여 ServerSignature On을 Off로 치환[1]
[root@jmnote ~]# sed -i "s/ServerSignature On/ServerSignature Off/g" /etc/httpd/conf/httpd.conf
[root@jmnote ~]# diff /etc/httpd/conf/httpd.conf_old /etc/httpd/conf/httpd.conf
537c537
< ServerSignature On
---
> ServerSignature Off
→ ServerSignature 가 Off로 변경됨
  • 새 설정을 적용하기 위해 아파치 재시작
[root@jmnote ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]

4 확인 2

[root@jmnote ~]# curl http://localhost/asdfasdf
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>404 Not Found</title>
</head><body>
<h1>Not Found</h1>
<p>The requested URL /not_found.php was not found on this server.</p>
</body></html>
→ address 태그 부분이 완전히 사라졌다. 아파치/OS 정보가 노출되지 않음

5 같이 보기

6 주석

  1. sed 대신 vi로 직접 편집해도 된다.
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}