對這文章發表回應
發表限制: 非會員 可以發表
發表者: 冷日 發表時間: 2005/2/19 20:05:36
作者: kenduest (小州) 站內: LinuxNetwork
標題: [文件]iptables/chains + squid transparent proxy
時間: Sun Jul 1 08:32:08 2001
transparent proxy,簡單說,就是透通性 proxy,clint 存取 web port時,gateway 能夠把這個 request 導向給 proxy server,由 proxyserver 代為 proxy 抓資料,然後會應給 client 。(註: 一般用在 web的 proxy)
transparent proxy 好處就是,client 不用特定設定 proxy,可以暗自由 gateway 達成這個目的。整體就是能夠因為 proxy 的機制,對於web 瀏覽部份能夠避免重複抓取相同的資料,省下大量的頻寬。
transparent proxy,當然需要一台 proxy 主機幫忙。這裡的環境就是:
-- 一台 Linux 主機,提供 nat 功能,上面同時跑 squid proxy 服務
於 3128 port 。 eth0 對外,eth1 對內。
squid.conf 需要先設定好,以便於可能使用 transparent proxy 機制。
httpd_accel_host proxy.xxx.com.tw
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
(see: http://www.squid-cache.org/Doc/FAQ/FAQ-15.html#ss15.4 )
上面的 proxy.xxx.com.tw 請改成該 proxy 主機名稱。
接著是 nat、transparent proxy 機制設定。以 kernel 2.2 來說,是這般設定:
ipchains -A input -i eth1 -p tcp -s xxx.xxx.xxx.xxx/netmask -d 0/0
--dport 80 -j REDIRECT 3128
ipchains -A forward -i eth0 -s xxx.xxx.xxx.xxx/netmask -d 0/0 -j MASQ
設定好後,只要是 xxx.xxx.xxx.xxx 這些 private ip 對外發出port 80 的 request 後,就會導向給該 nat 主機上的 port 3128,由 squid cache server 代為 proxy 資料。
使用 kernel 2.4 的話:
iptables -t nat -A PREROUTING -i eth1 -p tcp -s xxx.xxx.xxx.xxx/netmask --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -s xxx.xxx.xxx.xxx/netmask -j MASQUERADE
標題: [文件]iptables/chains + squid transparent proxy
時間: Sun Jul 1 08:32:08 2001
transparent proxy,簡單說,就是透通性 proxy,clint 存取 web port時,gateway 能夠把這個 request 導向給 proxy server,由 proxyserver 代為 proxy 抓資料,然後會應給 client 。(註: 一般用在 web的 proxy)
transparent proxy 好處就是,client 不用特定設定 proxy,可以暗自由 gateway 達成這個目的。整體就是能夠因為 proxy 的機制,對於web 瀏覽部份能夠避免重複抓取相同的資料,省下大量的頻寬。
transparent proxy,當然需要一台 proxy 主機幫忙。這裡的環境就是:
-- 一台 Linux 主機,提供 nat 功能,上面同時跑 squid proxy 服務
於 3128 port 。 eth0 對外,eth1 對內。
squid.conf 需要先設定好,以便於可能使用 transparent proxy 機制。
httpd_accel_host proxy.xxx.com.tw
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
(see: http://www.squid-cache.org/Doc/FAQ/FAQ-15.html#ss15.4 )
上面的 proxy.xxx.com.tw 請改成該 proxy 主機名稱。
接著是 nat、transparent proxy 機制設定。以 kernel 2.2 來說,是這般設定:
ipchains -A input -i eth1 -p tcp -s xxx.xxx.xxx.xxx/netmask -d 0/0
--dport 80 -j REDIRECT 3128
ipchains -A forward -i eth0 -s xxx.xxx.xxx.xxx/netmask -d 0/0 -j MASQ
設定好後,只要是 xxx.xxx.xxx.xxx 這些 private ip 對外發出port 80 的 request 後,就會導向給該 nat 主機上的 port 3128,由 squid cache server 代為 proxy 資料。
使用 kernel 2.4 的話:
iptables -t nat -A PREROUTING -i eth1 -p tcp -s xxx.xxx.xxx.xxx/netmask --dport 80 -j REDIRECT --to-ports 3128
iptables -t nat -A POSTROUTING -o eth0 -s xxx.xxx.xxx.xxx/netmask -j MASQUERADE