Score:2

การส่งต่อพอร์ตด้วย iptables ไม่ทำงาน

ธง vn

ฉันมีสองเซิร์ฟเวอร์:

เซิร์ฟเวอร์ 1 พร้อมที่อยู่ IP 10.8.0.1

เซิร์ฟเวอร์ 2 พร้อมที่อยู่ IP 10.8.0.6

ฉันต้องการให้เซิร์ฟเวอร์ 2 ทำงานเป็นพร็อกซีสำหรับเว็บไซต์ที่โฮสต์บนเซิร์ฟเวอร์ 1 ดังนั้นฉันจึงใช้คำสั่งต่อไปนี้:

sudo iptables -t nat -A PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.8.0.1:443

sudo iptables -t nat -A POSTROUTING -p tcp -d 10.8.0.1 --dport 443 -j SNAT --to-source 10.8.0.6

อย่างไรก็ตาม การตั้งค่าด้านบนไม่ทำงานเนื่องจากฉันไม่สามารถเรียกดูเว็บไซต์ได้ อีกด้วย, เทลเน็ต 10.8.0.6 443 ไม่ก่อให้เกิดผลผลิต

Doug Smythies avatar
gn flag
คุณเปิดใช้งานการส่งต่อหรือไม่ `echo "1" > /proc/sys/net/ipv4/ip_forward` เป็น sudo ฉันมีตัวอย่างสิ่งที่คุณต้องการทำงานบน LAN ของฉัน และสามารถเขียนคำตอบได้ในอีกประมาณ 8 ชั่วโมงนับจากนี้
Admia avatar
vn flag
การส่งต่อพอร์ตเปิดใช้งานบนเซิร์ฟเวอร์ 2 เพราะเมื่อฉันพิมพ์ `sysctl net.ipv4.ip_forward` ฉันได้รับ `net.ipv4.ip_forward = 1` นอกจากนี้ `sudo cat /proc/sys/net/ipv4/ip_forward` ส่งผลให้ `1`
Admia avatar
vn flag
ฉันควรทราบว่าที่อยู่ IP `10.8.0.6` สำหรับเซิร์ฟเวอร์ 2 ได้รับการตั้งค่าโดย openvpn เซิร์ฟเวอร์ 2 มีที่อยู่สาธารณะ และผู้คนควรจะเรียกดูเว็บไซต์ของฉันโดยใช้ที่อยู่สาธารณะของเซิร์ฟเวอร์ 2
Doug Smythies avatar
gn flag
โอ้! นั่นเป็นข้อมูลที่ค่อนข้างสำคัญ ฉันสงสัยว่าคำตอบของฉันจะช่วยได้หรือไม่ เพราะมันคล้ายกับสิ่งที่คุณกำลังทำอยู่แล้ว เพียงแค่เพิ่มข้อมูลจำเพาะของอินเทอร์เฟซ
Score:1
ธง gn

ฉันมีตัวอย่างการทำงานบน LAN ของฉัน แต่ตามความคิดเห็นอาจไม่สามารถแก้ปัญหาของคุณได้:

ปริมาณการใช้งานเว็บที่มาจาก 192.168.111.122 สำหรับ 192.168.111.136 จะถูกส่งต่อไปยัง 192.168.111.1 ตอบกลับจาก 192.168.111.1 สำรวจเส้นทางย้อนกลับ กลับไปที่ 192.168.111.122 ที่คิดว่าแพ็กเก็ตมาจาก 192.168.111.136

doug@s19:~/iptables/misc$ sudo tcpdump -n -tttt -i br0 ไม่ใช่พอร์ต 22
tcpdump: เอาต์พุต verbose ถูกระงับ ใช้ -v หรือ -vv สำหรับการถอดรหัสโปรโตคอลแบบเต็ม
กำลังฟัง br0, ประเภทลิงก์ EN10MB (Ethernet), ขนาดการจับภาพ 262144 ไบต์
12-12-2021 15:57:47.389745 IP 192.168.111.122.51683 > 192.168.111.136.443: ค่าสถานะ [S], seq 1692549099, ชนะ 64240, ตัวเลือก [mss 1460,nop,wscale 8,nop,nop,sackตกลง] , ความยาว 0
2021-12-19 15:57:47.389760 IP 192.168.111.136.51683 > 192.168.111.1.443: ค่าสถานะ [S], seq 1692549099, ชนะ 64240, ตัวเลือก [mss 1460,nop,wscale 8,nop,nop,sackตกลง] , ความยาว 0
2021-12-19 15:57:47.390055 IP 192.168.111.1.443 > 192.168.111.136.51683: ค่าสถานะ [S.], seq 1478028943, ack 1692549100, ชนะ 64240, ตัวเลือก [mss 1460,nop,nop,nop,nop ,wscale 7], ความยาว 0
2021-12-19 15: 57: 47.390062 IP 192.168.111.136.443> 192.168.111.122.51683: ธง [S. ], SEQ 1478028943, ACK 1692549100 ,wscale 7], ความยาว 0
2021-12-19 15:57:47.390301 IP 192.168.111.122.51683 > 192.168.111.136.443: ค่าสถานะ [.], ack 1, ชนะ 1026, ความยาว 0
2021-12-19 15:57:47.390306 IP 192.168.111.136.51683 > 192.168.111.1.443: ค่าสถานะ [.], ack 1, ชนะ 1026, ความยาว 0
2021-12-19 15:57:47.396847 IP 192.168.111.122.51683 > 192.168.111.136.443: Flags [P.], seq 1:518, ack 1, ชนะ 1026, ความยาว 517
2021-12-19 15:57:47.396852 IP 192.168.111.136.51683 > 192.168.111.1.443: Flags [P.], seq 1:518, ack 1, ชนะ 1026, ความยาว 517
2021-12-19 15:57:47.397080 IP 192.168.111.1.443 > 192.168.111.136.51683: ค่าสถานะ [.], ack 518, ชนะ 501, ความยาว 0
12-12-2021 15:57:47.397085 IP 192.168.111.136.443 > 192.168.111.122.51683: ค่าสถานะ [.], ack 518, ชนะ 501, ความยาว 0
2021-12-19 15:57:47.400934 IP 192.168.111.1.443 > 192.168.111.136.51683: Flags [P.], seq 1:1629, ack 518, win 501, length 1628
2021-12-19 15:57:47.400941 IP 192.168.111.136.443 > 192.168.111.122.51683: ค่าสถานะ [.], seq 1:1461, ack 518, ชนะ 501, ความยาว 1460
2021-12-19 15:57:47.400942 IP 192.168.111.136.443 > 192.168.111.122.51683: Flags [P.], seq 1461:1629, ack 518, win 501, length 168

โหลดกฎ iptables ผ่านสคริปต์บนคอมพิวเตอร์ทดสอบของฉัน:

doug@s19:~/iptables/misc$ cat ask1382639
#!/bin/sh
FWVER=0.01
#
# ask1382639 Smythies 2021.12.18 เวอร์ชั่น:0.01
# ดูที่นี่:
# https://askubuntu.com/questions/1382639
#
# เรียกใช้เป็น sudo บน s19
#
# หมายเหตุ: กฎเหล่านี้อาจต้องรวมเข้าด้วยกัน
# ชุดกฎ iptables ที่มีอยู่

echo "กำลังโหลดรุ่นชุดกฎ ask1382639 $FWVER..\n"

# ตำแหน่งของโปรแกรม iptables
#
IPTABLES=/sbin/iptables

#การตั้งค่าอินเทอร์เฟซและที่อยู่ภายนอกและภายในสำหรับเครือข่าย
#
# Smythies (สำหรับการทดสอบ)

EXTIF="br0"
EXTIP="192.168.111.136"
REDIRECTIP="192.168.111.1"
เครือข่าย="192.168.111.0/24"
จักรวาล="0.0.0.0/0"

#
# สำหรับเซิร์ฟเวอร์ที่แท้จริงของคำถาม
#
#EXTIF="ไม่รู้จัก"
#EXTIP="10.8.0.6"
#REDIRECTIP="10.8.0.1"
#NETWORK="10.8.0.0/24" สันนิษฐานว่าไม่รู้จักจริง
#UNIVERSE="0.0.0.0/0"


#CRITICAL: เปิดใช้งานการส่งต่อ IP เนื่องจากถูกปิดใช้งานตามค่าเริ่มต้น
#
echo กำลังเปิดใช้งานการส่งต่อ...
echo "1" > /proc/sys/net/ipv4/ip_forward

# ล้างการกำหนดค่าใด ๆ ก่อนหน้านี้
#ระวังตรงนี้ ฉันสามารถทำได้ใน s19 แต่ไม่รู้
# เกี่ยวกับเซิร์ฟเวอร์ของ Admia
#
echo " กำลังล้างกฎที่มีอยู่และตั้งค่านโยบายเริ่มต้น.."
$IPTABLES -P ยอมรับอินพุต
$IPTABLES -F อินพุต
$IPTABLES -P ยอมรับเอาต์พุต
$IPTABLES -F เอาต์พุต
$IPTABLES -P ยอมรับไปข้างหน้า
$IPTABLES -F ส่งต่อ
$IPTABLES -t แนท -F
# ลบเชนที่ผู้ใช้กำหนด
$IPTABLES -X
# รีเซ็ตตัวนับ IPTABLES ทั้งหมด
$IPTABLES -Z
# Smythies: แม้ว่าการอ้างอิงของฉันจะไม่มี แต่ฉันคิดว่าสิ่งนี้จำเป็น
$IPTABLES -t แนท -Z

# อันดับแรก: เปลี่ยนเส้นทางการรับส่งข้อมูลพอร์ต 443 ไปยังเซิร์ฟเวอร์อื่น
$IPTABLES -t nat -A PREROUTING -p tcp -i $EXTIF --dport 443 -j DNAT --to $REDIRECTIP

# ที่สอง: ปลายทางจำเป็นต้องรู้ว่าที่อยู่ IP ใดที่จะตอบกลับ
$IPTABLES -t nat -A POSTROUTING -p tcp -o $EXTIF --dport 443 -d $REDIRECTIP -j SNAT --ถึง $EXTIP

echo ask1382639 กฎชุดเวอร์ชัน $FWVER เสร็จแล้ว

และ:

doug@s19:~/iptables/misc$ sudo iptables -t แนท -xvnL
CHAIN ​​PREROUTING (นโยบายยอมรับ 177 แพ็คเก็ต, 13129 ไบต์)
    pkts bytes target prot เลือกใช้ปลายทางต้นทาง
       6 312 DNAT tcp -- br0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:443 ถึง:192.168.111.1

Chain INPUT (นโยบายยอมรับ 177 แพ็คเก็ต, 13129 ไบต์)
    pkts bytes target prot เลือกใช้ปลายทางต้นทาง

Chain POSTROUTING (นโยบายยอมรับ 3 แพ็กเก็ต 252 ไบต์)
    pkts bytes target prot เลือกใช้ปลายทางต้นทาง
       6 312 SNAT tcp -- * br0 0.0.0.0/0 192.168.111.1 tcp dpt:443 ถึง:192.168.111.136

Chain OUTPUT (นโยบายยอมรับ 3 แพ็กเก็ต 252 ไบต์)
    pkts bytes target prot เลือกใช้ปลายทางต้นทาง

โพสต์คำตอบ

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