Score:0

NGINX ส่งผ่าน TLS IP จริงหรือไม่

ธง cn

ฉันสงสัยว่าจะมีใครให้ความกระจ่างเกี่ยวกับปัญหาที่ฉันมีอยู่ได้ไหม

ขณะนี้ฉันกำลังทดสอบ TLS ผ่านไปยังเซิร์ฟเวอร์ zimbra ของฉันเนื่องจาก SSL ต้องอยู่ในเซิร์ฟเวอร์ zimbra และเว็บไซต์ wordpress อื่นซึ่งมี SSL ด้วย

การตั้งค่าจะเป็นสิ่งนี้

อินเทอร์เน็ต--------NGINX PROXY-------ZIMBRA และ ------เว็บไซต์ WORDPRESS

ฉันกำหนดค่าพร็อกซี nginx เป็น TLS pass สำเร็จแล้ว แต่ฉันตรวจสอบบันทึกและดูเหมือนว่าไม่ผ่าน IP จริงไปยัง zimbra หรือ wordpress

แต่คิดไม่ออกเพราะมันไม่ยอมให้ฉันส่งส่วนหัวพร็อกซีเพราะฉันใช้ TLS passthough

     root@bunker:~# cat /etc/nginx/modules-enabled/passtru.conf
       ลำธาร {

        แผนที่ $ssl_preread_server_name $name {

       wordpress.domain.com เวิร์ดเพรส;
        mail.domain.com zimbra;
        เริ่มต้น https_default_backend;
    }

    เวิร์ดเพรสต้นน้ำ {
        เซิร์ฟเวอร์ 192.168.7.35:443;
    }

    ต้นน้ำ Zimbra {
        เซิร์ฟเวอร์ 192.168.7.245:443;
    }
log_format พื้นฐาน '$remote_addr [$time_local]'
             '$โปรโตคอล $สถานะ $bytes_sent $bytes_received'
             '$session_time "$upstream_addr"'
             '"$upstream_bytes_sent" "$upstream_bytes_received"
              "$upstream_connect_time"';

access_log /var/log/nginx/access.log พื้นฐาน;
error_log /var/log/nginx/error.log;

    เซิร์ฟเวอร์ {
        ฟัง 443;
        proxy_pass $ชื่อ;
        เปิด proxy_next_upstream;
        ssl_preread บน;
    }
}
Score:1
ธง us

คุณไม่สามารถผ่านที่อยู่ IP เมื่อคุณผ่าน TLS

ด้วย TLS passthrough การเชื่อมต่อ TCP จะถูกยกเลิกที่พร็อกซี TLS passthrough ซึ่งหมายความว่าการเชื่อมต่อ TCP อยู่ระหว่างไคลเอนต์และพร็อกซี ในการเข้าถึงเซิร์ฟเวอร์ปลายทาง พร็อกซีจะเปิดการเชื่อมต่อ TCP ไปยังปลายทางจริง ในการเชื่อมต่อนี้ ที่อยู่ IP ต้นทางคือที่อยู่ IP ของพร็อกซี

เมื่อใช้ HTTP คุณจะสามารถเพิ่มที่อยู่ IP เดิมในช่องส่วนหัว HTTP ได้ TLS ไม่มีฟิลด์ดังกล่าว ดังนั้นข้อมูลเดียวที่มีสำหรับปลายทางจริงคือที่อยู่ IP ต้นทางของการเชื่อมต่อ TCP ซึ่งเป็นพร็อกซีเซิร์ฟเวอร์

ตัวเลือกบางอย่างในการรับที่อยู่ IP:

  1. ลบพร็อกซี TLS passthrough และใช้ที่อยู่ IP แยกต่างหากสำหรับแต่ละบริการ
  2. ยุติ TLS ที่พร็อกซีเซิร์ฟเวอร์และเพิ่มส่วนหัว HTTP ด้วยที่อยู่ IP ต้นทาง
  3. คุณอาจสามารถใช้โปรโตคอล PROXY ระหว่างอินสแตนซ์ nginx นี้กับเซิร์ฟเวอร์อัปสตรีม https://docs.nginx.com/nginx/admin-guide/load-balancer/using-proxy-protocol/ มีข้อมูลที่เกี่ยวข้อง
killmasta93 avatar
cn flag
ขอบคุณสำหรับการตอบกลับ ดังนั้นมันจะใช้งานไม่ได้เหมือนกับ HAproxy เนื่องจากฉันสามารถรับ IP จริงโดยใช้การตั้งค่าเดียวกัน สำหรับตัวเลือกที่ 2 เมื่อคุณพูดว่ายุติ TLS ไม่แน่ใจว่าคุณหมายถึงอะไร
us flag
ฉันไม่มีประสบการณ์กับ HAProxy แต่บทความที่ฉันเชื่อมโยงอธิบายว่า HAProxy ใช้โปรโตคอล PROXY นั่นคือ คุณอาจใช้ตัวเลือกที่ 3 ได้ เมื่อยุติ TLS ฉันหมายความว่าพร็อกซีเซิร์ฟเวอร์มีใบรับรองและคีย์ทั้งหมดสำหรับโดเมนทั้งหมดที่พร็อกซี จากนั้นจึงสร้างการเชื่อมต่อ HTTP/HTTPS แยกต่างหากไปยังเซิร์ฟเวอร์อัปสตรีม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา