CentOS下Privoxy和Iptables 實現透明代理,修改http-header

Linux下目前使用最多的HTTP代理當屬Squid了,這邊有個需要修改http-header的需要,前提是要做http的透明代理,squid實現透明代理很容易,但修改http-header沒找到方法。

Privoxy在修改http-header方面很善長,但透明代理如何實現網上好像還沒有成熟的方法。比起修改http-header,透明代理應該實現起來更簡單一些,於是研究了一下,下面詳細說一說。

一、環境說明:

1.系統:

CentOS 6.5 32位(64位在裝privoxy的時候經常報錯,直接換成32位)

2.網絡:

雙網卡 

 eth0: 10.3.2.30/24 (公網)   eth1:192.168.0.1/24(私網地址,內網網關設這個)

網關10.3.2.254

3.yum install privoxy 直接安裝privoxy 默認端口8118

二、配置NAT

sysctl 中設置 net.ipv4.ip_forward = 1

iptalbes 中設置NAT

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE -o eth0

三、配置透明代理

  1. 修改服務端口,將服務器開在192.168.0.1:8118上,修改/etc/privoxy/config文件

wKioL1Xr28qTzYe4AAIEslDI7Ck487.jpg

2. 修改accept-intercepted-request 爲1

wKioL1Xr3LKTd-hwAACDzyW82Qc073.jpg

3.Iptables 配置,將所有來自私網80端口的數據包重定向到192.168.0.1的8118端口,這是透明代理的關鍵

iptables -t nat -A PREROUTING -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT -to-port 8118

四、更改http-header

更改/etc/privoxy/user.action(這個文件不會隨版本更新而改變)

在文件頭部(任意位置)增加:

+add-heaer {name:liqunsheng}

/

注意最後的“/”不要丟掉。

五、測試

這樣配置就完成了,我們來測試一下

將客戶機的IP設置爲192.168.0.0/24的地址,網關設爲192.168.0.1

wKiom1Xr3tzzDhOBAAE2U3FOeRk482.jpg

瀏覽器的代理沒有任何設置,我們打開網頁http://10.2.1.33,

wKiom1Xr3z7xMwe8AANrnqppho8681.jpg

並在10.2.1.33端用wireshark抓包。如圖所示:

wKioL1Xr4naheBu0AAbkiNau3c8008.jpg

六、關於透明代理後無法打開http://p.p 網頁的說明

   我們知道,使用privoxy做瀏覽器代理,輸入http://p.p 能跳到privoxy的管理網頁,也是驗證代理是否做成功的手段,但是做完透明代理該網頁將無法打開,原因是瀏覽器代理的DNS使用的是代理服務器192.168.0.1的DNS,透明代理使用的是本地DNS,本地DNS當然不知道http://p.p 是誰了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章