這裡示範在 Ubuntu Linux 中安裝與整合 Squid、Privoxy 與 Tor,架設一個匿名的網頁代理伺服器。
Squid 是一套很普遍被使用的代理伺服器(proxy server),若想要讓 Squid 提供匿名上網的功能,可以在後端接上 Privoxy 與 Tor,透過洋蔥路由達到匿名上網的功能,以下是在一台 Ubuntu Linux 中安裝與整合 Squid、Privoxy 與 Tor 的步驟。
這是系統的架構圖:
安裝 Tor 與 Privoxy 伺服器
請參考使用 Tor 與 Privoxy 架設匿名網頁代理伺服器的說明,將 Tor 與 Privoxy 伺服器架設起來,然後調整一下伺服器的設定,方便介接 Squid。
Tor 設定
Tor 一樣是使用預設的設定,所以不用特別更動,只要確認 Tor 服務有正常啟動即可。
service tor status
Privoxy 設定
設定與 Tor 整合的部分,讓所有的對外連線導向至 Tor 的連接埠,預設是本機的 9050
:
# 對外透過 Tor 連線
forward-socks5t / 127.0.0.1:9050 .
傾聽的連接埠只需要開一個本機連接埠就夠了(保持預設狀態):
# 僅允許來自於本機的連線
listen-address 127.0.0.1:8118
設定好之後,重新啟動 Privoxy:
sudo service privoxy restart
安裝 Squid
使用 apt 安裝 Squid 伺服器:
sudo apt-get install squid
編輯 /etc/squid3/squid.conf
設定檔,調整一些設定。首先隱藏 Squid 的版本資訊:
# 在 HTTP 表頭與錯誤訊息頁面中隱藏 Squid 版本資訊 httpd_suppress_version_string on
刪除 X-Forwarded-For
這一個 HTTP 表頭欄位,讓使用者的 IP 位址不要暴露出去:
# 讓 HTTP 表頭的 X-Forwarded-For 不要顯示使用者的 IP 位址 forwarded_for delete
讓 FTP 的連線不要透過 Privoxy 與 Tor:
# 讓 FTP 直接連線 always_direct allow ftp
一般的連線全部都透過 Privoxy 與 Tor 匿名上網:
# 一般連線皆透過 Privoxy 與 Tor 上網 never_direct allow all
透過 cache_peer
連接至本機的 Privoxy:
# 連接至 Privoxy cache_peer 127.0.0.1 parent 8118 7 no-query no-digest
設定允許使用 Squid 伺服器的的使用者來源:
# 設定允許的使用者來源 #http_access allow localhost #http_access deny all http_access allow all
測試
在瀏覽器中將代理伺服器設定為這裡的 Squid 伺服器。
開啟 Tor 的檢測網頁,測試看看瀏覽器是否真的有使用 Tor 上網:
參考資料:squid-cache wiki、vpsget、HowtoForge