해커가 서버에 침입하면 먼저 "들어온다"는 것은 해커가 버전 번호를 알고 있는 경우와 같이 서버에서 실행 중인 일부 서비스의 세부 정보를 아는 것을 의미합니다. 해당 서비스 넘버링 후 해당 버전의 서비스에서 일부 취약점을 찾아 침입 및 공격할 수 있으므로 불필요한 문제를 피하기 위해 이러한 버전 번호를 숨겨야 합니다
테스트해 보겠습니다
insoz:~ insoz$ curl -I http://127.0.0.1/phpinfo.php HTTP/1.1 200 OK Server: nginx/1.5.0 Date: Thu, 18 Jun 2015 02:39:32 GMT Content-Type: text/html Connection: keep-alive Vary: Accept-Encoding X-Powered-By: PHP/5.3.1
우리 서버의 nginx와 php 버전이 노출되어 있는 것을 볼 수 있습니다. 숨기는 방법을 살펴보겠습니다
먼저 버전 번호를 숨기는 방법을 살펴보겠습니다. nginx:
nginx에서 nginx.conf 구성 파일에 다음 코드를 추가합니다
server_tokens off;
아파치에서 버전 번호를 숨기는 방법:
아파치 구성에서 httpd.conf 파일에 다음 코드를 추가하세요
ServerTokens Prod ServerSignature Off
PHP에서 버전 번호를 숨기는 방법을 살펴보겠습니다.
php 구성 파일 php.ini에 다음을 추가합니다. 다음 코드
expose_php = Off
수정이 완료된 후 서비스를 다시 시작하고 다시 테스트해 보겠습니다.
insoz:~ insoz$ curl -I http://127.0.0.1//phpinfo.php HTTP/1.1 200 OK Server: nginx Date: Thu, 18 Jun 2015 02:41:47 GMT Content-Type: text/html Connection: keep-alive Vary: Accept-Encoding
위 내용은 관련 내용을 포함하여 Nginx나 Apache, PHP의 버전 번호를 숨기는 방법을 소개하고 있으니 PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되었으면 좋겠습니다.