Nginx 보안 강화: server_tokens off 설정으로 버전 정보 숨기기

1. Nginx 보안 취약점과 버전 노출

웹 서버를 운영할 때 가장 기본적인 보안 취약점 중 하나는 서버 버전 정보 노출입니다.
기본적으로 Nginx는 에러 페이지나 HTTP 응답 헤더(Server 헤더)에 버전 정보를 포함해 전송합니다.

예시:

Server: nginx/1.22.1

이 정보는 공격자에게 유용한 단서가 될 수 있어, 알려진 취약점을 바탕으로 공격을 시도하는 데 활용됩니다. 따라서 불필요한 버전 노출을 차단하는 것이 중요합니다.


2. server_tokens off 설정 방법

Nginx에서는 server_tokens off; 설정을 통해 버전 정보를 감추고 단순히 nginx라고만 표시되게 할 수 있습니다.

http {
    server_tokens off;

    server {
        listen 80;
        server_name example.com;

        location / {
            root /var/www/html;
        }
    }
}

3. http 블록 vs server 블록

  • http 블록에 설정 → 모든 가상 호스트(server 블록)에 적용 (권장)
  • server 블록에 설정 → 특정 도메인에만 적용
  • location 블록에 설정 → 특정 경로에만 적용

👉 취약점 조치나 보안 강화를 위해서는 http 블록에 한 번만 설정하는 것이 가장 효율적입니다.


4. 적용 확인 방법

Nginx 설정 변경 후 반드시 테스트를 거쳐야 합니다.

nginx -t    # 설정 파일 문법 확인
systemctl reload nginx   # 설정 반영

그리고 브라우저 개발자 도구(F12)나 curl -I 명령어를 통해 응답 헤더를 확인해보세요.

적용 전:

Server: nginx/1.22.1

적용 후:

Server: nginx

5. 마무리

server_tokens off 설정은 매우 간단하지만, 보안 측면에서는 기본이 되는 중요한 조치입니다. 특히 워드프레스, 전자상거래, 금융 관련 서비스처럼 보안이 중요한 환경에서는 반드시 적용하는 것을 권장합니다.

작은 설정 하나가 큰 보안 사고를 막을 수 있습니다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다