iT邦幫忙

0

proxy 設定

目前在Fedora下使用squid service架proxy server,
想請教高手,
1.如何限制使用此proxy server只能outgoing access某一網頁呢?
2.如何設定只能透過某組帳號login才能使用此proxy server?

1 個回答

8
逮丸逮丸
iT邦大師 1 級 ‧ 2009-11-12 12:00:36
最佳解答

1.如果只允單純的網域的網頁看,
只設在 squid.conf 上,可參考以下的例子:

<pre class="c" name="code">
#定義所允許看網頁的的網域
acl allok dstdomain .ithome.com.tw
#以下這一行要在其他 http_access allow 行之前
http_access deny !allok

以前試過,若有幾十組、幾百組網域才可看的話,
一行的 dstdomain 後面太長的話,會設定無效,
而需要拆成好幾組 dstdomain 來設定。

量大的話維護這些名單不方便。
而可以考量用 squidGuard 來做過濾機制。
台灣中小學校的proxy過濾,
應蠻多用 squid + squidGuard 為解決方案,
Google找一下有許多實例。

2.看您授權機制為何?
如果是用 LDAP 的話,就用指定Group的方式。
如果是 Fedora 上的帳號密碼的話,
無法去區分 /etc/shadow 上的群組,
最多只能把所允許的帳號複製出來,
格式上也要做些轉換,
缺點是密碼無法同步的問題。

如果是其他帳號密碼機制的話,
可寫簡單的認證程式,
用 auth_param basic program 指定自己所寫的認證程式。
經帳號密碼來確認 user 是否所允的 group,
再看密碼有通過,就回應 OK,否則回應 ERR。

授權機制若是使用Fedora 的帳號密碼的話,如何config?謝謝~

最簡單的設定是:
auth_param basic program /usr/lib/squid/ncsa_auth /etc/shadows
這會以整個系統的帳號密碼來認證。但不要這麼作。
再加上
acl password proxy_auth REQUIRED
才會根據上述指定的密碼檔認證。

絕對*不要*用 /etc/shadows 來做帳號密碼的檢查來源,
因/etc/shadows 只給root權限讀,apache或nobody是無法讀,
所以最好編一個檔,只複製給存取的帳號、密碼,即可。

感謝~已經設定好囉~

我要發表回答

立即登入回答