squid傳統代理的另一形式----透明代理
阿新 • • 發佈:2018-07-25
rect 手動 策略 大對象 obj 顯示 process repl 技術分享 構建透明代理
安裝squid支持透明模式
- squid透明代理本屬於squid標準傳統代理的一部分,本文特意將透明代理單獨寫出,是因為yum安裝的版本中沒有支持透明模式的模塊。
- 因此,支持透明代理的模塊需要在手動編譯安裝時加入。
tar zxvf squid-3.4.6.tar.gz -C /opt/
cd /opt/squid-3.4.6
./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-arp-acl \ //可以在規則鏈中設置為直接通過客戶端MAC管理,防止客戶端使用IP欺騙 --enable-linux-netfilter \ //使用內核過濾 --enable-linux-tproxy \ //使用透明模式 --enable-async-io=100 \ //異步I/O,提升存儲性能 --enable-err-language="Simplify_Chinese" \ //錯誤信息顯示語言 --enable-underscore \ //允許URL中有下劃線 --enable-poll \ //使用poll模式,提升性能 --enable-gnuregex //使用GNU正則表達式
實驗環境
服務器 | 操作系統 | IP地址 | 使用軟件 |
---|---|---|---|
squid代理服務器 | centos7.3 | 內192.168.100.1 外12.0.0.1 | squid |
外網web服務器 | centos7.3 | 12.0.0.12 | http |
client | windows7 | 192.168.100.100 | IE瀏覽器 |
實驗拓撲展示
透明代理配置過程
squid代理服務器設置
1、添加網卡,內網卡ens33,外網卡ens37
- 網卡添加完成後修改IP,此過程建立在已經安裝好squid緩存代理服務器基礎上。
- 網卡配置如下圖所示:
- 接著打開路由轉發功能:
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1 //添加打開路由轉發功能
sysctl -p //立即生效
- 或者這樣打開路由轉發功能:
echo "1" > /proc/sys/net/ipv4/ip_forward
2、配置squid代理服務配置文件
ln -s /usr/local/squid/sbin/* /usr/local/sbin/
useradd -M -s /sbin/nologin squid
chown -R squid.squid /usr/local/squid/var/
vim /etc/squid/squid.conf
# Squid normally listens to port 3128 http_port 192.168.100.1:3128 transparent //設置為內網端口代理 cache_mem 64 MB #指定緩存功能所使用的內存空間大小,便於保持訪問較頻繁的WEB對象,容量最好為4的倍數,單位為MB,建議設為物理內存的1/4 reply_body_max_size 10 MB #允許用戶下載的最大文件大小,以字節為單位。默認設置0表示不進行限制 maximum_object_size 4096 KB #允許保存到緩存空間的最大對象大小,以KB為單位,超過大小限制的文件將不被緩存,而是直接轉發給用戶 ... cache_effective_user squid #添加 指定程序用戶 cache_effective_group squid #添加 指定賬號基本組 coredump_dir /usr/local/squid/var/cache/squid #在這一行上方添加
systemctl restart squid.service
3、寫入防火墻nat策略
iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128 //允許http端口服務
iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 3128 //允許https端口服務
iptables -I INPUT -p tcp --dport 3218 -j ACCEPT
4、外網web服務器配置
- 將外網網卡IP設置為12.0.0.12,啟動HTTP服務即可。
5、客戶端訪問
- 客戶端訪問時不需要通過在瀏覽器中設置代理功能,直接訪問IP地址即可。訪問結果如下:
squid傳統代理的另一形式----透明代理