Squid SSL Bump TAG_NONE / HEIR_NONE

У меня есть прозрачный прокси, Squid, версия 3.5.20 (последняя стабильная версия на данный момент) Мне нужно внести домен в белый список. Squid настроен на SSLBumping (см. Конфигурацию squid ниже)

Я пытаюсь установить Sumologic на сервере, который расположен за прозрачным NAT squid.

Проблема в том, что sumologic не может подключиться через прозрачный NAT. Почему он не может подключиться через приложение, но я могу использовать curl?

Когда я устанавливаю Sumologic, я получаю следующую ошибку:

javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
    at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:394)
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:353)
    at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:141)
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:353)
    at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:380)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:236)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:107)
    at com.sumologic.scala.collector.rest.RestClient$class.getResponse(RestClient.scala:83)
    at com.sumologic.scala.collector.rest.RestClient$class.makeGetRequest(RestClient.scala:68)
    at com.sumologic.scala.collector.auth.CollectorRegistrationManager.makeGetRequest(CollectorRegistrationManager.scala:49)
    at com.sumologic.scala.collector.rest.RestClient$class.makeRequest(RestClient.scala:119)
    at com.sumologic.scala.collector.auth.CollectorRegistrationManager.com$sumologic$scala$collector$rest$RestClientRetries$$super$makeRequest(CollectorRegistrationManager.scala:49)
    at com.sumologic.scala.collector.rest.RestClientRetries$$anonfun$makeRequest$1.apply(RestClientRetries.scala:42)
    at com.sumologic.scala.collector.rest.RestClientRetries$$anonfun$makeRequest$1.apply(RestClientRetries.scala:35)
    at com.sumologic.util.retry.Retry$.whileExceptionsAreThrown(Retry.scala:143)
    at com.sumologic.scala.collector.rest.RestClientRetries$$anonfun$withRetries$1.apply(RestClientRetries.scala:23)
    at com.sumologic.scala.collector.rest.RestClientRetries$$anonfun$withRetries$1.apply(RestClientRetries.scala:23)
    at com.sumologic.scala.collector.rest.RestClientRetries$class.makeRequest(RestClientRetries.scala:35)
    at com.sumologic.scala.collector.auth.CollectorRegistrationManager.com$sumologic$scala$collector$rest$RestClientDeploymentRedirection$$super$makeRequest(CollectorRegistrationManager.scala:49)
    at com.sumologic.scala.collector.rest.RestClientDeploymentRedirection$class.makeRequest(RestClientDeploymentRedirection.scala:74)
    at com.sumologic.scala.collector.auth.CollectorRegistrationManager.makeRequest(CollectorRegistrationManager.scala:49)
    at com.sumologic.scala.collector.auth.CollectorRegistrationManager.ping(CollectorRegistrationManager.scala:361)
    at com.sumologic.scala.collector.Collector.init(Collector.scala:546)
    at com.sumologic.scala.collector.Collector$.main(Collector.scala:831)
    at com.sumologic.scala.collector.Collector.main(Collector.scala)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.tanukisoftware.wrapper.WrapperSimpleApp.run(WrapperSimpleApp.java:290)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
    at sun.security.ssl.InputRecord.read(Unknown Source)
    ... 40 more

Если я открываю powershell и выполняю завиток на 'service.au.sumologic. com ', это работает ...

PS > curl https://service.au.sumologic.com


StatusCode        : 200
StatusDescription : OK
Content           : <html>
                    <body>
                    <h2>Tweep</h2>
                    </body>
                    </html>
RawContent        : HTTP/1.1 200 OK
                    Strict-Transport-Security: max-age=15552000
                    X-Content-Type-Options: nosniff
                    X-Frame-Options: SAMEORIGIN
                    X-XSS-Protection: 1; mode=block
                    Connection: keep-alive
                    Accept-Ranges: byte...
Forms             : {}
Headers           : {[Strict-Transport-Security, max-age=15552000], [X-Content-Type-Options, nosniff],
                    [X-Frame-Options, SAMEORIGIN], [X-XSS-Protection, 1; mode=block]...}
Images            : {}
InputFields       : {}
Links             : {}
ParsedHtml        : System.__ComObject
RawContentLength  : 44

В моем журнале squid access.log я вижу:

1470638115.212    164 172.26.192.122 TAG_NONE/200 0 CONNECT 54.252.91.36:443 - HIER_NONE/- -

это service.au.sumologic.com ....

Я что-то пропустил в своей конфигурации squid?

Конфигурация Squid

visible_hostname squid

http_port 3129 intercept
acl allowed_http_sites dstdomain .amazonaws.com
acl allowed_http_sites dstdomain .newrelic.com
acl allowed_http_sites dstdomain .windowsupdate.com
acl allowed_http_sites dstdomain .microsoft.com
acl allowed_http_sites dstdomain ocsp.comodoca.com
acl allowed_http_sites dstdomain crl.usertrust.com
acl allowed_http_sites dstdomain ocsp.globalsign.com
acl allowed_http_sites dstdomain crl.globalsign.net


http_access allow allowed_http_sites

https_port 3130 ssl-bump intercept connection-auth=off generate-host-certificates=on dynamic_cert_mem_cache_size=8MB cert=/etc/squid/ssl/squid.pem key=/etc/squid/ssl/squid.key c$acl SSL_port port 443
http_access allow SSL_port
acl allowed_https_sites ssl::server_name .amazonaws.com
acl allowed_https_sites ssl::server_name .newrelic.com
acl allowed_https_sites ssl::server_name .microsoft.com
acl allowed_https_sites ssl::server_name .windowsupdate.com
acl allowed_https_sites ssl::server_name .sumologic.com
acl allowed_https_sites ssl::server_name .datadoghq.com

sslproxy_cert_error allow all

acl NoSSLIntercept ssl::server_name_regex -i "/etc/squid/url.nobump"
acl step1 at_step SslBump1
acl step2 at_step SslBump2
acl step3 at_step SslBump3
ssl_bump peek step1 all
ssl_bump peek step2 allowed_https_sites
ssl_bump peek step2 NoSSLIntercept
ssl_bump splice step1 NoSSLIntercept
ssl_bump splice step3 allowed_https_sites
ssl_bump terminate step2 all

http_access deny all
0
задан 8 August 2016 в 10:15
2 ответа

Строка access.log - это TCP-соединение, пришедшее и принятое для начала процесса бампинга.

Ваши правила ssl_bump говорят подглядывать на шаг 1, а затем прерываться на шаг 2, если только клиент не послал значение TLS SNI, содержащее одно из нескольких имен серверов из белого списка на одном из сайтов allow_https_sites или NoSSLIntercept ACLs.

Похоже, что Java-приложение либо не посылает SNI, либо посылает значение не из белого списка. Также происходит сбой при неудаче TLS (завершается другой конечной точкой)

.
0
ответ дан 24 November 2019 в 13:20

проверьте статус selinux

попробуйте следующую команду

getenforce

изменить на "Permissive"

-2
ответ дан 24 November 2019 в 13:20

Теги

Похожие вопросы