Score:0

ส่งต่อพอร์ตบน VM และเก็บ IP ต้นทางไว้

ธง de

ฉันต้องการส่งต่อพอร์ต 80 จากพร็อกซีไปยัง nginx และเก็บ IP เดิมไว้ โครงสร้างปัจจุบันของฉัน:

ป้อนคำอธิบายรูปภาพที่นี่

Proxy vm(192.168.0.104) - VM พร้อม iptables ที่เปลี่ยนเส้นทางการรับส่งข้อมูลทั้งหมดจากพอร์ต 80 เป็น 192.168.106:80  
Nginx vm(192.168.0.106) - VM พร้อมเว็บเพจ nginx เริ่มต้นบนพอร์ต 80

ตัวอย่างเช่น ฉันเปิดเว็บเบราว์เซอร์ (ip ในเครื่อง: 192.168.103) และป้อน 192.168.0.104 ในช่องที่อยู่ จากนั้นฉันจึงได้รับหน้าเว็บเริ่มต้นของ Nginx ในบันทึกของ Nginx ฉันต้องการเห็นสิ่งนี้ "192.168.0.103 -- [06/Nov/2022:19:10:38 +0600] ... " โดยที่ IP ต้นทางยังคงเป็นต้นฉบับ

สคริปต์ Iptables บน Proxy VM (192.168.0.104)

#!/bin/bash

IPT=/sbin/iptables

echo "ล้างโต๊ะ..."

# รีเซ็ตนโยบายเริ่มต้น
$IPT -P อินพุตยอมรับ
$IPT -P ยอมรับไปข้างหน้า
$IPT -P ยอมรับเอาต์พุต
$IPT -t nat -P ยอมรับก่อนกำหนด
$IPT -t nat -P หลังจากยอมรับ
$IPT -t nat -P ยอมรับเอาต์พุต
$IPT -t mangle -P ยอมรับก่อนกำหนด
$IPT -t mangle -P เอาต์พุตที่ยอมรับ

#ฉีกกฎทุกข้อ
$IPT -F
$IPT -t แนท -F
$IPT -t พังเกิล -F

# ลบห่วงโซ่ที่ไม่ใช่ค่าเริ่มต้นทั้งหมด
$IPT -X
$IPT -t แนท -X
$IPT -t พังเกิล -X

# apt ติดตั้ง conntrack # หากเกิดข้อผิดพลาด 
คอนแทรค --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 --to-destination ${IP_OUT}:${PORT_OUT}
$IPT -A ส่งต่อ -p tcp -i $IF_IN --dport $PORT_OUT -j ยอมรับ
$IPT -A โพสต์ -o $IF_IN -t nat -j MASQUERADE

การกำหนดค่านี้อนุญาตให้ฉันเข้าถึงหน้าเว็บจากในเครื่องผ่าน 192.168.0.104 แต่ไม่ได้บันทึกที่อยู่ IP เดิมของฉัน
ไม่มีใครรู้วิธีการทำเคล็ดลับนี้?

Score:0
ธง lr

การใช้ iptables เพื่อส่งต่อทราฟฟิกและการรักษา IP ไคลเอนต์จะเป็นไปได้ (โดยใช้ DNAT) หากพร็อกซีของคุณเป็นเกตเวย์เริ่มต้นของคุณด้วยหรือกลอุบายการกำหนดเส้นทางอื่นๆ

ตัวเลือกที่เหมาะสมที่สุดที่คุณมี (ในความคิดของฉัน) คือ:

1. DNAT บนเราเตอร์ของคุณ

กำหนดค่าพร็อกซี VM ของคุณเป็นเราเตอร์ ให้การรับส่งข้อมูลทั้งหมดสำหรับเว็บเซิร์ฟเวอร์ของคุณผ่านเราเตอร์นี้ (เกตเวย์เริ่มต้น) ตั้งค่าถัดไป Destination NAT บนเราเตอร์ของคุณ

2. ใช้พร็อกซี L7

ใช้พร็อกซีเลเยอร์ 7 ซึ่งเข้าใจทราฟฟิก HTTP (nginx, haproxy, ...) พร็อกซีนี้สามารถตั้งค่าข้อผิดพลาด HTTP ซึ่งตั้งค่าเป็น IP ไคลเอนต์ดั้งเดิม

จิงซ์

เพิ่มสิ่งต่อไปนี้ในการกำหนดค่าของคุณ:

proxy_set_header X-Real-IP $remote_addr;

HAProxy

เพิ่มสิ่งต่อไปนี้ในการกำหนดค่าของคุณ:

ส่วนหน้า * your_frontend *
  ตัวเลือกการส่งต่อสำหรับส่วนหัว X-Real-IP
  http-request set-header X-Real-IP %[src]

โพสต์คำตอบ

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