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