日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

透明代理学习

發布時間:2024/4/17 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 透明代理学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

對透明代理,需要使用幾個功能,首先IP_TRANSPARENT,內核2.6.28就已經支持, centos6.3及以上是肯定支持的。

它的作用是,如果某個ip在本機不存在,監聽0.0.0.0一樣可以收到數據,而發送的時候,可以bind任意一個不存在的ip(當然這個bind你使用netstat是看不見的),這樣你就可以偽造任意客戶端的報文。


代碼也很簡單

監聽增加

setsockopt(fd,?SOL_IP,?IP_TRANSPARENT,?&value,?sizeof(value))

發送增加

setsockopt(fd,?SOL_IP,?IP_TRANSPARENT,?&value,?sizeof(value)) if(getsockname(?s->client_sock?,?(struct?sockaddr?*)&server_addr,?&addrlen?)?) {http_close_stream(s,"adns_transparent_client");return; }

這里獲取真正的服務器地址,寫入server_addr

if?(bind(s->server_sock,?(struct?sockaddr*)&s->client_addr,?addrlen?)?==?-1) {http_close_stream(s,?"adns_transparent_bind"); return; }

綁定客戶端地址(雖然本機沒有這個ip)

r?=?connect_nonb(sock,?(struct?sockaddr?*)&server_addr);

連接真正的服務器地址。


當然如果想收到報文,還是需要做一些操作的,比如我們收到路由器轉發的80端口的請求。

然后

iptables?-t?mangle?-N?DIVERT iptables?-t?mangle?-A?PREROUTING?-p?tcp?-m?socket?-j?DIVERT iptables?-t?mangle?-A?DIVERT?-j?MARK?--set-mark?1 iptables?-t?mangle?-A?DIVERT?-j?ACCEPTip?rule?add?fwmark?1?lookup?100 ip?route?add?local?0.0.0.0/0?dev?lo?table?100 iptables?-t?mangle?-A?PREROUTING?-p?tcp?--dport?80?-j?TPROXY?--tproxy-mark?0x1/0x1?--on-port?81

注意你的服務器的監聽端口改成非80,比如81端口,這樣就能收到數據了。


可是我發現能收到數據,握手成功,但是服務器像真正的源站發送的握手又被交換機給轉發回來了。

因為對于交換機來說,客戶端發的握手和服務器發的握手在ip層面都一模一樣,源地址和目的地址都相同。

這里需要對交換機做一個限制,對于服務器mac地址的包,走默認路由。


如下是路由器配置

10.0.30.100是客戶端

10.0.3.15是服務器

ip?access-list?extended?ppcpermit?tcp?host?10.0.30.100?any?eq?www ip?access-list?extended?ppc-15permit?tcp?any?eq?www?host?10.0.30.100 route-map?ppc-15?permit?10match?ip?address?ppc-15set?ip?next-hop?10.0.3.15 ! route-map?ppc?permit?10match?ip?address?ppcset?ip?next-hop?10.0.3.15 ! route-map?ppc?permit?20 interface?Vlan300ip?address?10.0.30.1?255.255.255.0ip?policy?route-map?ppc interface?GigabitEthernet0/24no?switchportip?address?10.0.0.2?255.255.255.252no?ip?proxy-arpip?policy?route-map?ppc-15




轉載于:https://blog.51cto.com/xzq2000/1775434

總結

以上是生活随笔為你收集整理的透明代理学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。