본문 바로가기

DevOps/[Linux]

[Nginx+보안] Nginx 서버가 Nginx인지 모르게 만들기

반응형

 

INTRO


 

nginx로 웹 서버를 구축하면 기본적으로 서버 응답에 Server:nginx(+버전명)과 같이

내 서버와 버전을 알 수 있는 값이 들어있다.

 

 


 

0. 서론

- 해당 사항은 평상시에 필요성을 느끼지 못했지만, 최근 GS(Good Software)인증이라는 과정을 준비하며 필요성을 느꼈다.

- nginx는 버전별로 취약점(cve)이 발견되고 있으며, 아래 공식 사이트에서 확인 가능하다.

http://nginx.org/en/security_advisories.html

 

nginx security advisories

nginx security advisories All nginx security issues should be reported to security-alert@nginx.org. Patches are signed using one of the PGP public keys. Memory corruption in the ngx_http_mp4_moduleSeverity: mediumAdvisoryCVE-2022-41741Not vulnerable: 1.23.

nginx.org

- 악의적인 목적을 가진 사람이 우리 서버의 버전을 알아내고 취약점을 이용한 공격을 한다면?

 

 

1. 버전정보가 노출되지 않도록 처리

- 아래 내용을 server 필드에 추가한다

server_tokens off;

- 이렇게 하면 더 이상 버전 정보가 노출되지 않는다.

그러나 아래와 같이 Server:nginx 항목은 여전히 노출된다.

 

2. Server 를 노출되지 않도록 처리

- 아래 내용을 server 필드에 추가한다

proxy_pass_header Server;

-참조 : https://stackoverflow.com/questions/246227/how-do-you-change-the-server-header-returned-by-nginx

 

How do you change the server header returned by nginx?

There's an option to hide the version so it will display only nginx, but is there a way to hide that too so it will not show anything or change the header?

stackoverflow.com

 

 

 

 

마무리

이외에도 nginx서버를 실무 수준으로 운영하려면, 취약점에 대한 설정들이 꽤 많이 필요하다. 가급적 보안을 위해 nginx를 최신 버전으로 유지하고, 발견된 취약점에 대한 처리를 해두는 것이 좋다

 

 

 

-퍼가실 때는 출처를 꼭 같이 적어서 올려주세요!

 

반응형