Haproxy全透明代理


1. 系統環境搭建

  • 操作系統Centos7 內核版本3.10
  • Centos7已自帶TPROXY模塊,不需要安裝TPROXY

2. Haproxy下載,編譯,安裝,配置

  • 下載地址 http://www.haproxy.org/download/ (所有ha版本)

    	1.4.24 下載地址  http://www.haproxy.org/download/1.4/src/haproxy-1.4.24.tar.gz
    
  • 編譯安裝

      tar -xvf haproxy-1.4.24.tar.gz
      cd haproxy-1.4.24
      yum install gcc gcc-c++ autoconf automake -y #安裝gcc編譯器
      make TARGET=linux2628 arch=x86_64 USE_LINUX_TPROXY=1 #重點USE_LINUX_TPROXY=1用於編譯支持TPTOXY
      make install
      mkdir /etc/haproxy
      cp examples/haproxy.cfg /etc/haproxy
      cp examples/haproxy.init /etc/init.d/haproxy
      chmod +x /etc/init.d/haproxy
      cp haproxy /usr/sbin/
    
  • 配置

      # this config needs haproxy-1.1.28 or haproxy-1.2.1
    
      global
      	log 127.0.0.1	local0
      	log 127.0.0.1	local1 notice
      	#log loghost	local0 info
      	maxconn 4096
      #	chroot /usr/share/haproxy
      #	uid 99
      #	gid 99
      	daemon
      	#debug
      	#quiet
      
      defaults
      	log	global
      	mode	http
      	option	httplog
      	option	dontlognull
      	retries	3
      	maxconn	2000
      	contimeout	5000
      	clitimeout	50000
      	srvtimeout	50000
      
      listen	test 
      		bind 0.0.0.0:12345
      		balance roundrobin
              mode tcp
              option tcplog
              source 0.0.0.0 usesrc clientip #重點,TPROXY需要加上這行。
              server  test 10.17.12.246:12346 weight 1 check inter 2000 rise 2 fall 5
    

3. 網絡拓撲

 客戶端:10.17.12.212---------haproxy節點:10.17.12.192-------------后端服務器節點:10.17.12.246

客戶端與后端服務器均為window7 ,haproxy為centos7

4. Haproxy代理服務器配置

  • iptables配置

    iptables -F
    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 222
    iptables -t mangle -A DIVERT -j ACCEPT
    ip rule add fwmark 222 lookup 100
    ip route add local 0.0.0.0/0 dev lo table 100
    haproxy 網卡enp0s8的ip地址為 10.17.12.192

實驗中 iptables -F 指令非常重要,不執行此條指令,后面iptables的規則都沒有起作用
  • 添加轉發和重定向

      # 允許ip轉發
      echo 1 > /proc/sys/net/ipv4/conf/all/forwarding
       
      # 設置松散逆向路徑過濾
      echo 2 > /proc/sys/net/ipv4/conf/default/rp_filter
      echo 2 > /proc/sys/net/ipv4/conf/all/rp_filter
      echo 0 > /proc/sys/net/ipv4/conf/enp0s8/rp_filter
       
      # 允許ICMP重定向
      echo 1 > /proc/sys/net/ipv4/conf/all/send_redirects
      echo 1 > /proc/sys/net/ipv4/conf/enp0s8/send_redirects
    

5. 服務器配置

  • 配置路由

      route delete 10.17.12.0
      route add 10.17.12.0 mask 255.255.255.0 10.17.12.192 
    
  • 最終路由結果

      ===========================================================================
      活動路由:
      網絡目標        網絡掩碼          網關       接口   躍點數
                0.0.0.0          0.0.0.0     10.17.12.192     10.17.12.246     11
             10.17.12.0    255.255.255.0     10.17.12.192     10.17.12.246     11
           10.17.12.246  255.255.255.255            在鏈路上      10.17.12.246    266
              127.0.0.0        255.0.0.0            在鏈路上         127.0.0.1    306
              127.0.0.1  255.255.255.255            在鏈路上         127.0.0.1    306
        127.255.255.255  255.255.255.255            在鏈路上         127.0.0.1    306
           192.168.56.0    255.255.255.0            在鏈路上      192.168.56.1    276
           192.168.56.1  255.255.255.255            在鏈路上      192.168.56.1    276
         192.168.56.255  255.255.255.255            在鏈路上      192.168.56.1    276
              224.0.0.0        240.0.0.0            在鏈路上         127.0.0.1    306
              224.0.0.0        240.0.0.0            在鏈路上      10.17.12.246    266
              224.0.0.0        240.0.0.0            在鏈路上      192.168.56.1    276
        255.255.255.255  255.255.255.255            在鏈路上         127.0.0.1    306
        255.255.255.255  255.255.255.255            在鏈路上      10.17.12.246    266
        255.255.255.255  255.255.255.255            在鏈路上      192.168.56.1    276
    

6. 測試結果

客戶端測試軟件截圖:
客戶端測試軟件
服務端測試軟件截圖
服務端測試軟件截圖

7. 參考文檔


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM