ฉันตั้งค่าอุโมงค์ VPN สำเร็จแล้วด้วย หงส์ที่แข็งแกร่ง
ภายในคอนเทนเนอร์นักเทียบท่าและต้องการใช้การเชื่อมต่อทันเนลนั้นเพื่อส่งต่อพอร์ตเฉพาะเช่น SMTP ไปยังโฮสต์ที่อีกด้านหนึ่งของอุโมงค์ ในกรณีของฉัน โฮสต์ 10.0.0.10
.
เป้าหมายคือสามารถใช้ SMTP ในแอปของฉันได้โดยตรงโดยการเชื่อมต่อกับ Strongswan-ภาชนะ
บริการกลางๆแบบนี้
(smtp-host)-[IPSec-tunnel]-(strongswan-container [แสดงพอร์ต 25 และส่งต่อทุกอย่างไปยังทันเนล smtp-host])-[some-docker-network]-(my-mail-sending-app-container [ เรียก strongswan-container:25 สำหรับ smtp])
หลังจากอ่านเอกสารเกี่ยวกับเรื่องนี้แล้ว ฉันได้ลองสิ่งเหล่านี้ iptables
คำสั่งบน Strongswan-ภาชนะ
แต่ไม่ประสบความสำเร็จ:
iptables -t nat -A PREROUTING -p tcp --dport 25 -j DNAT --to-destination 10.0.0.10:25
iptables -t nat -A โพสต์ -p tcp -d 10.0.0.10 --dport 25 -j MASQUERADE
บน my-mail-sending-app-container
ฉันพยายามวิ่ง
telnet strongswan-คอนเทนเนอร์25
แต่จะรอการตอบกลับจนกว่าจะหมดเวลา
ปัญหาของฉันคืออะไร iptables
สั่งการ?
iptables-บันทึก
เอาต์พุตหลังจาก Strongswan เชื่อมต่อกับอุโมงค์แล้ว:
root@14d43f1e2f55:/# iptables-บันทึก
# สร้างโดย iptables-save v1.8.4 ในวันพฤหัสบดีที่ 22 กรกฎาคม 16:25:04 น. 2564
*กรอง
:อินพุต ยอมรับ [1:112]
:ส่งต่อ ยอมรับ [0:0]
:เอาต์พุตยอมรับ [1:112]
-A INPUT -s 10.0.0.0/16 -d 192.168.112.2/32 -i eth0 -m นโยบาย --dir ใน --pol ipsec --reqid 1 --proto esp -j ยอมรับ
-A OUTPUT -s 192.168.112.2/32 -d 10.0.0.0/16 -o นโยบาย eth0 -m --dir out --pol ipsec --reqid 1 --proto esp -j ACCEPT
ให้สัญญา
# เสร็จสิ้นเมื่อ พฤ. 22 ก.ค. 16:25:04 น. 2564
# สร้างโดย iptables-save v1.8.4 ในวันพฤหัสบดีที่ 22 กรกฎาคม 16:25:04 น. 2564
*แนท
: ยอมรับ [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:46701
-A DOCKER_OUTPUT -d 127.0.0.11/32 -p udp -m udp --dport 53 -j DNAT --to-ปลายทาง 127.0.0.11:58024
-A DOCKER_POSTROUTING -s 127.0.0.11/32 -p tcp -m tcp --sport 46701 -j SNAT --to-source :53
-A DOCKER_POSTROUTING -s 127.0.0.11/32 -p udp -m udp --sport 58024 -j SNAT --to-source :53
ให้สัญญา
# เสร็จสิ้นเมื่อ พฤ. 22 ก.ค. 16:25:04 น. 2564
ของฉัน ipsec.conf
:
การตั้งค่าคอนฟิก
เข้มงวดcrlpolicy=ไม่
รหัสเฉพาะ=ไม่มี
# left เป็นแบบโลคัลโดยค่าเริ่มต้น มิฉะนั้นจะตรวจพบด้านซ้ายและขวาแบบไดนามิก
คอน %default
เชื่อมต่อ "ezvpn"
การแลกเปลี่ยนคีย์=ikev2
ก้าวร้าว=ใช่
ike=(ตัวเข้ารหัสบางตัว) # พารามิเตอร์ Phase1
esp=(ตัวเข้ารหัสบางตัว) # พารามิเตอร์ Phase2
left=192.168.112.2 # local IP ที่ใช้เชื่อมต่อกับ IOS
leftid=12.123.123.1 # IKEID (ชื่อกลุ่ม) ใช้สำหรับ IOS
ไฟร์วอลล์ซ้าย=ใช่
leftauth = psk
rightauth=psk
การกระจายตัว = ใช่
right=12.123.123.2 #เกตเวย์ (IOS) IP
rightsubnet=10.0.0.0/16
ไฟร์วอลล์ขวา=ใช่
อัตโนมัติ=เส้นทาง
พิมพ์=อุโมงค์
ikelifetime=180m
คีย์ไลฟ์=60ม