Puncte:0

NGINX trece prin IP real TLS?

drapel cn

Mă întrebam dacă cineva ar putea face lumină asupra problemei pe care o am,

În prezent, testez pentru a trece TLS pe ​​serverul meu zimbra, deoarece SSL trebuie să fie pe serverul zimbra și un alt site wordpress care are și SSL

configurația ar fi asta

INTERNET--------NGINX PROXY-------ZIMBRA și ------SITE WORDPRESS

Am configurat cu succes proxy-ul nginx la TLS passthough, dar am verificat jurnalele și se pare că nu am transmis IP-ul real către zimbra sau wordpress

Dar nu am putut să-mi dau seama pentru că nu mă va lăsa să trimit antetele proxy pentru că folosesc trecerea TLS

     root@bunker:~# cat /etc/nginx/modules-enabled/passtru.conf
       curent {

        harta $ssl_preread_server_name $nume {

       wordpress.domain.com wordpress;
        mail.domain.com zimbra;
        implicit https_default_backend;
    }

    în amonte wordpress {
        server 192.168.7.35:443;
    }

    zimbra în amonte {
        server 192.168.7.245:443;
    }
log_format de bază „$remote_addr [$time_local]”
             „$protocol $status $bytes_sent $bytes_received”
             „$session_time „$upstream_addr” '
             „$upstream_bytes_sent” „$upstream_bytes_received”
              „$upstream_connect_time”';

access_log /var/log/nginx/access.log basic;
error_log /var/log/nginx/error.log;

    Server {
        asculta 443;
        proxy_pass $nume;
        proxy_next_upstream pe;
        ssl_preread on;
    }
}
Puncte:1
drapel us

Nu puteți trece prin adresa IP când treceți prin TLS.

Cu TLS passthrough, conexiunea TCP se termină la proxy-ul TLS passthrough. Aceasta înseamnă că conexiunea TCP este între client și proxy. Pentru a ajunge la serverul de destinație, proxy-ul deschide o conexiune TCP la destinația reală. În acest sens, adresa IP sursă este adresa IP a proxy-ului.

Cu HTTP, este posibil să adăugați adresa IP originală într-un câmp de antet HTTP. TLS nu are un astfel de câmp. Prin urmare, singura informație disponibilă pentru destinația reală este adresa IP sursă a conexiunii TCP, care este serverul proxy.

Câteva opțiuni pentru a obține adresa IP:

  1. Eliminați proxy-ul de trecere TLS și utilizați o adresă IP separată pentru fiecare serviciu.
  2. Terminați TLS la serverul proxy și adăugați anteturi HTTP cu adresa IP de origine
  3. Este posibil să puteți utiliza protocolul PROXY între această instanță nginx și serverele din amonte. https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/ are informații legate de asta.
killmasta93 avatar
drapel cn
Vă mulțumesc pentru răspuns, așa că nu va funcționa la fel ca HAproxy, deoarece nu pot obține IP-ul real folosind aceeași configurare, pentru opțiunea 2 când spuneți că opriți TLS nu sunt sigur ce vrei să spui
drapel us
Nu am experiență cu HAProxy, dar articolul pe care l-am legat a explicat că HAProxy folosește protocolul PROXY. Adică, s-ar putea să puteți utiliza opțiunea 3. Prin terminarea TLS, vreau să spun că serverul proxy are toate certificatele și cheile pentru toate domeniile pe care le trimite proxy și apoi creează conexiuni HTTP/HTTPS separate la serverul din amonte.

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.