實戰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,原理自己查資料,這裡只講實際操作
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