Puncte:0

Redirecționați portul pe VM și păstrați IP-ul sursă

drapel de

Vreau să redirecționez portul 80 de la proxy către nginx și să păstrez IP-ul original. Structura mea actuală:

introduceți descrierea imaginii aici

Proxy vm(192.168.0.104) - VM cu iptables care redirecționează tot traficul de la portul 80 la 192.168.106:80  
Nginx vm(192.168.0.106) - VM cu pagina web implicită nginx pe portul 80

De exemplu, am deschis un browser web (ip local: 192.168.103) și am introdus 192.168.0.104 în câmpul de adresă, apoi am primit pagina web implicită Nginx. În jurnalele Nginx vreau să văd ceva de genul acesta „192.168.0.103 -- [06/Nov/2022:19:10:38 +0600] ...”, unde IP-ul sursă rămâne cel original

Script Iptables pe VM proxy (192.168.0.104)

#!/bin/bash

IPT=/sbin/iptables

echo „Flushing Tables...”

# Resetați politicile implicite
$IPT -P INTRARE ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P ACCEPT IEȘIRE
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P IEȘIRE ACCEPT
$IPT -t mangle -P PREROUTING ACCEPT
$IPT -t mangle -P IEȘIRE ACCEPT

# Spală toate regulile
$IPT -F
$IPT -t nat -F
$IPT -t mangle -F

# Ștergeți toate lanțurile care nu sunt implicite
$IPT -X
$IPT -t nat -X
$IPT -t mangle -X

# apt install conttrack # dacă eroare 
conttrack --flush

IF_IN=enp0s3
PORT_IN=80

IP_OUT=192.168.0.106
PORT_OUT=80

echo "1" > /proc/sys/net/ipv4/ip_forward

$IPT -A PREROUTING -t nat -i $IF_IN -p tcp --dport $PORT_IN -j DNAT --la destinație ${IP_OUT}:${PORT_OUT}
$IPT -A FORWARD -p tcp -i $IF_IN --dport $PORT_OUT -j ACCEPT
$IPT -A POSTRUTING -o $IF_IN -t nat -j MASQUERADE

Această configurație îmi permite să accesez pagina web din local prin 192.168.0.104, dar nu salvează adresa mea IP originală.
Stie cineva cum se face acest truc?

Puncte:0
drapel lr

Utilizarea iptables pentru a redirecționa traficul și păstrarea IP-ului clientului este posibilă (folosind DNAT) numai dacă proxy-ul dvs. este, de asemenea, poarta dvs. de acces implicită sau alte trucuri de rutare.

Cele mai potrivite opțiuni pe care le aveți (după părerea mea) sunt:

1. DNAT pe routerul dvs

Configurați VM-ul proxy ca router. Lăsați tot traficul pentru serverul dvs. web să treacă prin acest router (gateway implicit). Următoarea configurare Destination NAT pe routerul dvs

2. Utilizați un proxy L7

Utilizați un proxy de nivel 7 care înțelege traficul HTTP. (nginx, haproxy, ...) Acest proxy poate seta o eroare HTTP care este setată la IP-ul clientului original.

nginx

Adăugați următoarele la configurația dvs.:

proxy_set_header X-Real-IP $adresă_la distanță;

HAProxy

Adăugați următoarele la configurația dvs.:

frontend * your_frontend *
  opțiunea de redirecționare pentru antetul X-Real-IP
  http-request set-header X-Real-IP %[src]

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.