Search squid archive

Re: Fwd: Fwd: SSLBUMP Issue with SSL websites

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12.03.2012 06:16, Amit Pasari-Xsinfoways wrote:
Dear All,
I have configured SSLBUMP in squid3.1 , in transparent mode  for port
80 and 443 .

There is no support for transparent SSL proxy in Squid-3.1.

There is support for Man-In-The-Middle (interception) of CONNECT request tunnels. With some rough and nasty ability to grab port-443 traffic at expense of a great many SSL alert popups on to the users browser.

Both the web server and browser are fully aware of what is going on. Even the user is painfully aware due to those popups several times per page loading. "transparent" it is not.


 My problem is when i open website like mail.yahoo.com or
gmail.com
it doesnt show me images , or when i open https://facebook.com
everything comes inline , no css nothing .
Where as when i configure my browser to use squid everything seems to be ok

My Details :
OS : Centos 4.8
Squid : squid3-3.1.8-1.el4

Squid 3.1.8 does not support ssl-bump. You need a minimum of 3.1.13 for that to work properly. For interception on port 443 you need the 3.2 series with dynamic certificate generation to create fake certificates on demand and reduce the popups.

<snip>
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
#http_access allow localnet
http_access allow localhost

# And finally deny all other access to this proxy
http_access allow newclient
http_access allow newclient1
http_access allow publicip
http_access deny all

# Squid normally listens to port 3128
# http_port 3128
# Amit Start

always_direct allow all
ssl_bump allow all
sslproxy_cert_error allow all
http_port 3128 intercept ssl-bump cert=/etc/squid/server.crt
key=/etc/squid/server.Key

#the below should be placed on a single line
https_port 3129 intercept ssl-bump cert=/etc/squid/server.crt
key=/etc/squid/server.Key allow-direct options=NO_SSLv2


ssl-bump is a http_port option to kick off decryption.

https_port is decrypting SSL traffic on arrival using the certificate given.

Intercepting SSL in 3.1 can only be done with the browser receiving fake certificates which they often complain about. It is very likely that the browser is setup to not report (via those annoying SSL popups) when it is having issues.


sslproxy_flags DONT_VERIFY_PEER

This allows any network your traffic flows over to perform SSL decryption and replacement of certificates in your clients traffic. Squid will not even check for bad certificates, let alone produce warnings about external people listening in on the traffic.

I hope I don't need to explain how risky that is.

I recommend not even using it for testing ssl-bump. You *want* the problems to show up so they can be identified and resolved quickly, particularly in testing.


# Amit end
# We recommend you to use at least the following line.
hierarchy_stoplist cgi-bin ? xsinfoways.com

This prevents cache_peer links being used for any URL which matches the pattern. You don't seem to have any cache_peer, so this is useless.


cache_mem 96 MB
cache_dir ufs /var/spool/squid 2000 16 256
request_body_max_size 0 KB


# Uncomment and adjust the following to add a disk cache directory.
#cache_dir ufs /var/cache/squid 100 16 256

# Leave coredumps in the first cache dir
coredump_dir /var/cache/squid

# Add any of your own refresh_pattern entries above these.
refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?) 0    0%    0
refresh_pattern .        0    20%    4320

cache_effective_user squid
cache_effective_group squid


Some Errors in cache.log :

2012/03/10 17:41:44| clientNegotiateSSL: Error negotiating SSL
connection on FD 47: error:140760FC:SSL

SSL decryption is failing to decrypt some traffic which is not SSL encrypted.

Take your pick:
 - CONNECT being used for a protocol other than HTTPS.
 - port 443 being used for a protocol without TLS or SSL encryption.


routines:SSL23_GET_CLIENT_HELLO:unknown protocol (1/-1)
2012/03/10 17:41:44| clientNegotiateSSL: Error negotiating SSL
connection on FD 47: error:140760FC:SSL
routines:SSL23_GET_CLIENT_HELLO:unknown protocol (1/-1)
2012/03/10 17:44:04| clientNegotiateSSL: Error negotiating SSL
connection on FD 127: error:140760FC:SSL
routines:SSL23_GET_CLIENT_HELLO:unknown protocol (1/-1)
2012/03/10 17:44:04| clientNegotiateSSL: Error negotiating SSL
connection on FD 128: error:140760FC:SSL
routines:SSL23_GET_CLIENT_HELLO:unknown protocol (1/-1)
2012/03/10 17:44:04| clientNegotiateSSL: Error negotiating SSL
connection on FD 127: error:140760FC:SSL
routines:SSL23_GET_CLIENT_HELLO:unknown protocol (1/-1)
2012/03/10 17:44:51| clientNegotiateSSL: Error negotiating SSL
connection on FD 21: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1
alert unknown ca (1/0)

Something strange may be going on here with this alert. Squid is _receiving_ an unknown CA certificate while negotiating with the client. It would appear that your trusted certificates list used by OpenSSL is outdated. Or possibly that the client is using a specially client certificate for stronger security (which you are promptly erasing by using ssl-bump MITM).


Amos


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux