Linux下透明代理的配置
我們都知道,Squid是一種在Linux系統下使用的優秀的代理服務器軟件。主要功能包括:正向代理,反向代理,透明代理。當然,在現在的實際應用中,squid主要承擔的是正向代理和透明代理,而反向代理很多企業選擇了Nginx,Nginx(發音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器,在這裏不再詳細的介紹。相面我主要以rhel5 作爲平臺,分享一下自己關於學習squid透明代理的一些配置,有不合適的地方,希望大家批評指正。安裝配置我就不再介紹了。
實驗環境:
代理服務器:
內網:eth1:10.1.1.1 255.255.255.0
外網:eth0:192.168.1.201 255.255.255.0 192.168.1.1
DNS:192.168.1.1
1.配置/etc/squid/squid.conf 文件。
將http_port 10.1.1.1:3128改爲http_port 10.1.1.1:3128 transparent
注意事項:由於一般情況下,代理服務器是雙網卡,因此儘量在3128前面加上IP地址作爲限制。
2.打開數據包的轉發功能
echo "1">/proc/sys/net/ipv4/ip_forward
或者打開/etc/sysctl.conf 將net.ipv4.ip_forward = 0改爲1
3.使用NAT打開地址僞裝。
iptables -t nat -A POSTROUTING -o eth0 -p udp --dport 53 -j MASQUERADE
注意:這裏沒有指名源地址,表明任意地址。想指名源地址,使用-s 選項。
4.使用端口重定向將客戶端的80端口重定向到3128端口。
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-ports 3128
5.配置客戶端的IP選項。
將網關指向代理的內網網卡的IP地址:10.1.1.1
將DNS設置爲自己所在網絡的DNS服務器:192.168.1.1
注意事項:此時DNS和網關必須配置,因爲透明代理設計不同的網段,並且訪問internet需要DNS解析,因此網關和DNS必須配置。
6.打開瀏覽器測試。