NGINX Plus 릴리스 22(R22)가 출시되어 기쁩니다. NGINX 오픈 소스를 기반으로 하는 NGINX Plus는 유일한 올인원 소프트웨어 로드 밸런서, 콘텐츠 캐시, 웹 서버 및 API 게이트웨이입니다. 이 릴리스의 주요 초점은 대규모 애플리케이션의 더 높은 세분성과 복원력을 위한 모니터링과 인증입니다.
NGINX Plus R22의 새로운 기능은 다음과 같습니다.
더 이상 지원되지 않는 이전 운영 체제 –
NGINX Plus는 클라이언트 인증서를 사용하여 연결하는 클라이언트의 신원을 확인하고 암호화된 연결을 설정하는 상호 TLS를 지원합니다. 상호 TLS는 클라이언트의 신원에 대한 높은 수준의 보증을 제공하지만, 해지된 인증서를 관리하는 것은 관리적 부담이 될 수 있습니다. OCSP( 온라인 인증서 상태 프로토콜 )는 클라이언트 인증서가 제시될 때 그 상태를 검증하여 이 문제를 해결합니다.
RFC 6960 에 정의된 대로 X.509 클라이언트 인증서의 유효성을 확인하기 위해 OCSP를 사용하도록 NGINX Plus를 구성할 수 있습니다.
SSL 클라이언트 인증서의 OCSP 유효성 검사를 활성화하려면 인증서 검증을 활성화하는 ssl_verify_client
지시문과 함께 새로운 ssl_ocsp
지시문을 포함합니다.
ssl_ocsp_responder
지시어로 다른 URI를 정의하지 않는 한, NGINX Plus는 클라이언트 인증서에 포함된 OCSP URI로 OCSP 요청을 보냅니다.
모든 작업자 프로세스에서 공유하는 단일 메모리 영역에 OCSP 응답을 캐시하려면 ssl_ocsp_cache
지시어를 포함하여 영역의 이름과 크기를 정의합니다. OCSP 응답의 nextUpdate
값이 다른 값을 지정하지 않는 한, 응답은 1시간 동안 캐시됩니다.
클라이언트 인증서 검증 결과는 $ssl_client_verify
변수에서 확인할 수 있으며, OCSP 실패 이유도 포함됩니다.
클라이언트 인증서를 신뢰할 수 없거나 OCSP 응답이 유효하지 않으면 TLS 핸드셰이크가 실패합니다. 상태 코드495
(SSL
인증서
오류)
가 반환되고 오류
심각도 수준에서 오류 로그에 항목이 생성됩니다.
YYYY / MM / DD hh : mm : ss [오류] 31222#0: *5 인증서 상태를 요청하는 동안 OCSP 응답에서 인증서 상태가 "해지됨"으로 표시됨, 응답자: 127.0.0.1
NGINX Plus를 위한 OpenID Connect 참조 구현은 복잡성과 비용을 최소화하기 위해 새 애플리케이션과 기존 애플리케이션 전반으로 SSO를 확장합니다. 참조 구현에서는 NGINX Plus 기능과 NGINX JavaScript 모듈 (njs)을 결합하여 사용하여 인증 엔드포인트와 코드 교환을 수행하고 IdP로부터 ID 토큰을 수신합니다. ID 토큰 자체는 NGINX Plus 키-값 저장소에 캐시되고, 불투명 세션 토큰은 클라이언트로 전송됩니다. 그런 다음 클라이언트는 유효한 세션 토큰을 제시하여 인증하고, NGINX Plus는 백엔드 애플리케이션에 액세스하기 전에 ID 토큰을 확인하는 데 이 토큰을 사용합니다.
이 릴리스는 OIDC 참조 구현에 대한 수많은 개선 사항과 두 가지 중요한 변경 사항을 제공합니다.
맵
블록으로 전달하여 여러 IdP를 지원합니다. 이러한 추가적인 유연성으로 인해 OIDC 참조 구현 코드를 수정할 필요성이 줄어듭니다.샘플 구성은 다음과 같습니다.
각 맵
블록은 여러 개의 값을 허용하므로 여러 IdP 및 인증 매개변수(클라이언트 비밀, JWK 키 파일, 권한 부여 엔드포인트)를 지원할 수 있습니다. 여기에서는 $host
변수를 입력 매개변수로 사용하지만, 요청 헤더에서 파생된 어떤 변수라도 지정할 수 있습니다.
NGINX Plus API는 이제 OpenID Connect 로그인과 관련된 활동을 추적하여 모니터링 및 문제 해결에 도움을 줍니다. OpenID Connect 참조 구현에 대한 자세한 내용은 GitHub 저장소를 참조하세요.
DDoS 및 무차별 대입 공격은 애플리케이션에 대한 두 가지 심각한 위협입니다. 속도 제한을 통해 이러한 효과를 완화할 수 있습니다. 즉, NGINX Plus에서 특정 기간 동안 각 클라이언트가 만들 수 있는 요청 수를 제한할 수 있습니다.
NGINX Plus R20에서는 NGINX Plus API 에 대한 요청 속도 및 연결 제한에 대한 실시간 모니터링이 추가되었습니다( /api/ 버전 /http/limit_reqs
및 /api/ 버전 /http/limit_conns
엔드포인트). 이제 정보는 NGINX Plus 라이브 활동 모니터링 대시보드에 누적 카운트가 표 형태로, 타임스탬프가 있는 카운트가 차트 형태로 표시됩니다.
이 표에는 limit_req_zone
및 limit_conn_zone
지시어로 정의된 각 영역에 대한 행이 포함되어 있습니다. 차트를 표시하려면 행의 왼쪽 끝에 있는 차트 아이콘을 클릭하세요.
확장된 차트는 지속적으로 업데이트되며 각 시간 간격의 값을 쌓은 영역 그래프로 표시합니다. 다음과 같은 방법으로 표시되는 정보를 사용자 지정할 수 있습니다.
1초의 기본 대시보드 업데이트 간격으로 각 차트는 약 30분 분량의 과거 데이터를 저장합니다. 대시보드 업데이트 간격을 늘리면 (업데이트 빈도를 낮추면) 사용할 수 있는 과거 데이터의 양이 늘어납니다. 대시보드 차트는 영구적이지 않으며, 탭에서 다른 곳으로 이동하거나 탭을 다시 로드하면 이전 데이터가 손실됩니다.
NGINX JavaScript 모듈은 NGINX Plus 기능을 확장하여 트래픽에 대한 보다 세부적인 제어, 애플리케이션 간의 JavaScript 기능 통합, 보안 위협으로부터의 방어 등 광범위한 사용 사례를 지원합니다. NGINX JavaScript 모듈이 업데이트되었습니다.0.4.1 다음 기능이 포함됩니다.
js_import
지시문다음 코드와 구성은 오류가 발생할 때마다 클라이언트가 보낸 정확한 헤더 세트를 기록하는 데 새 r.rawHeadersIn
개체를 사용하는 방법을 보여줍니다. [ 편집기 - 이것은 NGINX JavaScript 모듈의 많은 사용 사례 중 하나일 뿐입니다. 전체 목록은 NGINX JavaScript 모듈의 사용 사례를 참조하세요.
다음은 샘플 로그 항목입니다.404
응답:
$ curl http://localhost/bogus $ tail --lines=1 /var/log/nginx/access_json.log {"응답":{"타임스탬프":" YYYY - MM - DD T hh : mm : ss + TZ_오프셋 ","상태":404},"요청":{"클라이언트":"127.0.0.1","uri":"/bogus","헤더":[["호스트","로컬호스트:80"],["사용자 에이전트","curl/7.64.1"],["수락","*/*"]]}}
비밀번호 무차별 대입 공격이나 자격 증명 채우기와 같은 타이밍 공격을 완화하려면 인증이 실패할 때 NGINX Plus의 응답을 지연시킬 수 있습니다. 새로운 auth_delay
지시어는 Auth Basic , Auth JWT 및 Auth Request 모듈에서 처리하는 인증 요청에 적용할 수 있는 지연 시간을 지정합니다.
NGINX Plus를 사용하고 계시다면 가능한 한 빨리 NGINX Plus R22 로 업그레이드하실 것을 적극 권장합니다. 또한 몇 가지 추가적인 수정 사항과 개선 사항을 얻을 수 있으며, 지원 티켓을 제출해야 할 때 NGINX에서 도움을 주는 데 도움이 됩니다.
NGINX Plus를 사용해보지 않으셨다면 보안, 부하 분산, API 게이트웨이로 사용하거나 향상된 모니터링 및 관리 API를 갖춘 완벽히 지원되는 웹 서버로 사용해보시기 바랍니다. 오늘 무료 30일 체험판을 통해 시작해 보세요. NGINX Plus가 어떻게 귀하의 애플리케이션을 제공하고 확장하는 데 도움이 될 수 있는지 직접 확인해 보세요.
"이 블로그 게시물에는 더 이상 사용할 수 없거나 더 이상 지원되지 않는 제품이 참조될 수 있습니다. 사용 가능한 F5 NGINX 제품과 솔루션에 대한 최신 정보를 보려면 NGINX 제품군을 살펴보세요. NGINX는 이제 F5의 일부가 되었습니다. 이전의 모든 NGINX.com 링크는 F5.com의 유사한 NGINX 콘텐츠로 리디렉션됩니다."