如何使用 Squid 通過 https 阻止 mime_types?
我有這個規則來阻止擴展:
acl bl_ext url_regex -i "/path_to/bl_ext.txt" http_access deny workdays bl_ext
範例內容文件“bl_ext.txt”:
\.avi([a-zA-Z][0-9]*)?(\?.*)?$ \.m4a([a-zA-Z][0-9]*)?(\?.*)?$ \.m4r([a-zA-Z][0-9]*)?(\?.*)?$ \.m4v([a-zA-Z][0-9]*)?(\?.*)?$ \.mid([a-zA-Z][0-9]*)?(\?.*)?$ \.mov([a-zA-Z][0-9]*)?(\?.*)?$ \.mp3([a-zA-Z][0-9]*)?(\?.*)?$ \.mp4([a-zA-Z][0-9]*)?(\?.*)?$ \.mpeg4([a-zA-Z][0-9]*)?(\?.*)?$ \.mpeg([a-zA-Z][0-9]*)?(\?.*)?$ \.mpegps([a-zA-Z][0-9]*)?(\?.*)?$ \.mpg([a-zA-Z][0-9]*)?(\?.*)?$ #etc, etc, etc
而這條規則來阻止 mime_type:
acl bl_mt rep_mime_type -i "/path_to/bl_mt.txt" http_reply_access deny bl_mt
範例內容文件“bl_mimetype.txt”:
^audio/mp4$ ^audio/mpeg$ ^audio/wav$ ^audio/.wma$ ^audio/x-midi$ ^audio/x-mp3$ ^audio/x-mp4$ ^audio/x-mpeg$ ^audio/x-mpegurl$ ^audio/x-ms-wma$ ^audio/x-pn-realaudio$ ^audio/x-pn-realaudio-plugin$ ^audio/x-scpls$ ^audio/x-wav$ ^video/ ^video/3gpp$ ^video/avi$ ^video/flash$ ^video/flv$ ^video/mp4$ ^video/mpeg$ ^video/mpeg4$ ^video/ogg$ # etc, etc, etc
但這些規則不起作用。根據我做的分析,好像squid是https加密流量時無法阻止擴展(http only)
PD:此外,我嘗試了在網際網路上找到的這些規則,但都沒有:
acl video rep_header Content-Type video\/.* acl audio rep_header Content-Type audio\/.* http_reply_access deny video http_reply_access deny audio
和:
acl mediapr urlpath_regex \.(avi|mp4|mov|m4v|mkv|flv|mpg|mpeg|wmv|rmvb|afx|asf|swf)(\?.*)?$ acl mediaprapp url_regex dvrplayer mediastream ^mms:// http_access deny mediapr mediaprapp # Media Streams acl media rep_mime_type ^application/x-shockwave-flash$ acl media rep_mime_type ^video/x-ms-asf$ acl media rep_mime_type ^application/vnd.ms.wms-hdr.asfv1$ acl media rep_mime_type ^application/x-mms-framed$ acl media rep_mime_type ^audio/x-pn-realaudio$ acl media rep_mime_type ^video/ acl media rep_mime_type ^video\/ acl media rep_mime_type ^application/x-shockwave-flash acl media rep_mime_type ^application/vnd.ms.wms-hdr.asfv1 acl media rep_mime_type ^application/x-fcs acl media rep_mime_type ^application/x-mms-framed acl media rep_mime_type ^video/x-ms-asf acl media rep_mime_type ^audio/mpeg acl media rep_mime_type ^audio/x-scpls acl media rep_mime_type ^video/x-flv acl media rep_mime_type ^video/mpeg4 acl media rep_mime_type ms-hdr acl media rep_mime_type x-fcs acl media rep_mime_type mms acl media rep_mime_type x-ms-asf acl media rep_mime_type video/flv acl media rep_mime_type video/x-flv http_reply_access deny media
但什麼也沒有發生
有沒有辦法在代理記憶體模式(不透明 - 攔截)下通過 https(不使用 SSL Bumping)阻止 Squid 中的文件 mime_type 文件副檔名?謝謝
PD:如果這肯定必須通過 SSL Bump 來完成,那麼我不能。我想知道是否還有其他替代方案或其他程序(例如 ipset、fail2ban、沒有字元串規則的 iptables,因為它們不可靠等)?
SSL Bump 在 Squid HTTPS 內容上設置過濾器
要在 HTTPS 內容上設置 ACL,您需要在 Squid 中配置 SSL Bump 並將您生成的證書導入瀏覽器和/或作業系統。Firefox 有自己的證書儲存。其他瀏覽器可能會使用作業系統上的證書儲存。
來自我的 squid 代理的範例,包括有關如何生成證書的評論。NoBump.txt 文件應包含您不希望出現在中間人的域,例如銀行、一些 google 子域、paypal 和使用公鑰固定的任何其他人。
acl NoBump dstdomain -i "/etc/squid/acl/NoBump.txt" acl step1 at_step SslBump1 acl step2 at_step SslBump2 acl step3 at_step SslBump3 # vi /etc/pki/tls/openssl.cnf # edit v3_ca to allow cRLSign, keyCertSign # cd /etc/squid/ssl_cert # openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout myCA.pem -out myCA.pem # rsync -av /etc/squid/ssl_cert/myCA.pem /etc/pki/ca-trust/source/anchors/ # update-ca-trust # openssl x509 -in myCA.pem -outform DER -out myCA.der # chown squid:squid *;chmod 00400 *.pem # Firefox -> Certs -> Authorities -> Import myCA.der # # You MUST first initialize the DB and chown its dir to squid:squid # AND you MUST do this (recreate the DB) any time you change the CA certifiate. # # rm -Rf /var/lib/ssl_db # /usr/lib64/squid/ssl_crtd -c -s /var/lib/ssl_db -M 96MB # chown -R squid:squid /var/lib/ssl_db # restorecon -F -R -v /var/lib/ssl_db # sslcrtd_program /usr/lib64/squid/ssl_crtd -s /var/lib/ssl_db -M 96MB sslcrtd_children 132 startup=32 idle=32 # http_port 192.168.1.1:3128 ssl-bump cert=/etc/squid/ssl_cert/myCA.pem generate-host-certificates=on dynamic_cert_mem_cache_size=32 MB version=1 host_verify_strict off sslproxy_cafile /etc/ssl/certs/ca-bundle.crt sslproxy_cert_error allow all sslproxy_flags DONT_VERIFY_PEER #sslproxy_options NO_SSLv2,NO_SSLv3,SINGLE_DH_USE sslproxy_options ALL sslproxy_session_cache_size 64 MB ssl_bump peek step1 ssl_bump peek step2 NoBump ssl_bump splice step3 NoBump ssl_bump bump all always_direct allow all
這只是一個例子。最好在**Squid 的網站**上閱讀這些選項和完成此操作的不同方法,因為這會隨著 Squid 的較新版本而改變,並且可能會根據您使用的 Squid 版本而有所不同。特別要注意host_verify_strict,因為您可能希望根據您計劃通過此代理訪問的站點來進行。您必須添加從評論中生成的證書並導入瀏覽器和/或作業系統的證書儲存區。