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
설정은 매우 간단하지만, 보안 측면에서는 기본이 되는 중요한 조치입니다. 특히 워드프레스, 전자상거래, 금융 관련 서비스처럼 보안이 중요한 환경에서는 반드시 적용하는 것을 권장합니다.
작은 설정 하나가 큰 보안 사고를 막을 수 있습니다.