实战ssl-bump,实现squid的url过滤功能

使用代理服务器squid,想实现url过滤,禁止访问某个url,我们自然就想到了使用url_regex,可以使用正则对url进行过滤

比如说我们要禁止使用百度搜索,可使用下面的过滤

acl deny_url  url_regex //www\.baidu\.com/s
http_access deny deny_url

但是实际运行发现这个功能对https网站不起作用,对于https网站,url只能得到www.baidu.com:443这样的形式,由于ssl的限制无法得到正确的url。

要得到正确的url,必须使用ssl-bump,原理自己查资料,这里只讲实际操作

参照https://wiki.squid-cache.org/ConfigExamples/Intercept/SslBumpExplicit

1.创建动态证书存放目录

cd /etc/squid
mkdir ssl_cert
chown squid:squid ssl_cert
chmod 700 ssl_cert
cd ssl_cert

2.创建自签名证书

openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 -extensions v3_ca -keyout myCA.pem  -out myCA.pem

3.创建浏览器证书

openssl x509 -in myCA.pem -outform DER -out myCA.der

4.创建并初始化证书缓存目录

/usr/lib64/squid/ssl_crtd -c -s /var/lib/ssl_db -M 4MB
chown squid:squid -R /var/lib/ssl_db

ssl_crtd 的目录可能有变化,需要自己去查找

5.设置ssl-bump对象文件

vi /etc/squid/ssl_cert/bump_sites.txt

输入

www.baidu.com

6.修改conf

http_port 8000 ssl-bump generate-host-certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid/ssl_cert/my.pem

# Bumped requests have relative URLs so Squid has to use reverse proxy
# or accelerator code. By default, that code denies direct forwarding.
# The need for this option may disappear in the future.

always_direct allow all
acl bump_sites dstdomain "/etc/squid/ssl_cert/bump_sites.txt"

#ssl_bump none broken_sites
#ssl_bump bump all
acl step1 at_step SslBump1

ssl_bump peek step1
ssl_bump bump bump_sites

启动后,文章最上面url_regex就能生效了

***********注意***********

一定要关闭selinux,否则会出错

The ssl_crtd helpers are crashing too rapidly

 

 

你可能感兴趣的:(实战ssl-bump,实现squid的url过滤功能)