Folosesc Iptables pentru a direcționa traficul https de la Internet către o rețea internă prin HAproxy.
Regulile Iptables NAt sunt:
iptables -i eth0 -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.0.0.7
iptables -i eth0 -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.0.0.7
iptables -t nat -A POSTROUTING -j MASQUERADE
au fost 10.0.0.0/24 este un VPN Wireguard (IP-ul serverului este 10.0.0.1, IP-ul haproxy este 10.0.0.7)
Apoi vreau să văd IP-ul de origine conectat în HAproxy, dar pot vedea numai IP-ul serverului VPN:
14 iulie 18:27:02 localhost haproxy[13304]: 10.0.0.1:57539 [14/Jul/2021:18:27:02.199] fe-frontend-https~ fe-frontend-https/<NOSRV> -1/- 1/-1/-1/0 503 99 - - SC-- 1/1/0/0/0 0/0 „GET /.env HTTP/1.1
Cum pot proxy traficul într-un mod transparent, astfel încât HAproxy să poată înregistra IP-ul extern de origine?
Mulțumiri
editat:
Toate regulile Iptables:
# iptables -L
INTRARE în lanț (politica ACCEPTĂ 757M pachete, 641G octeți)
num pkts octeți target prot opt in out sursă destinație
1 0 0 ACCEPT udp
2 0 0 ACCEPT tcp
3 83841 27M ACCEPT udp
4 0 0 ACCEPT tcp
5 12 1008 ACCEPT icmp
6 0 0 ACCEPT icmp
Lanț FORWARD (politica ACCEPTĂ 482M pachete, 578G octeți)
num pkts octeți target prot opt in out sursă destinație
1 589M 441G ACCEPT pe toate
2 744M 637G ACCEPT pe toate
3 0 0 ACCEPT toate
4 0 0 REJECT all
5 296 11864 REJECT all
IEȘIRE în lanț (politica ACCEPTĂ 753M pachete, 664G octeți)
num pkts octeți target prot opt in out sursă destinație
1 83839 28M ACCEPT udp
# iptables -L -n -t nat -v
PRERUUTARE în lanț (politica ACCEPTĂ 31 de milioane de pachete, 1964 de milioane de octeți)
pkts bytes target prot opt in out source destination
23743 1296K DNAT tcp
3935 182K DNAT tcp
INTRARE în lanț (politica ACCEPT 0 pachete, 0 octeți)
pkts bytes target prot opt in out source destination
POSTROUTING în lanț (politica ACCEPTĂ 9549 pachete, 531K octeți)
pkts bytes target prot opt in out source destination
0 0 RETURN all
4660 280K MASQUERADE tcp
7729 704K MASQUERADE udp
2 168 MASQUERADE toate
0 0 RETURN all
0 0 RETURN all
0 0 MASQUERADE tcp
0 0 MASQUERADE udp
0 0 MASQUERADE toate
19M 1143M MASQUERADE toate
0 0 MASQUERADE toate
0 0 MASQUERADE toate
IEȘIRE în lanț (politica ACCEPT 20209 pachete, 2137K octeți)
pkts bytes target prot opt in out source destination
(în mare parte sunt reguli NAT implicite pentru libvirt)