7.5.2. Nginx 서버 구성 보안
Nginx는 고성능 HTTP 및 프록시 서버입니다. 다음 구성 옵션을 사용하여 Nginx 구성을 강화할 수 있습니다.
절차
버전 문자열을 비활성화하려면
server_tokens구성 옵션을 수정합니다.server_tokens off;이 옵션을 사용하면 서버 버전 번호와 같은 추가 세부 정보가 표시되지 않습니다. 이 구성은 Nginx에서 제공하는 모든 요청에 서버 이름만 표시합니다. 예를 들면 다음과 같습니다.
$ curl -sI http://localhost | grep Server Server: nginx특정
/etc/nginx/conf 파일의 특정 알려진 웹 애플리케이션 취약점을 완화하는 보안 헤더를 추가합니다.예를 들어
X-Frame-Options헤더 옵션은 도메인 외부의 모든 페이지를 거부하여 Nginx에서 제공하는 콘텐츠를 프레임하고 클릭재킹 공격을 완화합니다.add_header X-Frame-Options "SAMEORIGIN";예를 들어
x-content-type헤더는 이전 브라우저의 MIME 유형 스니핑을 방지합니다.add_header X-Content-Type-Options nosniff;예를 들어
X-XSS-Protection헤더는 XSS(Cross-Site Scripting) 필터링을 활성화하여 브라우저에서 Nginx에 의해 응답에 포함된 잠재적으로 악의적인 콘텐츠를 렌더링하지 못하도록 합니다.add_header X-XSS-Protection "1; mode=block";
일반 대중에게 노출되는 서비스를 제한하고 자신이하는 것을 제한하고 방문자로부터 수락 할 수 있습니다. 예를 들면 다음과 같습니다.
limit_except GET { allow 192.168.1.0/32; deny all; }스니펫은
GET및HEAD를 제외한 모든 메서드에 대한 액세스를 제한합니다.HTTP 메서드를 비활성화할 수 있습니다. 예를 들면 다음과 같습니다.
# Allow GET, PUT, POST; return "405 Method Not Allowed" for all others. if ( $request_method !~ ^(GET|PUT|POST)$ ) { return 405; }- Nginx 웹 서버에서 제공하는 데이터를 보호하도록 SSL을 구성할 수 있으며 HTTPS를 통해서만 서비스를 제공하는 것이 좋습니다. 또한 Mozilla SSL 구성 생성기를 사용하여 Nginx 서버에서 SSL을 활성화하기 위한 보안 구성 프로파일을 생성할 수 있습니다. 생성된 구성을 사용하면 알려진 취약한 프로토콜(예: SSLv2 및 SSLv3), 암호 및 해시 알고리즘(예: 3DES 및 MD5)이 비활성화됩니다. SSL 서버 테스트를 사용하여 구성이 최신 보안 요구 사항을 충족하는지 확인할 수도 있습니다.