Score:0

มิเรอร์ทราฟฟิกขาเข้าบนพอร์ตเฉพาะไปยัง IP อื่นโดยใช้อุโมงค์ IPSec strongswan ของฉัน

ธง za

ฉันต้องการเผยแพร่เซิร์ฟเวอร์ SMTP ภายใน (IP 10.0.0.10) ที่อยู่หลังอุโมงค์ VPN บนเซิร์ฟเวอร์ภายในของฉัน (192.168.0.12) โดยใช้ หงส์ที่แข็งแกร่ง. ของฉัน หงส์ที่แข็งแกร่ง กำลังทำงานภายในคอนเทนเนอร์นักเทียบท่า

สำหรับสิ่งนี้ฉันต้องการเซิร์ฟเวอร์ภายในของฉัน 192.168.0.12 เพื่อฟังพอร์ต 25 และส่งต่อทราฟฟิกไปยังเซิร์ฟเวอร์ทันเนลบนพอร์ตเดียวกัน 10.0.0.10:25.

จนถึงตอนนี้ฉันลองใช้ iptables แต่ไม่ประสบความสำเร็จ

net.ipv4.ip_forward เปิดใช้งานบนโฮสต์และคอนเทนเนอร์นักเทียบท่า!

ของฉัน iptables-บันทึก บน 192.168.0.12 หลังจากที่ strongswan เชื่อมต่อกับอุโมงค์แล้ว: (และใช่ ฉันสามารถ ping 10.0.0.10 จาก 192.168.0.12 ได้)

# สร้างโดย iptables-save v1.8.4 เมื่อวันศุกร์ที่ 23 กรกฎาคม 09:55:05 น. 2021
*กรอง
:อินพุต ยอมรับ [0:0]
:ส่งต่อ ยอมรับ [0:0]
:เอาต์พุตยอมรับ [0:0]
-A INPUT -s 10.0.0.0/16 -d 192.168.0.10/32 -i eth0 -m นโยบาย --dir ใน --pol ipsec --reqid 1 --proto esp -j ยอมรับ
-A OUTPUT -s 192.168.0.10/32 -d 10.0.0.0/16 -o นโยบาย eth0 -m --dir out --pol ipsec --reqid 1 --proto esp -j ACCEPT
ให้สัญญา
# เสร็จสิ้นเมื่อ ศ. 23 ก.ค. 09:55:05 น. 2564
# สร้างโดย iptables-save v1.8.4 เมื่อวันศุกร์ที่ 23 กรกฎาคม 09:55:05 น. 2021
*แนท
: ยอมรับ [0:0]
:อินพุต ยอมรับ [0:0]
:เอาต์พุตยอมรับ [2:1600]
:หลังยอมรับ [2:1600]
:DOCKER_OUTPUT - [0:0]
:DOCKER_POSTROUTING - [0:0]
-A OUTPUT -d 127.0.0.11/32 -j DOCKER_OUTPUT
-A POSTROUTING -d 127.0.0.11/32 -j DOCKER_POSTROUTING
-A DOCKER_OUTPUT -d 127.0.0.11/32 -p tcp -m tcp --dport 53 -j DNAT --to-ปลายทาง 127.0.0.11:45165
-A DOCKER_OUTPUT -d 127.0.0.11/32 -p udp -m udp --dport 53 -j DNAT --to-ปลายทาง 127.0.0.11:53306
-A DOCKER_POSTROUTING -s 127.0.0.11/32 -p tcp -m tcp --sport 45165 -j SNAT --to-source :53
-A DOCKER_POSTROUTING -s 127.0.0.11/32 -p udp -m udp --sport 53306 -j SNAT --to-source :53
ให้สัญญา

สั่งการ ไอพีอาร์ เอาต์พุต:

ค่าเริ่มต้นคือ 192.168.16.1 dev eth0
192.168.16.0/20 dev eth0 proto kernel scope link src 192.168.16.10 # นี่คือเครือข่ายภายในนักเทียบท่าสำหรับบริการของฉัน
192.168.0.10/30 dev eth1 proto kernel ขอบเขตลิงค์ src 192.168.0.12

ฉันลองใช้คำสั่งต่าง ๆ เช่นนี้:

iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 10.0.0.10:25
iptables -t nat -A POSTROUTING -p tcp -d 10.0.0.10 --dport 25 -j SNAT --to-source 192.168.0.12

แต่ไม่ประสบความสำเร็จ

ฉันไม่สามารถให้ข้อมูลใด ๆ เกี่ยวกับ ไอพีอาร์ ของเจ้าภาพหรือของ iptables-บันทึก.

ผมทำอะไรผิดหรือเปล่า?

Tom Yan avatar
in flag
โปรดระบุผลลัพธ์ของคำสั่งต่อไปนี้บน *ทั้งคอนเทนเนอร์โฮสต์และคอนเทนเนอร์*: `ip r` (และอาจรวมถึง `ip a`), `iptables-save` และ `sysctl net.ipv4.ip_forward`
za flag
@TomYan เพิ่มข้อมูลทั้งหมดที่ฉันรวบรวมได้ ฉันถูกจำกัดในเครื่องโฮสต์ ฉันจัดการเพื่อถามโฮสต์ว่าเปิดใช้งานการส่งต่อ IP หรือไม่ และเปิดใช้งานอยู่
Tom Yan avatar
in flag
ฉันไม่เข้าใจ. คุณไม่สามารถควบคุม `เซิร์ฟเวอร์ภายในของฉัน (192.168.0.10)`? หรือเป็นภาชนะอื่นจริง ๆ ? (วิ่งคู่ขนานกับ Strongswan ซึ่งก็คือ `192.168.0.12`?)
Tom Yan avatar
in flag
ดูเหมือนว่าเอาต์พุต `ip r` จะปิดเช่นกัน`192.168.0.12` ไม่ใช่ที่อยู่โฮสต์ที่ถูกต้องด้วย `/30` (เนื่องจากจะเป็น subnet ID)
za flag
@TomYan ขอบคุณสำหรับความช่วยเหลือของคุณ ฉันอัปเดต IP เพื่อให้ถูกต้องแล้ว ฉันไม่สามารถควบคุมโฮสต์ที่กำลังเรียกใช้คอนเทนเนอร์นักเทียบท่า ฉันควบคุมเฉพาะคอนเทนเนอร์นักเทียบท่า `192.168.0.12` เท่านั้น ฉันแน่ใจว่าปัญหาไม่ได้อยู่ที่โฮสต์ แต่เกิดจากการกำหนดค่า `iptables` ภายในคอนเทนเนอร์นักเทียบท่า
Tom Yan avatar
in flag
ปัญหาคือใคร / โฮสต์ใดที่จะให้บริการเซิร์ฟเวอร์ / คอนเทนเนอร์ / ส่งต่อ และที่อยู่ใน `eth1` นี้มีการกำหนดค่าอย่างไร ดีเอชซีพี? คงที่? (โดยคุณ?) อย่างที่ฉันพูด ผลลัพธ์ของ `ip r` นั้นไม่สมเหตุสมผลเลย มันเป็นแป้ง "ของจริง" หรือไม่? (หรือเป็น "เขียน/พิมพ์ลง" บ้าง) และ "เครือข่ายภายในนักเทียบท่า" (`eth0`) นี้ควรจะไม่เกี่ยวข้องกับเป้าหมาย/ลูกค้าของคุณที่นี่หรือไม่
Tom Yan avatar
in flag
นอกจากนี้ หากเซิร์ฟเวอร์/ผู้ส่งต่อนี้เป็นคอนเทนเนอร์เดียวกันกับคอนเทนเนอร์ที่แข็งแกร่ง เส้นทางไปยังอุโมงค์อยู่ที่ไหน คุณได้กำหนดค่าการกำหนดเส้นทางนโยบายหรืออะไร
cn flag
คุณจะทดสอบสิ่งนี้ได้อย่างไร? โดยเชื่อมต่อกับพอร์ต 25 ของโฮสต์? หรือจากภาชนะอื่น? ไม่ว่าจะด้วยวิธีใด แพ็กเก็ตเหล่านี้เข้าสู่คอนเทนเนอร์และเป็นไปตามกฎ NAT หรือไม่
za flag
@ecdsa ฉันทดสอบสิ่งนี้ด้วย `telnet 10.0.0.10 25` บน `strongswan container` และเป้าหมายคือ `telnet strongswan 25` โดยสมมติว่าชื่อคอนเทนเนอร์คือ `strongswan`
Score:0
ธง za

ฉันแก้ไขปัญหาโดยใช้ เทรฟิค.

ฉันติดตั้ง traefik บนโฮสต์ (192.168.0.12) ที่มี อุโมงค์หงส์ และใช้ก เราเตอร์ TCP เพื่อส่งต่อการจราจรทั้งหมดไปยังอุโมงค์

เทรฟิค การติดตั้ง:

wget -O /traefik.tar.gz https://github.com/traefik/traefik/releases/download/v2.4.12/traefik_v2.4.12_linux_amd64.tar.gz \
    && tar -zxvf /traefik.tar.gz \
    && ln -s /traefik /usr/bin/traefik

traefik.yaml:

จุดเข้า:
  smtp:
    ที่อยู่: ":1025"

บันทึกการเข้าถึง: {}

ผู้ให้บริการ:
  ไฟล์:
    ไดเรกทอรี: /traefik-conf/dynamic/
    ดู: จริง

API:
  แดชบอร์ด: จริง
  ไม่ปลอดภัย: จริง

ของฉัน /traefik-conf/dynamic/dynamic.yaml:

ทีซีพี:
  เราเตอร์:
    smtp-เราเตอร์:
      กฎ: "HostSNI(`*`)"
      จุดเข้า:
        - smtp
      บริการ: บริการ smtp

  บริการ:
    บริการ smtp:
      โหลดบาลานเซอร์:
        เซิร์ฟเวอร์:
          - ที่อยู่: 10.0.0.10:25

วิ่ง เทรฟิค (ฉันไม่รู้วิธีเรียกใช้อย่างถูกต้องเป็นภูตพื้นหลัง):

traefik --configfile /traefik-conf/traefik.yml &

ตอนนี้ฉันสามารถเชื่อมต่อกับอุโมงค์ได้แล้ว เซิร์ฟเวอร์ smtp จากทุกที่ในเครือข่ายของฉันโดยใช้ 192.168.0.12:1025.

ฉันสร้างตัวอย่างโดยใช้ docker over ที่นี่บน GitHub

โพสต์คำตอบ

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