Server

[CSAP] NGINX Header Hide

VENUSIM 2025. 1. 31. 16:45
웹 서버로 nginx를 사용할 때, 기본 설정 상태에서는 응답 헤더에 nginx의 버전 정보가 포함됩니다. 이러한 정보는 악의적인 사용자에게 서버의 버전을 알리게 되어, 특정 버전에 존재하는 보안 취약점을 이용한 공격 대상으로 지정될 수 있습니다. 따라서, nginx의 버전 정보를 숨기는 것은 보안상의 권장 사항입니다.

https://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens

 

Module ngx_http_core_module

Module ngx_http_core_module Directives Syntax: absolute_redirect on | off; Default: absolute_redirect on; Context: http, server, location This directive appeared in version 1.11.8. If disabled, redirects issued by nginx will be relative. See also server_na

nginx.org

 

Response Header 에 server nginx/1.25.3 이 찍혀나오고 있어 보안 조치가 필요하였다.

 

nginx.conf 에서 아래 내용 추가하면 없어진다고 해서 테스트 진행하였다.

http {
    server_tokens off;
}

 

적용 이후

 

 

 server_tokens off 가 어떤 기능일까? (nginx document)

 

실제 적용

server {
    listen       80;
    server_name  domain1-test.com
    server_tokens off;
    location / {
        root   /usr/share/nginx/html/launcher;
        index  aidt.html;
    }
}

server {
    listen       80;
    server_name  domain2-test.com
    server_tokens off;
    location / {
        root   /usr/share/nginx/html/pad;
        index  aidt.html;
    }
}

server {
    listen       80;
    server_name  domain3-test.com
    server_tokens off;
    location / {
        root   /usr/share/nginx/html/login;
        index  index.html;
    }
}

 

서비스 중인 모든 Nginx에 일일히 적용하는 것은 비효율 적이기에 base image를 작업하여 변경해 준다.

docker pull nginx:1.25.4
docker run -d -p 8080:80 nginx
docker exec -it {CONTAINERID} bash

(INSIDE CONTAINER)
apt update
apt install vim
vim /etc/nginx/nginx.conf
### server_tokens off; 추가  ###

(FROM HOST)
# 404.html 추가 작업
docker cp 404.html {CONTAINERID}:/usr/share/nginx/html
# Docker Registry Login
# NCP
docker login -u {TOKEN} -p {KEY} containerregistry-private.kr.ncr.ntruss.com 
docker commit {CONTAINERID} containerregistry-private.kr.ncr.ntruss.com/nginx:1.25.4
docker push containerregistry-private.kr.ncr.ntruss.com/nginx:1.25.4