제4장 WebtoB 4.1 SP8 Fix#1

내용 목차

4.1. 추가 기능
4.1.1. CA사의 SiteMinder 연동을 위한 filter 기능 추가
4.1.2. Reverse Proxy Group 사용 시 Primary/Backup 설정 추가
4.1.3. Reverse Proxy Group 사용 시 JSESSIONID에 WebtoB 자체 routingid를 적용하는 기능 추가
4.1.4. PROXY_SSL에서 client auth 기능 추가
4.2. 변경 기능
4.2.1. RUN 상태로 지속되고 있는 JSV connection에 *NODE.Timeout 설정을 적용
4.3. 버그 패치
4.3.1. 60초 안에 HTH가 10번 down될 경우 restart하지 않아 발생하는 오류 수정
4.3.2. REVERSE_PROXY_GROUP의 Primary 서버가 down되었을 때 LBBackup 서버가 503으로 응답하는 오류 수정
4.3.3. Windows IOCP에서 Write event를 제대로 등록하지 못하는 오류 수정
4.3.4. JEUS의 jengineid를 변경해서 WebtoB에 connect하는 경우 sticky session routing이 잘 안 되는 오류 수정
4.3.5. WBRoutingCookieKey 설정으로 기존 Set-Cookie header가 아닌 새로운 header를 추가하도록 수정
4.3.6. OpenSSL Version(1.0.1j) 업그레이드
4.3.7. DosBlock 기능 중 SiteCount를 설정하여 사용할 때 HTH down되는 오류 수정
4.3.8. DosBlock 기능 사용 중 클라이언트 IP가 삭제되지 않아서 HTH down되는 오류 수정
4.3.9. POST body를 SSL read하여 JEUS로 넘길 때 flow control이 발생하는 경우 pending된 데이터를 안읽고 있는 오류 수정
4.3.10. smISAPI.so 필터를 적용한 경우 HTH down되는 오류 수정
4.3.11. Linux에서 에러를 제대로 처리하지 못해 CPU 과부하되는 오류 수정
4.3.12. Disable인 CONNECT Method를 getaddrinfo()를 통해 DNS resolution을 시도하는 오류 수정
4.3.13. JSV 커넥션으로부터 PONG 메시지와 response 메시지를 함께 받은 경우 무한루프에 빠지는 오류 수정
4.3.14. JSV 응답을 compression하기 위한 큐잉이 발생하는 도중에 HTH down되는 오류 수정
4.3.15. Reverse Proxy 내부 서버에 연결되기 직전 클라이언트가 연결이 끊어진 경우 에러가 발생하며 HTH down되는 오류 수정
4.3.16. JSV 커넥션이 BRUN일 때 JEUS 프로세스가 비정상 종료되면 HTH CPU 사용량이 과부하되는 오류 수정
4.3.17. Authorization request header 파싱 도중에 HTH down되는 오류 수정
4.3.18. CacheMaxFileSize가 FlowControlBuffer보다 큰 경우 HTH가 down되는 오류 수정

4.1. 추가 기능

4.1.1. CA사의 SiteMinder 연동을 위한 filter 기능 추가

  • FILTER 절에 모듈(so)을 추가하여 CA사의 SSO 솔루션인 SiteMinder의 Policy Server와 연동하며 사용자 인증 및 인가 처리 기능을 지원한다.

    [예 4.1] FILTER절 및 filters 설정

    *FILTER
    sm_filter     RealPath = "$(WEBTOBDIR)/config/filter/wbSmISAPI.so"
    
    *SVRGROUP
    htmlg         SVRTYPE = HTML
    jsvg          SVRTYPE = JSV
    filterg       SVRTYPE = FILTER, Filter = "sm_filter"
    
    *SERVER
    htmls         SVGNAME = htmlg, MinProc = 5, MaxProc = 10
    MyGroup       SVGNAME = jsvg, MinProc = 5, MaxProc = 10
    filters       SVGNAME = filterg, MinProc = 1, MaxProc = 20
    
    *URI
    testuri       Uri= "/testuri/", SvrType = JSV
    
    *EXT
    fcc           MimeType = "text/html", SvrType = JSV
    

  • 관련이슈 : IMS-92139

4.1.2. Reverse Proxy Group 사용 시 Primary/Backup 설정 추가

  • Reverse Proxy Group절에 Backup 서버를 설정하여, Failover/ Failback 기능을 지원한다.

    • *REVERSE_PROXY_GROUP.LBBackup : 다른 reverse proxy 서버가 모두 READY 상태가 아닐 경우 백업 용도로 사용할 서버를 설정

    • *REVERSE_PROXY_GROUP.FailbackCheckTime(기본값: 60 sec) : Failover되어 백업 서버가 사용되고 있을 때 Failback하기 위한 시간을 설정. (0일 경우 Failback하지 않음)

  • 관련이슈 : IMS-86843

4.1.3. Reverse Proxy Group 사용 시 JSESSIONID에 WebtoB 자체 routingid를 적용하는 기능 추가

  • *REVERSE_PROXY_GROUP 절에 WBRoutingCookieKey의 값을 SessionIdCookieKey의 값과 동일하게 설정하여 WebtoB 자체 roudingid를 추가할 수 있다.

    • 예) REVERSE_PROXY_GROUP.WBRoutingCookieKey가 JSESSIONID로 같을 경우

      *REVERSE_PROXY_GROUP
      reverse_proxy_group1 ...
          WBRoutingCookieKey="JSESSIONID",
          SessionIdCookieKey="JSESSIONID",
      ...
      <response header>
      키             값
      Set-Cookie     JSESSIONID=!YXBhY2hlX3VybA==@M3KLIn4a5wgFMYurPwwsM1C3urq1
      aR5oeeMXr7KtjaJqdpq9qUoDn3trF4YGR1v1.d3RmX2RvbWFpbi9zZXJ2ZXIx;Path=/jsvtest;HttpOnly
      
  • 관련이슈 : IMS-86843

4.1.4. PROXY_SSL에서 client auth 기능 추가

  • *PROXY_SSL을 통해 클라이언트 인증서를 내부 서버로 보내어 클라이언트를 검증하는 기능을 지원한다.

    • *PROXY_SSL.CertificateFile : client certificate 설정

    • *PROXY_SSL.CertificateKeyFile : client private key 설정

    • *PROXY_SSL.PassPhraseDialog : client private key를 위한 password 설정

  • 관련이슈 : IMS-91303

4.2. 변경 기능

4.2.1. RUN 상태로 지속되고 있는 JSV connection에 *NODE.Timeout 설정을 적용

  • *NODE.Timeout 이후 클라이언트 연결이 끊어졌음에도 RUN 또는 BRUN 상태로 남아있는 JSV 커넥션을 끊어주도록 수정되었다.

  • 관련이슈 : IMS-90351

4.3. 버그 패치

4.3.1. 60초 안에 HTH가 10번 down될 경우 restart하지 않아 발생하는 오류 수정

  • 10초 안에 HTH가 down된 경우 restart를 최대 20번 할 수 있도록 수정되었다.

  • 관련이슈 : IMS-88570

4.3.2. REVERSE_PROXY_GROUP의 Primary 서버가 down되었을 때 LBBackup 서버가 503으로 응답하는 오류 수정

  • *REVERSE_PROXY_GROUP.LBBackup 서버를 설정하고, Primary 서버가 down되었을 때 경우 LBBackup 서버가 정상 응답하지 않고 503으로 응답하는 오류를 수정하였다.

  • 관련이슈 : IMS-86843

4.3.3. Windows IOCP에서 Write event를 제대로 등록하지 못하는 오류 수정

  • Windows IOCP 사용 중 Write event가 제대로 등록되지 않아 Write event를 처리하지 못하고 BRUN 또는 RUN 상태로 남아있는 오류가 수정되었다.

  • 관련이슈 : IMS-88555

4.3.4. JEUS의 jengineid를 변경해서 WebtoB에 connect하는 경우 sticky session routing이 잘 안 되는 오류 수정

  • JEUS의 jengineid(registrationid)를 변경해서 WebtoB에 connect하는 경우(WebtoB를 재기동하지 않았을 경우)에 *SVRGROUP.LBServers를 사용해서 묶은 서버 그룹간에 sticky session routing이 잘 안 되어서 로드 밸런싱이 잘 안되는 오류가 수정되었다.

  • 관련이슈 : IMS-86952

4.3.5. WBRoutingCookieKey 설정으로 기존 Set-Cookie header가 아닌 새로운 header를 추가하도록 수정

  • *REVERSE_PROXY_GROUP.WBRoutingCookieKey 설정으로 Set-Cookie에 WebtoB 자체 routing key를 추가하고자 하는 경우 기존에는 JSESSIONID가 있는 Set-Cookie header에 value가 추가되었으나, 새로운 Set-Cookie header 및 value 값을 추가하도록 수정되었다 .

  • 예) REVERSE_PROXY_GROUP.WBRoutingCookieKey를 W2BRID로 설정한 경우

    *REVERSE_PROXY_GROUP
    reverse_proxy_group1 ...
        WBRoutingCookieKey="W2BRID",
        SessionIdCookieKey="JSESSIONID",
    ...
    
    <response header>
    키             값
    Set-Cookie     JSESSIONID=AOaWLOFojHC1BPOHRSM5rbMyq1mvDsAtenUSXZY2keprnawrqa
    Dy63vV4fIqc8Cv.d3RmX2RvbWFpbi9zZXJ2ZXIx;Path=/jsvtest;HttpOnly
    ...
    Set-Cookie     W2BRID=amV1c19jb25n.anNwX3VybA==;path=/jeus_proxy
    

  • 관련이슈 : IMS-86843

4.3.6. OpenSSL Version(1.0.1j) 업그레이드

  • wbssl(OpenSSL)의 버전을 1.0.1h에서 1.0.1j로 업그레이드하였다.

    wbssl(OpenSSL) 업그레이드를 통해 메모리 고갈 취약점(CVE-2014-3513 등) 및 WebtoB에서 TLS_FALLBACK_SCSV 기능을 제공하여 TLS 사용 중 SSL3.0으로 Downgrade되는 것을 방지하도록 하였다.

  • SSL 3.0 취약점은 기존 4.1.5.3 미만의 버전에도 *SSL.Protocols 기능을 추가하여 다음을 적용하여 해결했다.

    *SSL.Protocols = "-SSLv3"
  • 관련리포트 : https://www.openssl.org/news/secadv_20141015.txt

  • 관련이슈 : IMS-89781

4.3.7. DosBlock 기능 중 SiteCount를 설정하여 사용할 때 HTH down되는 오류 수정

  • *NODE.DosBlockSiteCount를 설정하는 경우 클라이언트 IP의 사이트 접속 count를 체크하는 과정에서 HTH가 down되는 오류가 수정되었다.

  • 관련이슈 : IMS-90235

4.3.8. DosBlock 기능 사용 중 클라이언트 IP가 삭제되지 않아서 HTH down되는 오류 수정

  • *NODE.DosBlock 기능을 사용하는 경우(클라이언트 IP가 3000개 이상인 경우) 추가된 클라이언트 IP가 제대로 삭제되지 않아서 HTH가 down되는 오류가 수정되었다.

  • 관련이슈 : IMS-90235

4.3.9. POST body를 SSL read하여 JEUS로 넘길 때 flow control이 발생하는 경우 pending된 데이터를 안읽고 있는 오류 수정

  • HTTPS로 POST(body가 HttpInBufSize보다 큰) 요청을 처리할 때 발생하는 오류가 수정되었다.

  • 관련이슈 : IMS-87135

4.3.10. smISAPI.so 필터를 적용한 경우 HTH down되는 오류 수정

  • WebtoB-4.1.6 이상에서 *FILTER 설정을 통해 Response Header를 추가하거나 수정하는 경우 HTH가 down되는 오류가 수정되었다.

  • 관련이슈 : IMS-86838

4.3.11. Linux에서 에러를 제대로 처리하지 못해 CPU 과부하되는 오류 수정

  • Linux에서 epoll을 사용하여 tcpgw를 처리하는 경우 BRUN 등으로 인해 발생한 EPOLLERR, EPOLLHUP 에러를 제대로 처리하지 못하면서 CPU 과부하되는 오류가 수정되었다.

  • 관련이슈 : IMS-88098

4.3.12. Disable인 CONNECT Method를 getaddrinfo()를 통해 DNS resolution을 시도하는 오류 수정

  • CONNECT Method를 요청하는 경우(*NODE.Method = "-CONNECT"로 설정) 해당 Method가 disable임에도 불구하고 getaddrinfo()를 통해 DNS resolution을 시도해서 요청이 지연되는 오류가 수정되었다.

  • 관련이슈 : IMS-90858

4.3.13. JSV 커넥션으로부터 PONG 메시지와 response 메시지를 함께 받은 경우 무한루프에 빠지는 오류 수정

  • JSV 커넥션에 대해 PING 메시지를 보내고 PONG 응답을 받기전 클라이언트로부터 들어온 요청을 그 커넥션으로 보내고 난 이후 PONG 메시지와 Response 메시지를 동시에 소켓으로부터 read한 경우 경우 이를 정상적으로 처리하지 못하는 오류가 수정되었다.

  • 관련이슈 : IMS-91772

4.3.14. JSV 응답을 compression하기 위한 큐잉이 발생하는 도중에 HTH down되는 오류 수정

  • JSV 응답을 compression하기 위한 큐잉이 발생하는 도중에 클라이언트 커넥션이 리셋될 때 HTH가 down되는 오류가 수정되었다.

  • 관련이슈 : IMS-91766

4.3.15. Reverse Proxy 내부 서버에 연결되기 직전 클라이언트가 연결이 끊어진 경우 에러가 발생하며 HTH down되는 오류 수정

  • Reverse Proxy 내부 서버에 연결되기 직전 클라이언트 연결이 끊어진 경우, HTH가 앞선 클라이언트 정보에 대한 요청 처리를 시도하는데 클라이언트가 이미 초기화되어서 HTH가 down되면서 "EPOLLERR" 발생하여 HTH가 비정상 종료되는 오류가 수정되었다.

  • 관련이슈 : IMS-92309

4.3.16. JSV 커넥션이 BRUN일 때 JEUS 프로세스가 비정상 종료되면 HTH CPU 사용량이 과부하되는 오류 수정

  • JSV 커넥션이 BRUN일 때 JEUS 프로세스가 비정상 종료되면(POLLERR 또는 POLLHUP 이벤트를 받고) HTH CPU 사용량이 과부하되는 오류가 수정되었다.

  • 관련이슈 : IMS-92320

4.3.17. Authorization request header 파싱 도중에 HTH down되는 오류 수정

  • Request Header에 "Authorization: Basic"으로 type만 있고 데이터가 없는 경우, HTH가 down되는 오류가 수정되었다.

  • 관련이슈 : IMS-92488

4.3.18. CacheMaxFileSize가 FlowControlBuffer보다 큰 경우 HTH가 down되는 오류 수정

  • CacheMaxFileSize가 FlowControlBuffer(HttpOutBufSize * FlowControl, 기본값: 200KB)보다 큰 경우 HTH가 down되는 오류가 수정되었다.

  • *NODE.MaxJengineCount의 기본값을 8에서 32로 수정하였다.

  • 관련이슈 : IMS-92507