1. 程式人生 > >實戰ssl-bump,實現squid的url過濾功能

實戰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