Score:1

ไม่สามารถสร้างการเชื่อมต่อ s2s VPN ระหว่าง AWS EC2 และ OVH Public Cloud โดยใช้ WireGuard

ธง gb

ฉันไม่สามารถสร้างการเชื่อมต่อ VPN ระหว่างอินสแตนซ์ AWS EC2 และ OVH Public Cloud ใน /var/log/syslog ไม่มีข้อผิดพลาด - เป็นเพียงข้อมูลบางส่วนเกี่ยวกับ wg-รวดเร็ว การดำเนินการ เช่น การเพิ่มเส้นทาง เป็นต้น

อินสแตนซ์ AWS EC2:

  • ระบบปฏิบัติการ: อูบุนตู 20.04.2 LTS

  • ที่อยู่ IP ภายใน: เช่น 10.0.22.22/16 ens4

  • ที่อยู่ IP สาธารณะ: เช่น 123.123.123.123/32 อินเทอร์เฟซสาธารณะ aws

  • ท่าเรือ 12345/ดป และ 12345/tcp เปิดผ่านทาง กลุ่มรักษาความปลอดภัย

  • กำหนดค่า:
    /etc/wireguard/wg0.conf:

    [อินเตอร์เฟซ]
    ที่อยู่ = 10.10.0.1/24
    SaveConfig = เท็จ
    PrivateKey = <aws-private-key>
    ฟังพอร์ต = 12345
    PostUp = iptables -A FORWARD -i %i -j ยอมรับ; iptables -A ไปข้างหน้า -o %i -j ยอมรับ; iptables -t nat -A โพสต์ -o ens4 -j MASQUERADE;  
    PostDown = iptables -D FORWARD -i %i -j ยอมรับ; iptables -D ส่งต่อ -o %i -j ยอมรับ; iptables -t nat -D โพสต์ -o ens4 -j MASQUERADE;
    
    [เพียร์]
    PublicKey = <ovh-พับลิกคีย์>
    AllowedIPs = 10.10.0.2/24, 192.168.10.0/16
    จุดสิ้นสุด = 321.321.321.321:12345
    

อินสแตนซ์ OVH Public Cloud:

  • ระบบปฏิบัติการ: อูบุนตู 21.04

  • ที่อยู่ IP ภายใน: เช่น 192.168.10.100/16 enp0s2

  • ที่อยู่ IP สาธารณะ: เช่น 321.321.321.321/32 enp0s1

  • ท่าเรือ 12345/ดป และ 12345/tcp เปิดผ่านทาง ยูเอฟดับบลิว

  • กำหนดค่า:
    /etc/wireguard/wg0.conf:

    [อินเตอร์เฟซ]
    ที่อยู่ = 10.10.0.2/24
    SaveConfig = เท็จ
    PrivateKey = <ovh-ไพรเวทคีย์>
    ฟังพอร์ต = 12345
    PostUp = iptables -A FORWARD -i %i -j ยอมรับ; iptables -A ไปข้างหน้า -o %i -j ยอมรับ; iptables -t nat -A โพสต์ -o enp0s1 -j MASQUERADE;  
    PostDown = iptables -D FORWARD -i %i -j ยอมรับ; iptables -D ส่งต่อ -o %i -j ยอมรับ; iptables -t nat -D โพสต์ -o enp0s1 -j MASQUERADE;
    
    [เพียร์]
    PublicKey = <aws-พับลิกคีย์>
    IP ที่อนุญาต = 10.10.0.1/24, 10.0.0.0/16
    จุดสิ้นสุด = 123.123.123.123:12345
    

ทั้งสองกรณี:

  • net.ipv4.ip_forward=1 ใน /etc/sysctl.conf
  • สั่งการ: wg-รวดเร็วขึ้น /etc/wireguard/wg0.conf
  • ทั้งสองกำลังทำงานและได้สร้าง wg0 อินเตอร์เฟสกับ IP จาก wg0.conf

สรุป:

  • ขด เพื่อฟังแอปบนพอร์ตที่เปิดอยู่ 80/ตัน ไม่ทำงานทั้งสองด้าน

ฉันพลาดอะไรไปรึเปล่า? ฉันจะแก้ปัญหานี้ได้อย่างไร ฉันได้อ่านบทความหลายบทความ แต่ฉันไม่สามารถเข้าใจได้

อัปเดต:

การสื่อสารใช้งานได้หลังจากแก้ไข /etc/wireguard/wg0.conf:
จาก AllowedIPs = 10.10.0.x/24, (...) ถึง AllowedIPs = 10.10.0.x/32, (...)
ตามที่ @Tom Yan แนะนำ

แต่ฉันกำลังดิ้นรนกับการกำหนดเส้นทาง นี่คือลักษณะที่ส่ง Ping ไปยังเซิร์ฟเวอร์อื่นที่อยู่ในเครือข่ายเดียวกันกับเซิร์ฟเวอร์ VPN

ใน อ.ว.ส ฉันเพิ่มกฎตารางเส้นทาง:
192.168.10.0/16 ทาง อินเทอร์เฟซ AWS-VPN

ใน OVH-บางอินสแตนซ์ ฉันวิ่ง:
เส้นทาง ip เพิ่ม 10.0.0.0/16 ผ่าน 192.168.10.100 dev eno4

สรุปของการกระตุก:

OVH-VPN -> AWS-VPN ตกลง
OVH-VPN -> AWS-บางอินสแตนซ์หมดเวลา
OVH-บางอินสแตนซ์ -> AWS-VPN ตกลง
OVH-บางอินสแตนซ์ -> AWS-บางอินสแตนซ์หมดเวลา

AWS-VPN -> OVH-VPN ตกลง
AWS-VPN -> OVH-บางอินสแตนซ์ตกลง
AWS-some-instance -> OVH-VPN หมดเวลา
AWS-บางอินสแตนซ์ -> OVH-บางอินสแตนซ์หมดเวลา

ในบันทึกฉันเห็นเฉพาะข้อมูล:

$: dmesg -wH
[Jul20 13:40] wireguard: wg0: รับแพ็กเก็ต keepalive จากเพียร์ 5 (123.123.123.123:12345)

IPTables และการกำหนดเส้นทาง

AWS-VPN:

$: iptables-บันทึก
-P อินพุตยอมรับ
-P ยอมรับไปข้างหน้า
-P เอาต์พุตยอมรับ
-A ไปข้างหน้า -i wg0 -j ยอมรับ
-A ส่งต่อ -o wg0 -j ยอมรับ

$: เส้นทาง ip
ค่าเริ่มต้นผ่าน 10.0.22.1 dev ens4 proto dhcp src 10.0.22.22 เมตริก 100 
10.0.22.0/19 dev ens4 ลิงก์ขอบเขตเคอร์เนลโปรโต src 10.0.22.22 
10.0.22.1 dev ens4 proto dhcp ขอบเขตลิงก์ src 10.0.22.22 เมตริก 100 
ลิงก์ขอบเขต 10.10.0.2 dev wg0 
ลิงก์ขอบเขต 192.168.10.0/16 dev wg0 

### กฎ AWS Console Panel สำหรับเซิร์ฟเวอร์ AWS-VPN
TCP แบบกำหนดเอง TCP 12345 321.321.321.321/32
UDP แบบกำหนดเอง UDP 12345 321.321.321.321/32
การจราจรทั้งหมด ทั้งหมด ทั้งหมด 321.321.321.321/32
การจราจรทั้งหมด ทั้งหมด ทั้งหมด 10.0.0.0/16
การจราจรทั้งหมด ทั้งหมด ทั้งหมด 192.168.10.0/16
การจราจรทั้งหมด ทั้งหมด ทั้งหมด 10.10.0.2/32

OVH-VPN:

$: iptables-บันทึก
*กรอง
: ยอมรับอินพุต [26612:55893110]
:ส่งต่อ ยอมรับ [0:0]
: ยอมรับเอาต์พุต [34036:3715836]
-A ไปข้างหน้า -i wg0 -j ยอมรับ
-A ส่งต่อ -o wg0 -j ยอมรับ
ให้สัญญา
*แนท
: ยอมรับ [0:0]
:อินพุต ยอมรับ [0:0]
:เอาต์พุตยอมรับ [0:0]
:หลังยอมรับ [69:5450]
-A โพสต์ -o enp0s1 -j MASQUERADE
ให้สัญญา

$: เส้นทาง ip
ค่าเริ่มต้นผ่าน 321.321.321.1 dev enp0s1 โปรโต dhcp src 321.321.321.321 เมตริก 100 
ลิงก์ขอบเขต 10.0.0.0/16 dev wg0 
321.321.321.1 dev enp0s2 proto dhcp ขอบเขตลิงก์ src 321.321.321.321 เมตริก 100 
169.254.169.254 ผ่าน 192.168.10.2 dev enp0s2 โปรโต dhcp src 192.168.10.100 เมตริก 100 
ลิงก์ขอบเขต 10.10.0.1 dev wg0 
192.168.10.0/16 dev enp0s2 ลิงก์ขอบเขตเคอร์เนลโปรโต src 192.168.10.100

$: firewall-cmd --list-all-zones
# ฉันลบบรรทัดว่าง
ภายใน (ใช้งานอยู่)
  เป้าหมาย: ค่าเริ่มต้น
  icmp-block-inversion: ไม่
  อินเทอร์เฟซ: 
  แหล่งที่มา: 10.0.0.0/59 10.10.0.1/32 123.123.123.123/32
  บริการ: dhcpv6-client mdns ssh
  พอร์ต: 12345/tcp 12345/udp
สาธารณะ (ใช้งานอยู่)
  เป้าหมาย: ค่าเริ่มต้น
  icmp-block-inversion: ไม่
  อินเทอร์เฟซ: 
  แหล่งที่มา: 123.123.123.123/32
  บริการ: dhcpv6-client ssh
  พอร์ต: 12345/tcp 12345/udp

ฉันควรทำอะไรอีกเพื่อให้ใช้งานได้

Tim avatar
gp flag
Tim
ฉันจะเริ่มต้นด้วยการเปิดไฟร์วอลล์เพื่อให้ IMCP ตรวจสอบการเชื่อมต่อเครือข่าย จากนั้นฉันอาจ telnet ไปยังพอร์ตบนเครื่องแต่ละเครื่องเพื่อตรวจสอบว่า wireguard กำลังฟังอยู่ จากนั้นจึง telnet ไปยังพอร์ตจากเครื่องระยะไกล
Tom Yan avatar
in flag
โปรดอย่าใช้ `/24` ใน `AllowedIPs=` เว้นแต่ที่อยู่นั้นจะเป็น subnet ID (ดังนั้นควรเป็น `10.10.0.1/32` / `10.10.0.2/32` หรือแม้แต่แค่ `10.10.0.1` / `10.10.0.2` อันที่จริง หากคุณไม่อนุญาตเพียงแค่ `10.10.0.0 /24` ทั้งสองด้าน อาจไม่จำเป็นที่จะใช้ `/24` ใน `Address=`)
Tom Yan avatar
in flag
นอกจากนี้ `wg` ยังบอกคุณว่าเมื่อไหร่ / ถ้าคุณได้รับการจับมือจากอีกฝ่าย
maar avatar
gb flag
@TomYan ขอบคุณ! มันใช้งานได้หลังจากที่ฉันเปลี่ยน `AllowedIPs` ตามที่คุณแนะนำ แต่ฉันมีปัญหาในการกำหนดเส้นทาง .. ฉันได้แก้ไขโพสต์หลักแล้ว ผมขอขอบคุณความช่วยเหลือของคุณ!
Tom Yan avatar
in flag
คุณสามารถเพิ่มเอาต์พุต `iptables-save` ของทั้งสองโฮสต์ได้หรือไม่
maar avatar
gb flag
@TomYan แน่นอนว่าฉันได้อัปเดตเนื้อหาคำถามด้วยเอาต์พุต `iptables-save`
Tom Yan avatar
in flag
เหตุใดคุณจึงไม่ให้เอาต์พุต *จริง* สำหรับ `AWS-VPN`
Tom Yan avatar
in flag
นอกจากนี้ อย่างใดอย่างหนึ่ง/ทั้งสองอย่างเป็นเกตเวย์เริ่มต้นสำหรับบางอินสแตนซ์หรือไม่ เพื่อให้ `AWS-some-instance -> OVH-VPN` / `OVH-some-instance -> AWS-VPN` ทำงาน / ใช้งานได้ ควรมีเส้นทางสำหรับบางอินสแตนซ์ที่ครอบคลุม `10.10.0.1 ` และ `10.10.0.2` ตามลำดับ (เนื่องจากคุณไม่ใช่ `MASQUERADE`ing สำหรับสิ่งที่ออกจากอินเทอร์เฟซ VPN ทั้งสองด้าน) นอกจากนี้ คุณกล่าวว่าคุณเพิ่มเส้นทาง `192.168.10.0/16 ผ่าน [sic.] AWS-VPN-interface` คุณหมายความว่า wg-quick ไม่ได้เพิ่มให้คุณโดยอัตโนมัติใช่หรือไม่ เหตุใดเส้นทาง (ด้วยตนเอง) ที่เพิ่มที่คุณกล่าวถึงจึงไม่ "สมดุล"
maar avatar
gb flag
@TomYan เส้นทาง `192.168.10.0/16 ผ่าน [sic.] AWS-VPN-interface` ที่ฉันเพิ่มใน AWS Console Panel เป็นเส้นทางสำหรับอินสแตนซ์อื่นๆ (ทั้งเครือข่าย) นอกจากนี้ บนเซิร์ฟเวอร์ AWS-VPN ฉันมีเพียงอินเทอร์เฟซส่วนตัว (`ens4`) และมี NAT ปลายทางไปยัง IP สาธารณะผ่านไฟร์วอลล์ในตัว AWS นอกอินสแตนซ์ AWS-VPN บน OVH-VPN ฉันมีสองอินเทอร์เฟซ - อินเทอร์เฟซสาธารณะ (`enp0s1`) และส่วนตัว (`enp0s2`) และในฐานะไฟร์วอลล์ ฉันใช้ `firewalld` (ใน OVH-VPN)
maar avatar
gb flag
ดังนั้น หากฉันเข้าใจถูกต้องในด้าน AWS ฉันควรเพิ่มเส้นทาง `192.168.10.0/16 ผ่าน 10.10.0.1` หรือไม่ และบน OVH-VPN `10.10.0.2/16 ผ่าน 10.10.0.2`? เมื่อฉันพยายามทำสิ่งนั้นบนเซิร์ฟเวอร์ OVH อื่น ฉันมีข้อผิดพลาด: `ข้อผิดพลาด: Nexthop มีเกตเวย์ที่ไม่ถูกต้อง`
maar avatar
gb flag
@TomYan ฉันได้เพิ่ม ip route comand output จากทั้งสองอย่างด้วย
Tom Yan avatar
in flag
ให้เรา [ดำเนินการสนทนาต่อในการแชท](https://chat.stackexchange.com/rooms/127745/discussion-between-tom-yan-and-maar)

โพสต์คำตอบ

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