<div dir="ltr"><div><div><div><div><div>Scenario :  I want to block certain HTTPS website using SSL Bump and without installing any SSL Certificate on Clients End as I will be distributing this Same Network for Mobile Devices so I don't want to keep installing certificate in each Mobile Device like Android / IOS / Windows etc phones .......<br> <br></div><b>I have installed Squid 3.5.13 and we have Broadband Connection with speed 50 Mb/sec. I have gone through lots of document where I found that we can Block Https Traffic without installing Certificate by enabling Peek & Splice feature.</b> <br><br></div>------------------- Below is the Configuration file of Squid ---------------------------------------<br><br># -------------------------------------<br># Access Control Lists<br># -------------------------------------<br>acl localnet src <a href="http://192.168.0.0/24">192.168.0.0/24</a>    # RFC1918 possible internal network<br><br>acl SSL_ports port 443<br>acl SSL_ports port 8443        # Telecom exclusion<br>acl Safe_ports port 80        # http<br>acl Safe_ports port 21        # ftp<br>acl Safe_ports port 443        # https<br>acl Safe_ports port 70        # gopher<br>acl Safe_ports port 210        # wais<br>acl Safe_ports port 280        # http-mgmt<br>acl Safe_ports port 488        # gss-http<br>acl Safe_ports port 591        # filemaker<br>acl Safe_ports port 777        # multiling http<br><br># Common methods<br>acl CONNECT method CONNECT<br>acl PURGE method PURGE<br>acl GET method GET<br><br># Windows update acls<br>acl windowsupdate dstdomain <a href="http://sls.update.microsoft.com.akadns.net">sls.update.microsoft.com.akadns.net</a><br>acl windowsupdate dstdomain <a href="http://windowsupdate.microsoft.com">windowsupdate.microsoft.com</a><br>acl windowsupdate dstdomain .<a href="http://update.microsoft.com">update.microsoft.com</a><br>acl windowsupdate dstdomain <a href="http://download.windowsupdate.com">download.windowsupdate.com</a><br>acl windowsupdate dstdomain <a href="http://redir.metaservices.microsoft.com">redir.metaservices.microsoft.com</a><br>acl windowsupdate dstdomain <a href="http://images.metaservices.microsoft.com">images.metaservices.microsoft.com</a><br>acl windowsupdate dstdomain <a href="http://c.microsoft.com">c.microsoft.com</a><br>acl windowsupdate dstdomain <a href="http://www.download.windowsupdate.com">www.download.windowsupdate.com</a><br>acl windowsupdate dstdomain <a href="http://wustat.windows.com">wustat.windows.com</a><br>acl windowsupdate dstdomain <a href="http://crl.microsoft.com">crl.microsoft.com</a><br>acl windowsupdate dstdomain <a href="http://sls.microsoft.com">sls.microsoft.com</a><br>acl windowsupdate dstdomain <a href="http://productactivation.one.microsoft.com">productactivation.one.microsoft.com</a><br>acl windowsupdate dstdomain <a href="http://ntservicepack.microsoft.com">ntservicepack.microsoft.com</a><br><br># Windows update methods<br>acl wuCONNECT dstdomain <a href="http://www.update.microsoft.com">www.update.microsoft.com</a><br>acl wuCONNECT dstdomain <a href="http://sls.microsoft.com">sls.microsoft.com</a><br><br><br># SSL bump acl<br>acl net_bump src "/etc/squid/net.bump"<br><br># TLD acl<br>acl block_tld dstdomain "/etc/squid/dstdom.tld"<br><br># -------------------------------------<br># Access parameters<br># -------------------------------------<br># Deny requests to unsafe ports<br>http_access deny !Safe_ports<br># Deny CONNECT to other than SSL ports<br>http_access deny CONNECT !SSL_ports<br><br># Only allow cachemgr access from localhost<br>http_access allow localhost manager<br>http_access deny manager<br>http_access deny to_localhost<br># Allow purge from localhost<br>http_access allow PURGE localhost<br>http_access deny PURGE<br><br># Normalize Accept-Encoding to support compression via eCAP<br>request_header_access Accept-Encoding deny all<br>request_header_replace Accept-Encoding gzip;q=1.0, identity;q=0.5, *;q=0<br># Disable alternate protocols<br>request_header_access Alternate-Protocol deny all<br>reply_header_access Alternate-Protocol deny all<br># Disable HSTS<br>reply_header_access Strict-Transport-Security deny all<br>reply_header_replace Strict-Transport-Security max-age=0; includeSubDomains<br># Remove User-Agent from Vary<br>reply_header_access Vary deny all<br>reply_header_replace Vary Accept-Encoding<br># Workaround 4253<br>request_header_access Surrogate-Capability deny all<br><br># Block top level domains<br>http_access deny block_tld<br>deny_info TCP_RESET block_tld<br><br># Rule allowing access from local networks<br>http_access allow localnet<br>http_access allow localhost<br><br><br># ICP/HTCP access<br>icp_access allow localnet<br>icp_access deny all<br>htcp_access allow localnet<br>htcp_access deny all<br><br># 302 loop<br>acl text_mime rep_mime_type text/html text/plain<br>acl http302 http_status 302<br>store_miss deny text_mime http302<br>send_hit deny text_mime http302<br><br># Windows updates rules<br>http_access allow CONNECT wuCONNECT localnet<br>http_access allow CONNECT wuCONNECT localhost<br>http_access allow windowsupdate localnet<br>http_access allow windowsupdate localhost<br><br># SSL bump rules<br>acl DiscoverSNIHost at_step SslBump1<br># ICQ/MRA must splice first<br>acl NoSSLIntercept ssl::server_name_regex -i "/etc/squid/url.nobump"<br>ssl_bump splice NoSSLIntercept<br>ssl_bump bump net_bump<br>#ssl_bump terminate deny_https_sites<br>#ssl_bump peek all<br>acl tls_s3_server_hello at_step SslBump3<br><br># TLS/SSL bumping steps<br>ssl_bump peek   tls_s1_connect      all      # peek at the incoming TLS/SSL connect data<br>ssl_bump splice all                          # splice the stream: pass-through mode<br><br># And finally deny all other access to this proxy<br>http_access deny all<br><br># -------------------------------------<br># HTTP parameters<br># -------------------------------------<br># Local Privoxy is cache parent<br>cache_peer 127.0.0.1 parent 8118 0 no-query no-digest default<br><br>cache_peer_access 127.0.0.1 deny all<br><br># Don't cache 404 long time<br>negative_ttl 5 minutes<br>positive_dns_ttl 15 hours<br>negative_dns_ttl 1 minutes<br><br># -------------------------------------<br># Cache parameters<br># -------------------------------------<br># dhparams is before squid-3.5.12-20151222-r13967<br># tls-dh is AFTER squid-3.5.12-20151222-r13967<br>#http_port 3126 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_certs/squid.crt key=/etc/squid/ssl_certs/squid.key options=NO_SSLv3 tls-dh=/etc/squid/dhparam.pem<br>http_port 3127<br>http_port 3128 intercept<br># dhparams is before squid-3.5.12-20151222-r13967<br># tls-dh is AFTER squid-3.5.12-20151222-r13967<br>https_port 3129 intercept ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_certs/squid.crt key=/etc/squid/ssl_certs/squid.key options=NO_SSLv3 tls-dh=/etc/squid/dhparam.pem<br>sslproxy_capath /etc/ssl/certs<br># SINGLE_DH_USE is 3.5 before squid-3.5.12-20151222-r13967<br>#sslproxy_options NO_SSLv3,SINGLE_DH_USE<br># SINGLE_ECDH_USE is AFTER squid-3.5.12-20151222-r13967<br>sslproxy_options NO_SSLv3,SINGLE_ECDH_USE<br>sslproxy_cipher EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA+RC4:EECDH:EDH+aRSA:HIGH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS<br>sslcrtd_program /usr/lib/squid/ssl_crtd -s /var/lib/squid/ssl_db -M 4MB<br><br># Specify ICP/HTCP explicity<br>icp_port 3130<br>htcp_port 4827<br><br># Cache manager<br>cache_mgr <a href="mailto:mymail@gmail.com">mymail@gmail.com</a><br><br><br><br># Forces reload-into-ims<br>reload_into_ims on<br><br># Hide internal networks details outside<br>via off<br>forwarded_for delete<br><br># Do not show Squid version<br>httpd_suppress_version_string on<br><br><br># Prioritization of local hits<br>qos_flows tos local-hit=0x68<br><br># Specify local DNS cache<br>dns_nameservers 8.8.8.8<br><br>dns_v4_first on<br>ipcache_size 4096<br><br><br># -------------------------------------<br># Memory parameters<br># -------------------------------------<br>cache_mem 512 Mb<br><br>#memory_pools off<br><br>maximum_object_size_in_memory 1 MB<br><br># -------------------------------------<br># Tuning parameters<br># -------------------------------------<br>memory_replacement_policy heap LRU<br>cache_replacement_policy heap LFUDA<br><br>store_avg_object_size 85 KB<br># Default is 20<br>store_objects_per_bucket 32<br><br># Shutdown delay before terminate connections<br>shutdown_lifetime 15 second<br><br># SMP<br>#workers 2<br><br># -------------------------------------<br># Store parameters<br># -------------------------------------<br>maximum_object_size 8 Gb<br><br>cache_dir aufs /usr/local/cache 250000 16 256<br><br># -------------------------------------<br># Process/log parameters<br># -------------------------------------<br>#logformat my_squid %tl %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt<br>#access_log daemon:/data/cache/log/access.log buffer-size=256KB<br>access_log daemon:/var/log/squid/access.log buffer-size=256KB<br># Don't log ICP queries<br>log_icp_queries off<br><br># Turn off internal log rotation<br>logfile_rotate 0<br><br>cache_log /var/log/squid/cache.log<br>#cache_log /data/cache/log/cache${process_number}.log<br>cache_store_log none<br><br># Default is off<br>buffered_logs on<br><br>coredump_dir /var/core<br><br>pid_filename /tmp/squid.pid<br><br>strip_query_terms off<br><br># -------------------------------------<br># Content parameters<br># -------------------------------------<br>#range_offset_limit none store_rewrite_list<br>#range_offset_limit none store_rewrite_list_web<br>#range_offset_limit none store_rewrite_list_web_cdn<br>#range_offset_limit none adobe_java_updates<br>#range_offset_limit none windowsupdate<br>range_offset_limit none all<br><br># Updates: Windows, Adobe, Java<br>refresh_pattern -i microsoft.com.*\.(cab|exe|ms[i|u|f|p]|asf|wm[v|a]|dat|zip)    4320 80% 43200    reload-into-ims<br>refresh_pattern -i windowsupdate.com.*\.(cab|exe|ms[i|u|f|p]|asf|wm[v|a]|dat|zip)    4320 80% 43200    reload-into-ims<br>refresh_pattern -i my.windowsupdate.website.com.*\.(cab|exe|ms[i|u|f|p]|asf|wm[v|a]|dat|zip) 4320 80% 43200    reload-into-ims<br>refresh_pattern -i adobe.com.*\.(zip|exe)    4320    80%    43200 reload-into-ims<br>refresh_pattern -i java.com.*\.(zip|exe)    4320    80%    43200 reload-into-ims<br>refresh_pattern -i sun.com.*\.(zip|exe)        4320    80%    43200 reload-into-ims<br>refresh_pattern -i google\.com.*\.(zip|exe)    4320    80%    43200 reload-into-ims<br>refresh_pattern -i macromedia\.com.*\.(zip|exe)    4320    80% 43200    reload-into-ims<br># Other setups and updates<br>refresh_pattern -i \.(zip|(g|b)z2?|exe|msi|cvd)$    4320    80% 43200    reload-into-ims<br># Cacle squidinternal<br>refresh_pattern -i video-srv\.youtube\.squidinternal    0    0%    0<br>refresh_pattern -i squidinternal    14400    100%    518400 override-expire override-lastmod refresh-ims reload-into-ims ignore-private ignore-auth ignore-must-revalidate store-stale ignore-no-store<br># Keep swf in cache<br>refresh_pattern -i \.swf$    10080    100%    43200    override-expire reload-into-ims ignore-private<br># .NET cache<br>refresh_pattern -i \.((a|m)s(h|p)x?)$        10080    100%    43200 reload-into-ims ignore-private<br># Other long-lived items<br>refresh_pattern -i \.(jp(e?g|e|2)|gif|png|bmp|ico|svg|web(p|m)|wm(v|a)|flv|f4f|mp(3|4)|ttf|eot|woff2?|(c|x|j)ss|js(t?|px?))(\?.*)?$ 14400    100%    518400    override-expire override-lastmod reload-into-ims ignore-private ignore-no-store ignore-must-revalidate<br>refresh_pattern -i \.((cs|d?|m?|p?|r?|s?|w?|x?|z?)h?t?m?(l?)|php(3?|5?)|rss|atom|vr(t|ml))(\?.*)?$ 10080    100%    86400    override-expire override-lastmod reload-into-ims ignore-private ignore-no-store ignore-must-revalidate<br># Default patterns<br>refresh_pattern -i (/cgi-bin/|\?)    0    0%    0<br>refresh_pattern    .    0    20%    4320    reload-into-ims<br><br></div>------------------------- Squid Configuration End ----------------------------------------------<br><br></div>When we give Network Connection Dirtectly through the Router then Internet is working fine but when we pass the Network through Squid the Internet work very slow .......<br><br><br></div>---------------- IPTables ---------------------<br><br>Chain PREROUTING (policy ACCEPT 25461 packets, 3444K bytes)<br> pkts bytes target     prot opt in     out     source               destination         <br>  996 55869 DNAT       tcp  --  eth1   *       <a href="http://0.0.0.0/0">0.0.0.0/0</a>            <a href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:80 to:<a href="http://192.168.0.200:3128">192.168.0.200:3128</a><br>    0     0 REDIRECT   tcp  --  eth0   *       <a href="http://0.0.0.0/0">0.0.0.0/0</a>            <a href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:80 redir ports 3128<br> 3597  211K DNAT       tcp  --  eth1   *       <a href="http://0.0.0.0/0">0.0.0.0/0</a>            <a href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:443 to:<a href="http://192.168.0.200:3129">192.168.0.200:3129</a><br>    0     0 REDIRECT   tcp  --  eth0   *       <a href="http://0.0.0.0/0">0.0.0.0/0</a>            <a href="http://0.0.0.0/0">0.0.0.0/0</a>            tcp dpt:443 redir ports 3129<br><br>Chain INPUT (policy ACCEPT 11351 packets, 1166K bytes)<br> pkts bytes target     prot opt in     out     source               destination         <br><br>Chain OUTPUT (policy ACCEPT 2490 packets, 154K bytes)<br> pkts bytes target     prot opt in     out     source               destination         <br><br>Chain POSTROUTING (policy ACCEPT 2490 packets, 154K bytes)<br> pkts bytes target     prot opt in     out     source               destination         <br>10029 1452K MASQUERADE  all  --  *      eth0    <a href="http://192.168.0.0/24">192.168.0.0/24</a>       <a href="http://0.0.0.0/0">0.0.0.0/0</a> <br><br><div>---------------------------------------------------------------------------------------------------------------------------------<br></div><div>Access Logs: <br>1463478680.312  33025 192.168.0.66 TCP_TUNNEL/200 3865 CONNECT <a href="http://216.58.199.165:443">216.58.199.165:443</a> - ORIGINAL_DST/<a href="http://216.58.199.165">216.58.199.165</a> -<br>1463478680.317  27194 192.168.0.66 TCP_TUNNEL/200 641 CONNECT <a href="http://216.58.220.4:443">216.58.220.4:443</a> - ORIGINAL_DST/<a href="http://216.58.220.4">216.58.220.4</a> -<br>1463478680.318  27195 192.168.0.66 TCP_TUNNEL/200 872 CONNECT <a href="http://216.58.199.142:443">216.58.199.142:443</a> - ORIGINAL_DST/<a href="http://216.58.199.142">216.58.199.142</a> -<br>1463478680.323  27096 192.168.0.66 TCP_TUNNEL/200 823 CONNECT <a href="http://216.58.199.142:443">216.58.199.142:443</a> - ORIGINAL_DST/<a href="http://216.58.199.142">216.58.199.142</a> -<br>1463478680.376  27266 192.168.0.66 TCP_TUNNEL/200 1912 CONNECT <a href="http://74.125.200.189:443">74.125.200.189:443</a> - ORIGINAL_DST/<a href="http://74.125.200.189">74.125.200.189</a> -<br>1463478680.528   5110 192.168.0.66 TCP_TUNNEL/200 17448 CONNECT <a href="http://125.99.55.72:443">125.99.55.72:443</a> - ORIGINAL_DST/<a href="http://125.99.55.72">125.99.55.72</a> -<br>1463478680.528   4772 192.168.0.66 TCP_TUNNEL/200 1358 CONNECT <a href="http://95.101.34.18:443">95.101.34.18:443</a> - ORIGINAL_DST/<a href="http://95.101.34.18">95.101.34.18</a> -<br>1463478680.528   3707 192.168.0.66 TCP_TUNNEL/200 1172 CONNECT <a href="http://31.13.79.246:443">31.13.79.246:443</a> - ORIGINAL_DST/<a href="http://31.13.79.246">31.13.79.246</a> -<br>1463478680.528   5178 192.168.0.66 TCP_TUNNEL/200 44054 CONNECT <a href="http://184.86.250.32:443">184.86.250.32:443</a> - ORIGINAL_DST/<a href="http://184.86.250.32">184.86.250.32</a> -<br>1463478680.528  29346 192.168.0.66 TCP_TUNNEL/200 439 CONNECT <a href="http://216.58.199.142:443">216.58.199.142:443</a> - ORIGINAL_DST/<a href="http://216.58.199.142">216.58.199.142</a> -<br>1463478680.556   9869 192.168.0.66 TCP_TUNNEL/200 58963 CONNECT <a href="http://216.58.220.3:443">216.58.220.3:443</a> - ORIGINAL_DST/<a href="http://216.58.220.3">216.58.220.3</a> -<br>1463478680.556  31783 192.168.0.66 TCP_TUNNEL/200 1073 CONNECT <a href="http://216.58.220.4:443">216.58.220.4:443</a> - ORIGINAL_DST/<a href="http://216.58.220.4">216.58.220.4</a> -<br>1463478680.584   6543 192.168.0.66 TCP_TUNNEL/200 193204 CONNECT <a href="http://31.13.79.220:443">31.13.79.220:443</a> - ORIGINAL_DST/<a href="http://31.13.79.220">31.13.79.220</a> -<br>1463478680.702    223 192.168.0.66 TCP_TUNNEL/200 206 CONNECT <a href="http://31.13.79.220:443">31.13.79.220:443</a> - ORIGINAL_DST/<a href="http://31.13.79.220">31.13.79.220</a> -<br>1463478681.710   1216 192.168.0.66 TCP_TUNNEL/200 587 CONNECT <a href="http://216.58.199.165:443">216.58.199.165:443</a> - ORIGINAL_DST/<a href="http://216.58.199.165">216.58.199.165</a> -<br>1463478681.775   1369 192.168.0.66 TCP_TUNNEL/200 587 CONNECT <a href="http://74.125.130.189:443">74.125.130.189:443</a> - ORIGINAL_DST/<a href="http://74.125.130.189">74.125.130.189</a> -<br>1463478685.128     37 192.168.0.66 TCP_TUNNEL/200 267 CONNECT <a href="http://125.99.55.75:443">125.99.55.75:443</a> - ORIGINAL_DST/<a href="http://125.99.55.75">125.99.55.75</a> -<br>1463478686.862     40 192.168.0.66 TCP_REFRESH_MODIFIED/200 539 GET <a href="http://kerastasesalonlocator.com/">http://kerastasesalonlocator.com/</a> - ORIGINAL_DST/<a href="http://103.21.58.154">103.21.58.154</a> text/html<br>1463478686.880      5 192.168.0.66 TCP_MISS_ABORTED/000 0 GET <a href="http://kerastasesalonlocator.com/cgi-sys/defaultwebpage.cgi">http://kerastasesalonlocator.com/cgi-sys/defaultwebpage.cgi</a> - ORIGINAL_DST/<a href="http://103.21.58.154">103.21.58.154</a> -<br>-----------------------------------------------------------------------------------------------------------------------------------------<br><br><br></div><div>We have installed Squid on Ubuntu Server 14.04  Ram: 32 GB HDD: 1TB<br><br><br></div><div><b>Also I am not getting full URL for HTTPS Traffic in Access Logs ........<br><br></b></div><div>We have tried to implement Caching DNS Server (Local) but still it didn't work then we have given the Google Public DNS .......<br><br></div><div>Could you please let us know where we are doing mistake .......<br><br></div><div><br><br>Regards<br></div><div>Sagar Malve<br><br></div><div><br><br></div><div><br></div><div><br><br></div></div>