使用 Proxy 伺服器的一般方式如下:網頁瀏覽器會將要求傳送至 Proxy 伺服器中的某個埠,而且 Proxy 會提供這些需要的物件,不論它們是否在其快取中。使用網路工作時,可能會發生數種狀況:
基於安全理由,建議所有的用戶端都使用 Proxy 瀏覽網際網路。
所有的用戶端都必須使用 Proxy,不論它們是否注意到它。
雖然 Proxy 在網路上是變動的,但現有的用戶端應該保留其舊有的組態。
在所有的例子中,都可使用操作順暢的 Proxy。其原則非常容易:Proxy 會攔截和回應網頁瀏覽器的要求,因此網頁瀏覽器不必知道頁面的來源,即可收到要求的頁面。如名稱所示,整個程序會流暢地執行。
在 /etc/squid/squid.conf 檔案中啟動選項,以啟動和執行操作順暢的 Proxy:
httpd_accel_host virtual
httpd_accel_port 80
實際 HTTP 伺服器所在的埠號
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
現在,請使用埠轉送規則的協助,透過防火牆將所有接收的要求,重新導向至 Squid 埠。若要這麼做,請使用 節 4.1.4.1, "使用 YaST 設定" 中說明的隨附工具 SuSEfirewall2。在 /etc/sysconfig/SuSEfirewall2 中可以找到其組態檔。組態檔是由有依據的項目所組成。若要設定操作順暢的 Proxy,您必須設定數個防火牆選項:
指向網際網路的裝置:FW_DEV_EXT="eth1"
指向網路的裝置:FW_DEV_INT="eth0"
定義防火牆上,供不受信任的 (外部) 網路 (如網際網路) 存取的埠與服務 (請參閱 /etc/services)。在此範例中,僅提供對外的 Web 服務:
FW_SERVICES_EXT_TCP="www"
在從安全 (內部) 網路存取的防火牆上,定義埠或服務 (請參閱 /etc/services),兩者都是透過 TCP 與 UDP 服務:
FW_SERVICES_INT_TCP="domain www 3128" FW_SERVICES_INT_UDP="domain"
這裡允許存取 Web 服務與 Squid (其預設埠為 3128)。"domain" 服務代表 DNS (領域名稱服務)。這個服務受到普遍的使用。否則,請直接將它從上述項目移除,並將下列選項設為 no:
FW_SERVICE_DNS="yes"
最重要的選項是選項數字 15:
範例 29.1. 防火牆組態:選項 15
# 15.) # Which accesses to services should be redirected to a local port # on the firewall machine? # # This can be used to force all internal users to surf via your # Squid proxy, or transparently redirect incoming Web traffic to # a secure Web server. # # Choice: leave empty or use the following explained syntax of # redirecting rules, separated with spaces. # A redirecting rule consists of 1) source IP/net, # 2) destination IP/net, 3) original destination port and # 4) local port to redirect the traffic to, separated by a colon, # e.g. "10.0.0.0/8,0/0,80,3128 0/0,172.20.1.1,80,8080"
上方的註解顯示要遵照的語法。首先,輸入存取 Proxy 防火牆的內部網路之 IP 位址與網路遮罩。其次,輸入這些用戶端傳送其要求的 IP 位址與網路遮罩。如果是網頁瀏覽器,請將網路指定為 0/0,萬用字元表示「可到任何位置」。之後,輸入這些要求所傳送的原始目的埠,最後,輸入重新導向所有這些要求的目的埠。由於 Squid 支援 HTTP 以外的通訊協定,請將其他埠的要求重新導向 Proxy,例如 FTP (埠 21)、HTTPS、或 SSL (埠 443)。在此範例中,Web 服務 (埠 80) 會重新導向至 Proxy 埠 (埠 3128)。如果需要新增更多的網路或服務,必須在各個項目中以空格隔開。
FW_REDIRECT_TCP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128" FW_REDIRECT_UDP="192.168.0.0/16,0/0,80,3128 192.168.0.0/16,0/0,21,3128"
若要啟動防火牆並使用它所包含的新組態,請在 /etc/sysconfig/SuSEfirewall2 檔案中變更項目。START_FW 項目必須設為 "yes"。
啟動 Squid,如 節 29.3, "啟動 Squid" 所示。若要檢查每個項目是否能正常運作,請檢查在 /var/log/squid/access.log 中的 Squid 記錄。 若要確認是否已正確設定所有的埠,請從您網路之外的任何電腦對機器執行埠掃描。結果應該只開啟 Web 服務 (埠 80)。若要以 nmap 掃描埠,指令語法為 nmap -O IP_address。