본문 바로가기

# Development/DevOps

[Nginx] Header Server 정보 수정하기, 지우기

Header Server 정보 수정하기, 감추기

Nginx를 사용하는 ununtu 서버에서 보안을 위해 Header의  Server 정보를 숨기고 싶을 때,

아래의 3가지 방법을 통해 Server 정보를 단계적으로 숨길 수 있다.

1. nginx 버전 정보 숨기기
2. Server 데이터 대체 하기
3. Server 헤더 삭제하기

 

nginx.conf 기본 설정 확인

Server Header 정보는 nginx.conf 파일에서를 수정할 수 있다.  보통 ubuntu에서 /etc/nginx/nginx.conf 위치에 있다.

nginx.conf 기본 설정

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;   
    include /etc/nginx/conf.d/*.conf
}

 

위와 같은 기본 설정에서는 Header의 Server에 서버의 종류와 버전까지 함께  나타난다.

1. nginx 버전 정보 숨기기

nginx 버전 정보를 숨기기 위해서는 server_tokens off; 를 활성화하면 된다.

worker_processes  1;
events {
    worker_connections  1024;
}
http { 
    ....
    server_tokens     off; ## 추가된 설정
    ...
}

2. Header Server 데이터 대체하기

Header Server 데이터를 임의의 값으로 대체하기 위해서는 nginx-extras 설치 후, more_set_headers "Server: 대체텍스트"; 설정을 추가해주면 된다.

$ apt install nginx-extras
worker_processes  1;
events {
    worker_connections  1024;
}
http { 
    ....
    server_tokens     off;
    more_set_headers "Server: SMILE"; ## 추가된 설정
    ...
}

3. Header Server 지우기

Header Server를 지우기 위해서는 nginx-extras 설치 후, more_clear_headers Server; 설정을 추가해주면 된다.

$ apt install nginx-extras
worker_processes  1;
events {
    worker_connections  1024;
}
http { 
    ....
    server_tokens     off;
    more_clear_headers Server; ## 추가된 설정
    ...
}

Nginx 재시작

nginx.conf 변경 후에는 nginx 서비스를 재시작 해야 변경사항이 적용된다.

$ systemctl restart nginx

 

 

 

<참고>

- https://serverfault.com/questions/214242/can-i-hide-all-server-os-info

- https://blog.rgbplace.com/372