NGINX Plus 릴리스 22(R22)가 출시되어 기쁩니다 . NGINX 오픈 소스를 기반으로 하는 NGINX Plus는 유일한 올인원 소프트웨어 로드 밸런서, 콘텐츠 캐시, 웹 서버 및 API 게이트웨이입니다. 이 릴리스의 주요 초점은 모니터링 및 인증으로, 대규모 애플리케이션의 세분성과 복원력을 강화합니다.
NGINX Plus R22 의 새로운 기능은 다음과 같습니다.
- 클라이언트 인증서 인증 향상 – OCSP(온라인 인증서 상태 프로토콜) 검증은 상호 TLS를 사용하여 해지된 인증서를 확인하는 보안 계층을 추가합니다.
- 여러 IdP에 대한 OpenID Connect 지원 – NGINX Plus R15 에서 고객이 애플리케이션에 Single Sign-On(SSO)을 추가할 수 있도록 OpenID Connect(OIDC) 통합을 도입했습니다 . NGINX Plus R22를 사용하면 여러 OIDC ID 공급자(IdP)와 쉽게 통합할 수 있습니다.
- 라이브 활동 모니터링 대시보드의 메트릭 증가 – 대시보드에는 이제 OIDC 활동에 대한 메트릭과 요청 및 연결 제한의 과거 차트가 표시됩니다.
- NGINX JavaScript 모듈 개선 – NGINX JavaScript 모듈(njs) 이 0.4.1 로 업데이트되었으며 , 여러 버그가 수정되었고 JavaScript 모듈 가져오기, 원시 헤더 객체 접근 등의 새로운 기능이 추가되었습니다.
행동의 중요한 변화
더 이상 지원되지 않는 이전 운영 체제 –
- Alpine Linux 3.8은 더 이상 지원되지 않습니다.
- NGINX Plus R21<.htmla> 에 대해 발표된 대로 NGINX Plus는 더 이상 32비트 플랫폼(i386 아키텍처)에서 사용할 수 없습니다.
새로운 기능에 대한 자세한 정보
클라이언트 인증서의 OCSP 검증
NGINX Plus는 클라이언트 인증서를 사용하여 연결하는 클라이언트의 신원을 확인하고 암호화된 연결을 설정하는 상호 TLS를 지원합니다. 상호 TLS는 클라이언트의 신원에 대한 높은 수준의 보증을 제공하지만, 해지된 인증서를 관리하는 것은 관리적 부담이 될 수 있습니다. 온라인 인증서 상태 프로토콜 (OCSP)은 클라이언트 인증서가 제시될 때 상태를 확인하여 이를 해결합니다.
RFC 6960 에 정의된 대로 X.509 클라이언트 인증서의 유효성을 확인하기 위해 OCSP를 사용하도록 NGINX Plus를 구성할 수 있습니다 .
SSL 클라이언트 인증서의 OCSP 유효성 검사를 활성화하려면 인증서 검증을 활성화하는 ssl_verify_client 지시문과 함께 새로운 ssl_ocsp 지시문을 포함합니다.
사용자가 지시문으로 다른 URI를 정의하지 않는 한, NGINX Plus는 클라이언트 인증서에 포함된 OCSP URI로 OCSP 요청을 보냅니다 ssl_ocsp_responder.
모든 작업자 프로세스에서 공유하는 단일 메모리 영역에 OCSP 응답을 캐시하려면 ssl_ocsp_cache영역의 이름과 크기를 정의하는 지시문을 포함합니다. nextUpdateOCSP 응답의 값이 다른 값을 지정하지 않는 한 응답은 1시간 동안 캐시됩니다.
$ssl_client_verifyOCSP 실패 이유를 포함하여 클라이언트 인증서 검증 결과는 변수에서 사용할 수 있습니다 .
클라이언트 인증서가 신뢰할 수 없거나 OCSP 응답이 유효하지 않으면 TLS 핸드셰이크가 실패합니다. 상태 코드가495 (SSL Certificate Error) 반환되고 error심각도 수준에서 오류 로그에 항목이 생성됩니다.
YYYY/MM/DD hh:mm:ss [error] 31222#0: *5 certificate status "revoked" in the OCSP response while requesting certificate status, responder: 127.0.0.1
OpenID Connect 향상
NGINX Plus를 위한 OpenID Connect 참조 구현은 복잡성과 비용을 최소화하기 위해 새 애플리케이션과 기존 애플리케이션에서 SSO를 확장합니다. 참조 구현은 NGINX Plus 기능과 NGINX JavaScript 모듈 (njs)의 조합을 사용하여 권한 부여 엔드포인트와 코드 교환을 수행하고 IdP에서 ID 토큰을 수신합니다. ID 토큰 자체는 NGINX Plus 키-값 저장소에 캐시되고 불투명 세션 토큰이 클라이언트로 전송됩니다. 그런 다음 클라이언트는 백엔드 애플리케이션에 액세스하기 전에 NGINX Plus가 ID 토큰을 확인하는 데 사용하는 유효한 세션 토큰을 제시하여 인증합니다.
이 릴리스는 OIDC 참조 구현에 대한 수많은 개선 사항과 두 가지 중요한 변경 사항을 제공합니다.
- 이제 구성은 인바운드 요청에서 적절한 입력 변수를 여러 map블록으로 전달하여 여러 IdP를 지원합니다. 이러한 추가적인 유연성은 OIDC 참조 구현 코드를 수정할 필요성을 줄여줍니다.
- JavaScript 코드는 이제 모듈로 구현되어 단일 파일에서 모든 njs 코드를 관리할 필요 없이 동일한 호스트의 다른 njs 솔루션과 공존할 수 있습니다.
샘플 구성은 다음과 같습니다.
각 map블록은 여러 값을 허용하므로 여러 IdP 및 인증 매개변수(클라이언트 비밀, JWK 키 파일, 권한 부여 엔드포인트)를 지원할 수 있습니다. 여기서는 변수를 $host입력 매개변수로 사용하지만 요청 헤더에서 파생된 모든 변수를 지정할 수 있습니다.
NGINX Plus API는 이제 모니터링 및 문제 해결을 돕기 위해 OpenID Connect 로그인과 관련된 활동을 추적합니다. OpenID Connect 참조 구현에 대한 자세한 내용은 GitHub 저장소를 참조하세요.
속도 및 연결 제한을 위한 실시간 대시보드 차트
DDoS 및 무차별 대입 암호 추측 공격은 애플리케이션에 대한 두 가지 중요한 위협입니다. 속도 제한을 통해 이러한 공격의 영향을 완화할 수 있습니다. 즉, NGINX Plus에서 특정 기간 동안 각 클라이언트가 만들 수 있는 요청 수를 제한합니다.
NGINX Plus R20은 NGINX Plus API (및포인트 )에 대한 요청 속도 및 연결 제한의 실시간 모니터링을 추가했습니다. 이제 정보가 NGINX Plus 라이브 활동 모니터링 대시보드에 표시되며, 누적 카운트는 표 형태로, 타임스탬프 카운트는 차트 형태로 표시됩니다./api/version/http/limit_reqs/api/version/http/limit_conns
- 요청 속도 제한 메트릭은 HTTP 영역 탭 의 요청 제한 테이블에 나타납니다.
- 연결 제한 메트릭은 TCP/UDP 영역 탭 의 연결 제한 테이블에 나타납니다.
limit_req_zone표에는 및 지시문 으로 정의된 각 구역에 대한 행이 포함됩니다 limit_conn_zone. 차트를 표시하려면 행의 왼쪽 끝에 있는 차트 아이콘을 클릭합니다.
확장된 차트는 지속적으로 업데이트되고 각 시간 간격의 값을 스택 영역 그래프로 표시합니다. 다음과 같은 방법으로 표시된 정보를 사용자 정의할 수 있습니다.
- 표시할 시간 범위를 선택하세요: 1분, 5분 또는 15분
- 차트 위에 마우스를 올려 놓으면 특정 시점에 대한 정확한 카운트가 표시됩니다.
- 차트에서 해당 통계를 강조 표시하려면 범례 영역에서 통계 유형 위에 마우스를 올려 놓으세요.
- 범례 영역에서 통계 유형을 클릭하여 표시 여부 사이를 전환합니다.
- 차트를 좌우로 드래그하여 과거 데이터를 확인하세요.
기본 대시보드 업데이트 간격인 1초에서 각 차트는 약 30분 분량의 과거 데이터를 저장합니다. 대시보드 업데이트 간격을 늘리면 (덜 자주 업데이트) 사용 가능한 과거 데이터 양이 늘어납니다. 대시보드 차트는 영구적이지 않으며, 탭을 벗어나거나 다시 로드하면 과거 데이터가 손실됩니다.
NGINX JavaScript 모듈의 향상
NGINX JavaScript 모듈은 NGINX Plus 기능을 확장하여 트래픽에 대한 보다 정교한 제어, 애플리케이션 간 JavaScript 기능 통합, 보안 위협에 대한 방어를 포함한 광범위한 사용 사례를 가능하게 합니다. NGINX JavaScript 모듈은 0.4.1 로 업데이트되었으며 다음 기능이 포함되어 있습니다.
- js_import위치 및 변수 핸들러를 구현하는 여러 모듈 파일을 가져오기 위한 새 지침
- 새로운 원시 헤더 객체를 포함한 향상된 헤더 지원
- njs 코드에서 TypeScript 정의 파일을 사용할 수 있습니다.
- 외부 값을 기본 JavaScript 객체로 변환하기 위한 지원
다음 코드와 구성은 r.rawHeadersIn오류가 발생할 때마다 클라이언트가 보낸 정확한 헤더 세트를 기록하는 데 새 개체를 사용하는 방법을 보여줍니다. [ 편집기 - 이것은 NGINX JavaScript 모듈의 여러 사용 사례 중 하나일 뿐입니다. 전체 목록은 NGINX JavaScript 모듈의 사용 사례를 참조하세요 . ]
404 응답 에 대한 샘플 로그 항목은 다음과 같습니다
$ curl http://localhost/bogus
$ tail --lines=1 /var/log/nginx/access_json.log
{"response":{"timestamp":"YYYY-MM-DDThh:mm:ss+TZ_offset","status":404},"request":{"client":"127.0.0.1","uri":"/bogus","headers":[["Host","localhost:80"],["User-Agent","curl/7.64.1"],["Accept","*/*"]]}}
인증 실패로 인한 지연
비밀번호 무차별 대입 공격 및 자격 증명 스터핑과 같은 타이밍 공격을 완화하기 위해 인증이 실패할 때 NGINX Plus가 응답을 지연하도록 할 수 있습니다. 새 지침은 지연을 지정하며, 이는 Auth Basic , Auth JWT 및 Auth Requestauth_delay 모듈 에서 처리하는 인증 요청에 적용될 수 있습니다 .
NGINX Plus 릴리스 22(R22)가 출시되어 기쁩니다 . NGINX 오픈 소스를 기반으로 하는 NGINX Plus는 유일한 올인원 소프트웨어 로드 밸런서, 콘텐츠 캐시, 웹 서버 및 API 게이트웨이입니다. 이 릴리스의 주요 초점은 모니터링 및 인증으로, 대규모 애플리케이션의 세분성과 복원력을 강화합니다.
NGINX Plus R22 의 새로운 기능은 다음과 같습니다.
행동의 중요한 변화
더 이상 지원되지 않는 이전 운영 체제 –
새로운 기능에 대한 자세한 정보
클라이언트 인증서의 OCSP 검증
NGINX Plus는 클라이언트 인증서를 사용하여 연결하는 클라이언트의 신원을 확인하고 암호화된 연결을 설정하는 상호 TLS를 지원합니다. 상호 TLS는 클라이언트의 신원에 대한 높은 수준의 보증을 제공하지만, 해지된 인증서를 관리하는 것은 관리적 부담이 될 수 있습니다. 온라인 인증서 상태 프로토콜 (OCSP)은 클라이언트 인증서가 제시될 때 상태를 확인하여 이를 해결합니다.
RFC 6960 에 정의된 대로 X.509 클라이언트 인증서의 유효성을 확인하기 위해 OCSP를 사용하도록 NGINX Plus를 구성할 수 있습니다 .
SSL 클라이언트 인증서의 OCSP 유효성 검사를 활성화하려면 인증서 검증을 활성화하는 ssl_verify_client 지시문과 함께 새로운 ssl_ocsp 지시문을 포함합니다.
사용자가 지시문으로 다른 URI를 정의하지 않는 한, NGINX Plus는 클라이언트 인증서에 포함된 OCSP URI로 OCSP 요청을 보냅니다 ssl_ocsp_responder.
모든 작업자 프로세스에서 공유하는 단일 메모리 영역에 OCSP 응답을 캐시하려면 ssl_ocsp_cache영역의 이름과 크기를 정의하는 지시문을 포함합니다. nextUpdateOCSP 응답의 값이 다른 값을 지정하지 않는 한 응답은 1시간 동안 캐시됩니다.
$ssl_client_verifyOCSP 실패 이유를 포함하여 클라이언트 인증서 검증 결과는 변수에서 사용할 수 있습니다 .
클라이언트 인증서가 신뢰할 수 없거나 OCSP 응답이 유효하지 않으면 TLS 핸드셰이크가 실패합니다. 상태 코드가495 (SSL Certificate Error) 반환되고 error심각도 수준에서 오류 로그에 항목이 생성됩니다.
YYYY/MM/DD hh:mm:ss [error] 31222#0: *5 certificate status "revoked" in the OCSP response while requesting certificate status, responder: 127.0.0.1OpenID Connect 향상
NGINX Plus를 위한 OpenID Connect 참조 구현은 복잡성과 비용을 최소화하기 위해 새 애플리케이션과 기존 애플리케이션에서 SSO를 확장합니다. 참조 구현은 NGINX Plus 기능과 NGINX JavaScript 모듈 (njs)의 조합을 사용하여 권한 부여 엔드포인트와 코드 교환을 수행하고 IdP에서 ID 토큰을 수신합니다. ID 토큰 자체는 NGINX Plus 키-값 저장소에 캐시되고 불투명 세션 토큰이 클라이언트로 전송됩니다. 그런 다음 클라이언트는 백엔드 애플리케이션에 액세스하기 전에 NGINX Plus가 ID 토큰을 확인하는 데 사용하는 유효한 세션 토큰을 제시하여 인증합니다.
이 릴리스는 OIDC 참조 구현에 대한 수많은 개선 사항과 두 가지 중요한 변경 사항을 제공합니다.
샘플 구성은 다음과 같습니다.
각 map블록은 여러 값을 허용하므로 여러 IdP 및 인증 매개변수(클라이언트 비밀, JWK 키 파일, 권한 부여 엔드포인트)를 지원할 수 있습니다. 여기서는 변수를 $host입력 매개변수로 사용하지만 요청 헤더에서 파생된 모든 변수를 지정할 수 있습니다.
NGINX Plus API는 이제 모니터링 및 문제 해결을 돕기 위해 OpenID Connect 로그인과 관련된 활동을 추적합니다. OpenID Connect 참조 구현에 대한 자세한 내용은 GitHub 저장소를 참조하세요.
속도 및 연결 제한을 위한 실시간 대시보드 차트
DDoS 및 무차별 대입 암호 추측 공격은 애플리케이션에 대한 두 가지 중요한 위협입니다. 속도 제한을 통해 이러한 공격의 영향을 완화할 수 있습니다. 즉, NGINX Plus에서 특정 기간 동안 각 클라이언트가 만들 수 있는 요청 수를 제한합니다.
NGINX Plus R20은 NGINX Plus API (및포인트 )에 대한 요청 속도 및 연결 제한의 실시간 모니터링을 추가했습니다. 이제 정보가 NGINX Plus 라이브 활동 모니터링 대시보드에 표시되며, 누적 카운트는 표 형태로, 타임스탬프 카운트는 차트 형태로 표시됩니다./api/version/http/limit_reqs/api/version/http/limit_conns
limit_req_zone표에는 및 지시문 으로 정의된 각 구역에 대한 행이 포함됩니다 limit_conn_zone. 차트를 표시하려면 행의 왼쪽 끝에 있는 차트 아이콘을 클릭합니다.
확장된 차트는 지속적으로 업데이트되고 각 시간 간격의 값을 스택 영역 그래프로 표시합니다. 다음과 같은 방법으로 표시된 정보를 사용자 정의할 수 있습니다.
기본 대시보드 업데이트 간격인 1초에서 각 차트는 약 30분 분량의 과거 데이터를 저장합니다. 대시보드 업데이트 간격을 늘리면 (덜 자주 업데이트) 사용 가능한 과거 데이터 양이 늘어납니다. 대시보드 차트는 영구적이지 않으며, 탭을 벗어나거나 다시 로드하면 과거 데이터가 손실됩니다.
NGINX JavaScript 모듈의 향상
NGINX JavaScript 모듈은 NGINX Plus 기능을 확장하여 트래픽에 대한 보다 정교한 제어, 애플리케이션 간 JavaScript 기능 통합, 보안 위협에 대한 방어를 포함한 광범위한 사용 사례를 가능하게 합니다. NGINX JavaScript 모듈은 0.4.1 로 업데이트되었으며 다음 기능이 포함되어 있습니다.
다음 코드와 구성은 r.rawHeadersIn오류가 발생할 때마다 클라이언트가 보낸 정확한 헤더 세트를 기록하는 데 새 개체를 사용하는 방법을 보여줍니다. [ 편집기 - 이것은 NGINX JavaScript 모듈의 여러 사용 사례 중 하나일 뿐입니다. 전체 목록은 NGINX JavaScript 모듈의 사용 사례를 참조하세요 . ]
404 응답 에 대한 샘플 로그 항목은 다음과 같습니다
$ curl http://localhost/bogus $ tail --lines=1 /var/log/nginx/access_json.log {"response":{"timestamp":"YYYY-MM-DDThh:mm:ss+TZ_offset","status":404},"request":{"client":"127.0.0.1","uri":"/bogus","headers":[["Host","localhost:80"],["User-Agent","curl/7.64.1"],["Accept","*/*"]]}}인증 실패로 인한 지연
비밀번호 무차별 대입 공격 및 자격 증명 스터핑과 같은 타이밍 공격을 완화하기 위해 인증이 실패할 때 NGINX Plus가 응답을 지연하도록 할 수 있습니다. 새 지침은 지연을 지정하며, 이는 Auth Basic , Auth JWT 및 Auth Requestauth_delay 모듈 에서 처리하는 인증 요청에 적용될 수 있습니다 .
위 내용과 같이 NGINX Plus 를 활용하여 Demo 가 필요하시면 하단의 전문가에게 상담받기 버튼을 클릭해주세요
전문가에게 상담받기