Score:2

Chaining WireGuard Servers: สามารถ ping ได้ทั้งจากไคลเอ็นต์ แต่ไม่สามารถเข้าถึงอินเทอร์เน็ตได้ ปัญหาการกำหนดเส้นทาง IP?

ธง cn

ฉันกำลังพยายามตั้งค่า VPN แบบ chained/double-hop ที่ทราฟฟิกไคลเอ็นต์ทั้งหมดผ่านเซิร์ฟเวอร์ 2 เครื่องก่อนที่จะเข้าถึงอินเทอร์เน็ต:

ลูกค้า â Server1 â Server2 â อินเทอร์เน็ตสาธารณะ

เพื่อนทั้งหมดอยู่ในบล็อกที่อยู่ส่วนตัวเหล่านี้: 10.103.213.0/24 (IPv4) และ fd6f:9403:2887:9cd6:10:103:213:0/112 (ไอพีวี6). ด้านล่างนี้คือการกำหนดค่าของเพียร์และกฎ IPTables ที่ใช้อยู่ (โปรดสังเกตชื่อไฟล์คอนฟิกูเรชันด้วย เผื่อสำคัญ)


การกำหนดค่า Server2

ไฟล์: /etc/wireguard/wg0.conf

#เซิร์ฟเวอร์2

[อินเตอร์เฟซ]
คีย์ส่วนตัว = SERVER2_PRIVATE_KEY
ที่อยู่ = 10.103.213.2/24, fd6f:9403:2887:9cd6:10:103:213:2/112
ListenPort = 53701
SaveConfig = เท็จ

#ลูกค้า

[เพียร์] # Server1
PublicKey = SERVER1_PUBLIC_KEY
PresharedKey = SERVER1_PRESHARED_KEY
# â เพื่ออนุญาตการรับส่งข้อมูลจากไคลเอ็นต์ (10.103.213.11/32) ผ่าน Server1 (10.103.213.1/32) อนุญาตทั้งสองอย่าง
AllowedIPs = 10.103.213.0/24, fd6f:9403:2887:9cd6:10:103:213:0/112

การกำหนดค่าไฟร์วอลล์ คำสั่ง:

ufw อนุญาต 53701/udp แสดงความคิดเห็น 'WireGuard VPN'

iptables -A ไปข้างหน้า -i wg0 -j ยอมรับ &&
iptables -A ไปข้างหน้า -o wg0 -j ยอมรับ &&
ip6tables -A ไปข้างหน้า -i wg0 -j ยอมรับ &&
ip6tables -A ไปข้างหน้า -o wg0 -j ยอมรับ

iptables -t nat -A POSTROUTING -s 10.103.213.0/24 -o enp8s0 -j ​​MASQUERADE
ip6tables -t nat -A POSTROUTING -s fd6f:9403:2887:9cd6:10:103:213:0/112 -o enp8s0 -j ​​MASQUERADE

การกำหนดค่า Server1

ไฟล์: /etc/wireguard/wg0.conf

#เซิร์ฟเวอร์1

[อินเตอร์เฟซ]
คีย์ส่วนตัว = SERVER1_PRIVATE_KEY
ที่อยู่ = 10.103.213.1/24, fd6f:9403:2887:9cd6:10:103:213:1/112
ListenPort = 53701
SaveConfig = เท็จ

#ลูกค้า

[เพียร์] #เซิร์ฟเวอร์2
PublicKey = SERVER2_PUBLIC_KEY
PresharedKey = SERVER1_PRESHARED_KEY
ปลายทาง = SERVER2_PUBLIC_IP:53701
AllowedIPs = 10.103.213.2/32, fd6f:9403:2887:9cd6:10:103:213:2/128
#PersistentKeepalive = 25

[เพียร์] #พีซี
PublicKey = CLIENT_PUBLIC_KEY
PresharedKey = CLIENT_PRESHARED_KEY
AllowedIPs = 10.103.213.11/32, fd6f:9403:2887:9cd6:10:103:213:11/128

การกำหนดค่าไฟร์วอลล์ คำสั่ง:

ufw อนุญาต 53701/udp แสดงความคิดเห็น 'WireGuard VPN'

iptables -A ไปข้างหน้า -i wg0 -j ยอมรับ &&
iptables -A ไปข้างหน้า -o wg0 -j ยอมรับ &&
ip6tables -A ไปข้างหน้า -i wg0 -j ยอมรับ &&
ip6tables -A ไปข้างหน้า -o wg0 -j ยอมรับ

การกำหนดค่าไคลเอนต์

# ลูกค้า: พีซี

[อินเตอร์เฟซ]
คีย์ส่วนตัว = CLIENT_PRIVATE_KEY
ที่อยู่ = 10.103.213.11/24, fd6f:9403:2887:9cd6:10:103:213:11/112
DNS = 10.103.213.1, fd6f:9403:2887:9cd6:10:103:213:1

[เพียร์] # Server1
PublicKey = SERVER1_PUBLIC_KEY
PresharedKey = CLIENT_PRESHARED_KEY
ปลายทาง = SERVER1_PUBLIC_IP:53701
IP ที่อนุญาต = 0.0.0.0/0, ::0/0
#PersistentKeepalive = 25

อย่างที่ฉันพูดไปแล้ว ฉันสามารถ ping Server1 (10.103.213.2) และ Server2 (10.103.213.1) จากลูกค้า (10.103.213.11) บนเครือข่ายส่วนตัว (WireGuard) เมื่อเปิดใช้งาน VPN บนเพียร์ทั้งหมด แต่ฉันไม่สามารถเข้าถึงอินเทอร์เน็ตได้.

ฉันรู้ว่าฉันขาดเส้นทาง IP หรือกฎ IPTables ที่จำเป็นมาก แต่แม้จะพยายามค้นหา วิธีแก้ปัญหาที่ฉันสามารถเข้าใจได้ หลายวันมานี้ ฉันไม่ประสบความสำเร็จเลย ฉันเห็นว่ามีความหวังเพียงเล็กน้อยสำหรับฉันหากไม่ได้อ่านหนังสือเกี่ยวกับระบบเครือข่าย/ไฟร์วอลล์ของ Linux

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

ขอบคุณมาก ๆ!


หมายเหตุ:

  • หากฉันขาดข้อมูลที่เป็นประโยชน์ โปรดสอบถาม เรายินดีให้ข้อมูล

  • ลูกค้าใช้งาน macOS Server1 และ Server2 ใช้ Debian 11 "Bullseye" เป็นเพียง FYI ในกรณีที่เกี่ยวข้อง

  • Server1 และ Server2 ได้ติดตั้ง Unbound และตั้งค่าสำหรับการแก้ไข DNS ในเครื่องแล้ว นั่นเป็นเหตุผลที่คุณเห็น DNS = 10.103.213.1, fd6f:9403:2887:9cd6:10:103:213:1 ในการกำหนดค่าไคลเอนต์ ถ้าไม่เช่นนั้น ฉันจะใช้ CloudFlare หรือ IP ของ Google ที่นั่น

  • มีคนใน #wireguard IRC แนะนำให้ฉันลองเพิ่ม ตาราง = 123 ภายใต้ [อินเตอร์เฟซ] ในการกำหนดค่า WireGuard ของ Server1 แล้วรันคำสั่ง กฎ ip เพิ่ม iif wg0 ตาราง 123. ไม่ได้ผลและฉันก็ไม่เข้าใจว่ามันควรทำอย่างไร (ฉันไม่สามารถเข้าใจถึงหน้าคนหรือรายละเอียดทางเทคนิค)

  • จากที่อ่านมาสรุปได้ว่า iptables และ ยูเอฟดับบลิว สามารถใช้ร่วมกันได้ เว้นแต่มีข้อระวังในการใช้งาน iptables-ถาวร. คุณต้องวิ่ง บันทึก netfilter-ถาวร แม้จะวิ่งแล้วก็ตาม ยูเอฟดับบลิว คำสั่งสำหรับกฎไฟร์วอลล์ที่จะคงอยู่ตลอดการรีบูต แม้ว่า สถานะ ufw กล่าวว่าพวกเขาอยู่ในสถานที่ หากคุณรีบูตด้วยเหตุผลบางอย่างก่อนที่จะบันทึก ให้ลบกฎ UFW และเพิ่มอีกครั้ง จากนั้นเรียกใช้ บันทึก netfilter-ถาวร.

iBug avatar
um flag
การผสม UFW และ iptables ดูเหมือนจะไม่ใช่ความคิดที่ดีสำหรับฉัน
cn flag
@iBug IDK ฉันอ่านเกี่ยวกับมันแล้วและสรุปได้ว่าสามารถใช้ร่วมกันได้ ยกเว้นคุณจะต้องระมัดระวังเมื่อใช้ `iptables-persistent` (`netfilter-persistent save` แม้หลังจากเรียกใช้ `ufw ` คำสั่ง). ไม่มีปัญหาอื่น ๆ แต่อย่างใด
Score:1
ธง cn

คนใจดีมากกว่าที่ #ไวร์การ์ด ช่อง IRC บน Libera.Chat ช่วยฉันด้วย!

ปัญหาเกี่ยวกับการกำหนดค่าของฉัน มีดังนี้

  • การกำหนดค่าของ Server1 มี Server2 ด้วย IP ที่อนุญาต ของที่อยู่ IP ของ Server2 เท่านั้น ที่ไม่อนุญาต "อินเทอร์เน็ต" มันจะต้องมี 0.0.0.0/0, ::0/0.

  • ต้องกำหนดค่าอินเทอร์เฟซ WireGuard ของ Server1 เพื่อเพิ่มเส้นทาง (สำหรับรายการทั้งหมดใน IP ที่อนุญาต) ไปยังตารางกำหนดเส้นทาง IP แบบกำหนดเอง (ขอเรียกว่า ไวร์การ์ด2x) แทน หลัก ตาราง. จากนั้นเพิ่มกฎนโยบาย IP ที่ระบุว่าการรับส่งข้อมูลด้วยอินเทอร์เฟซอินพุต (iif) wg0 ไปที่ตารางที่กำหนดเอง ซึ่งหมายความว่าการจราจรประเภทอื่นๆ จะใช้เส้นทางเริ่มต้นตามปกติ


แก้ไขการกำหนดค่า

การกำหนดค่า Server2

ไฟล์: /etc/wireguard/wg0.conf

#เซิร์ฟเวอร์2

[อินเตอร์เฟซ]
คีย์ส่วนตัว = SERVER2_PRIVATE_KEY
ที่อยู่ = 10.103.213.2/24, fd6f:9403:2887:9cd6:10:103:213:2/112
ListenPort = 53701
SaveConfig = เท็จ

#ลูกค้า

[เพียร์] # Server1
PublicKey = SERVER1_PUBLIC_KEY
PresharedKey = SERVER1_PRESHARED_KEY
# â เพื่ออนุญาตการรับส่งข้อมูลจากไคลเอ็นต์ (10.103.213.11/32) ผ่าน Server1 (10.103.213.1/32) อนุญาตทั้งสองอย่าง
AllowedIPs = 10.103.213.0/24, fd6f:9403:2887:9cd6:10:103:213:0/112

การกำหนดค่าไฟร์วอลล์ คำสั่ง:

ufw อนุญาต 53701/udp แสดงความคิดเห็น 'WireGuard VPN'

iptables -A ไปข้างหน้า -i wg0 -j ยอมรับ &&
iptables -A ไปข้างหน้า -o wg0 -j ยอมรับ &&
ip6tables -A ไปข้างหน้า -i wg0 -j ยอมรับ &&
ip6tables -A ไปข้างหน้า -o wg0 -j ยอมรับ

iptables -t nat -A โพสต์ -s 10.103.213.0/24 -o enp7s0 -j ​​MASQUERADE
ip6tables -t nat -A POSTROUTING -s fd6f:9403:2887:9cd6:10:103:213:0/112 -o enp7s0 -j ​​MASQUERADE

การกำหนดค่า Server1

ไฟล์: /etc/wireguard/wg0.conf

#เซิร์ฟเวอร์1

[อินเตอร์เฟซ]
คีย์ส่วนตัว = SERVER1_PRIVATE_KEY
ที่อยู่ = 10.103.213.1/32, fd6f:9403:2887:9cd6:10:103:213:1/128
ListenPort = 53701
ตาราง = wireguard2x
# â ควรตั้งค่าเฉพาะเมื่อติดตั้ง resolvconf หรือ openresolv บนระบบ มิฉะนั้นให้ระบบใช้ค่าเริ่มต้น
# â ไม่จำเป็นหากตั้งค่าการแก้ไข DNS ในเครื่อง
#DNS = 1.1.1.1, 1.0.0.1, 2606:4700:4700::1111, 2606:4700:4700::1001
DNS = 10.103.213.1, fd6f:9403:2887:9cd6:10:103:213:1
SaveConfig = เท็จ

#ลูกค้า

[เพียร์] #เซิร์ฟเวอร์2
PublicKey = SERVER2_PUBLIC_KEY
PresharedKey = SERVER1_PRESHARED_KEY
ปลายทาง = SERVER2_PUBLIC_IP:53701
IP ที่อนุญาต = 0.0.0.0/0, ::0/0
#PersistentKeepalive = 25

[เพียร์] #พีซี
PublicKey = CLIENT_PUBLIC_KEY
PresharedKey = CLIENT_PRESHARED_KEY
AllowedIPs = 10.103.213.11/32, fd6f:9403:2887:9cd6:10:103:213:11/128

การกำหนดค่าไฟร์วอลล์ คำสั่ง:

ufw อนุญาต 53701/udp แสดงความคิดเห็น 'WireGuard VPN'

iptables -A ไปข้างหน้า -i wg0 -j ยอมรับ &&
iptables -A ไปข้างหน้า -o wg0 -j ยอมรับ &&
ip6tables -A ไปข้างหน้า -i wg0 -j ยอมรับ &&
ip6tables -A ไปข้างหน้า -o wg0 -j ยอมรับ

echo 123 wireguard2x >> /etc/iproute2/rt_tables
กฎ ip เพิ่มตาราง iif wg0 wireguard2x

การกำหนดค่าไคลเอนต์

# ลูกค้า: พีซี

[อินเตอร์เฟซ]
คีย์ส่วนตัว = CLIENT_PRIVATE_KEY
ที่อยู่ = 10.103.213.11/32, fd6f:9403:2887:9cd6:10:103:213:11/128
DNS = 10.103.213.1, fd6f:9403:2887:9cd6:10:103:213:1

[เพียร์] # Server1
PublicKey = SERVER1_PUBLIC_KEY
PresharedKey = CLIENT_PRESHARED_KEY
ปลายทาง = SERVER1_PUBLIC_IP:53701
IP ที่อนุญาต = 0.0.0.0/0, ::0/0
#PersistentKeepalive = 25

หมายเหตุ:

  • คุณสามารถดูกฎการกำหนดเส้นทางนโยบายทั้งหมดที่มีผลใช้อยู่ในปัจจุบันโดยใช้คำสั่งนี้: รายการกฎ ip หรือ กฎไอพี

  • ดูตารางเส้นทางด้วย เช่น ตารางแสดงเส้นทาง ip wireguard2x หรือ ตารางรายการเส้นทาง ip wireguard2x.

  • ในการล้างแคชเส้นทาง: เส้นทาง ip ล้างแคช

  • อ่านเพิ่มเติม: Linux Advanced Routing & Traffic Control (LARTC) HOWTO

  • คุณสามารถตรวจสอบโฟลว์ทราฟฟิกเครือข่ายของไคลเอ็นต์หากใช้บน Linux โดยใช้ sudo iptraf-ng; บน macOS โดยใช้ sudo iftop. (ที่จะรันบนไคลเอนต์)

    • ฉันพบว่าการทำงานเป็นเรื่องยากที่จะแยกวิเคราะห์เนื่องจากการเปลี่ยนแปลงแบบสดมากเกินไป ดังนั้นฉันจึงแนะนำให้ลอง เส้นทางรับ 192.0.2.0 (ซึ่งแสดงอินเทอร์เฟซที่ใช้ เช่น อินเทอร์เฟซ: utun2) แล้ววิ่ง ifconfig <อินเทอร์เฟซ> (เช่น., ifconfig utun2) บน macOS หลังควรแสดงที่อยู่ IP ส่วนตัวของลูกค้า (WireGuard peer) เช่น 10.103.213.11ยืนยันว่าทราฟฟิกถูกกำหนดเส้นทางผ่านอินเทอร์เฟซ WG มันไม่มาก แต่มันเป็นการเริ่มต้น

    • อัปเดต: ติดตามเส้นทาง ยอดเยี่ยมสำหรับสิ่งนี้! ตัวอย่างเช่น ติดตามเส้นทาง 8.8.8.8. (ทิปหมวกให้คริสปัส คาเมา.)

  • ขด ipinfo.io เพื่อตรวจสอบที่อยู่ IP ของคุณโดยเปิดใช้งาน VPN (ที่จะรันบนไคลเอนต์)

ที่เกี่ยวข้อง:

Score:0
ธง us

คำตอบของ its_me นั้นใช้งานได้ดีสำหรับฉัน ด้านล่างนี้คือการเปลี่ยนแปลงบางอย่างที่ฉันทำเพื่อสร้าง/ลบตารางเส้นทาง iptables และกฎ ip โดยอัตโนมัติ การทำงานอัตโนมัติเกิดขึ้นเมื่ออินเทอร์เฟซ wireguard ถูกดึงขึ้นและลง โปรดทราบว่าฉันไม่ได้ใช้ ipv6 หรือ ufw ในการกำหนดค่านี้:

เซิร์ฟเวอร์1:

# เพิ่มตารางเส้นทางสำหรับอินเทอร์เฟซนี้
PreUp = echo 1 wireguard2x >> /etc/iproute2/rt_tables
# เพิ่มกฎ ip เพื่อชี้อินเทอร์เฟซนี้ที่ตารางเส้นทางใหม่
PreUp = กฎ ip เพิ่มตาราง iif %i wireguard2x
# ตั้งค่า iptables
PostUp = iptables -A FORWARD -i %i -j ยอมรับ
PostUp = iptables -A FORWARD -o %i -j ยอมรับ

# ลบ iptables
PostDown = iptables -D FORWARD -i %i -j ยอมรับ
PostDown = iptables -D FORWARD -o %i -j ยอมรับ
# ค้นหาและลบกฎ IP
PostDown = กฎ ip | grep "จากทั้งหมด iif %i" | ตัด -d: -f1 | xargs -L1 ip กฎเดลก่อน
# ลบตาราง ip
PostDown = sed -i '/wireguard2x/d' /etc/iproute2/rt_tables

เซิร์ฟเวอร์ 2:

PostUp = iptables -A FORWARD -i %i -j ยอมรับ
PostUp = iptables -A FORWARD -o %i -j ยอมรับ
PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ยอมรับ
PostDown = iptables -D FORWARD -o %i -j ยอมรับ
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
cn flag
ใช่ ฉันทราบเกี่ยวกับ 'PostUp' และ 'PostDown' ในการกำหนดค่า WG ฉันแค่ชอบให้กฎไฟร์วอลล์ทั้งหมดของฉัน (รวมถึงกฎของระบบและแอปอื่นๆ) อยู่ในที่เดียว ดังนั้นจึงชอบที่จะเพิ่มด้วยตนเอง
Aman Juman avatar
ng flag
@computerguy1 ฉันลองกำหนดค่าของคุณแล้ว มันสามารถเชื่อมต่อกับ Server-II ได้ แต่ในที่สุดก็สูญเสียการเข้าถึง SSH ไปยัง Server-I นอกจากนี้ ฉันไม่สามารถเชื่อมต่อกับ Server-I โดยใช้ไคลเอนต์ WireGuard ใดๆ
Score:0
ธง cn

(อ้างอิงจากความยอดเยี่ยมของ Chrispus Kamau ไวร์การ์ด VPN แบบฝึกหัดสำหรับ การตั้งค่าทั่วไป และ การตั้งค่าแบบเชื่อมโยงดูเหมือนว่าฉันอาจมีวิธีแก้ปัญหา (ยังไม่ทดลอง!) ในรูปแบบที่แสดงให้เห็นว่าสามารถจัดการการตั้งค่าที่ค่อนข้างผิดปกติ/ซับซ้อนได้อย่างไร หรืออย่างน้อยก็ให้แนวคิดแก่คุณ ขอบคุณมาก CK!)

ทาง: https://github.com/iamckn/chained-wireguard-ansible


มันทำงานอย่างไร:

  • ลูกค้า (vpn0) 10.200.200.0/24 (wg0) â คนกลาง (ประตู0) 10.100.100.0/24 (wg0) ประตู (wg0) â อินเทอร์เน็ตสาธารณะ

  • สมมติว่า Unbound ถูกตั้งค่าทั้งบน Middleman และ Gate สำหรับการแก้ไข DNS ในเครื่อง

การกำหนดค่าประตู

กำหนดค่าอินเทอร์เฟซ VPN ของเกต (wg0).

ไฟล์: /etc/wireguard/wg0.conf

#เซิร์ฟเวอร์

[อินเทอร์เฟซ] # ประตู
คีย์ส่วนตัว = GATE_PRIVATE_KEY
ที่อยู่ = 10.100.100.1/24
ListenPort = 53701
SaveConfig = เท็จ

#ลูกค้า

[เพียร์] #คนกลาง
PublicKey = MIDDLEMAN_PUBLIC_KEY
PresharedKey = MIDDLEMAN_PRESHARED_KEY
IP ที่อนุญาต = 10.0.0.0/8

การกำหนดค่าไฟร์วอลล์ คำสั่ง:

# ติดตามการเชื่อมต่อ VPN
## ติดตามห่วงโซ่อินพุต
iptables -A INPUT -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
## ติดตามห่วงโซ่ไปข้างหน้า
iptables -A FORWARD -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ

# อนุญาตการเชื่อมต่อ WireGuard / การรับส่งข้อมูล VPN บนพอร์ตการรับฟัง
iptables -A INPUT -p udp -m udp --dport 53701 -m conntrack --ctstate ใหม่ -j ยอมรับ

# อนุญาตการรับส่งข้อมูล DNS แบบเรียกซ้ำทั้ง TCP และ UDP
iptables -A INPUT -s 10.100.100.0/24 -p tcp -m tcp --dport 53 -m conntrack --ctstate ใหม่ -j ยอมรับ
iptables -A INPUT -s 10.100.100.0/24 -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ยอมรับ

# อนุญาตการส่งต่อแพ็กเก็ตที่อยู่ในอุโมงค์ VPN
iptables -A FORWARD -i wg0 -o wg0 -m conntrack --ctstate ใหม่ -j ยอมรับ

# ตั้งค่า NAT
iptables -t nat -A โพสต์ -s 10.100.100.0/24 -o enp7s0 -j ​​MASQUERADE

เปิดอินเทอร์เฟซ VPN ของเกทและเปิดใช้งานบริการ WireGuard เพื่อรีสตาร์ทโดยอัตโนมัติเมื่อบูต:

wg-เร่งขึ้น wg0
systemctl เปิดใช้งาน wg-quick@wg0

การกำหนดค่าคนกลาง

กำหนดค่าอินเทอร์เฟซที่หันไปทางประตูของคนกลาง (ประตู0). ที่นี่พ่อค้าคนกลางทำหน้าที่เป็นลูกค้า

ไฟล์: /etc/wireguard/gate0.conf

[เฟซ] #คนกลาง
คีย์ส่วนตัว = MIDDLEMAN_PRIVATE_KEY
ที่อยู่ = 10.100.100.2/32
DNS = 10.100.100.1
SaveConfig = เท็จ

# เพื่อน

[เพียร์] # ประตู
PublicKey = GATE_PUBLIC_KEY
PresharedKey = MIDDLEMAN_PRESHARED_KEY
ปลายทาง = GATE_PUBLIC_IP:53701
IP ที่อนุญาต = 0.0.0.0/0
#PersistentKeepalive = 21

กำหนดค่าอินเทอร์เฟซที่ติดต่อกับลูกค้าของคนกลาง (wg0). ที่นี่พ่อค้าคนกลางทำหน้าที่เป็นเซิร์ฟเวอร์

ไฟล์: /etc/wireguard/wg0.conf

#เซิร์ฟเวอร์

[เฟซ] #คนกลาง
คีย์ส่วนตัว = MIDDLEMAN_PRIVATE_KEY
ที่อยู่ = 10.200.200.1/24
ListenPort = 53701
SaveConfig = เท็จ

#ลูกค้า

[เพียร์] #พีซี
PublicKey = CLIENT_PUBLIC_KEY
PresharedKey = CLIENT_PRESHARED_KEY
IP ที่อนุญาต = 10.200.200.2/32

การกำหนดค่าไฟร์วอลล์ คำสั่ง:

iptables -A INPUT -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ
iptables -A FORWARD -m conntrack --ctstate ที่เกี่ยวข้อง ก่อตั้ง -j ยอมรับ

iptables -A INPUT -p udp -m udp --dport 53701 -m conntrack --ctstate ใหม่ -j ยอมรับ

iptables -A INPUT -s 10.200.200.0/24 -p tcp -m tcp --dport 53 -m conntrack --ctstate ใหม่ -j ยอมรับ
iptables -A INPUT -s 10.200.200.0/24 -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ยอมรับ

iptables -A FORWARD -i wg0 -o wg0 -m conntrack --ctstate ใหม่ -j ยอมรับ

iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o enp41s0 -j ​​MASQUERADE

# ตั้งค่าเครือข่าย VPN NAT
iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -j SNAT --to-source 10.100.100.2

กำหนดค่าการกำหนดเส้นทางนโยบายบนพ่อค้าคนกลางเพื่อกำหนดเส้นทางการรับส่งข้อมูลจากไคลเอ็นต์ไปยังเกต

echo "1 คนกลาง" >> /etc/iproute2/rt_tables

# ส่งต่อการรับส่งข้อมูลทั้งหมดไปที่ประตู
เส้นทาง ip เพิ่ม 0.0.0.0/0 dev gate0 คนกลางตาราง

# หรือส่งต่อการรับส่งข้อมูลไปยัง 4.2.2.2 (เช่น) ไปยังประตูเท่านั้น
#ip เส้นทางเพิ่ม 4.2.2.2/32 dev gate0 คนกลางตาราง

กฎ ip เพิ่มจากคนกลางการค้นหา 10.200.200.0/24

เปิดอินเทอร์เฟซ WireGuard ของคนกลางและเปิดใช้งานบริการ WireGuard เพื่อรีสตาร์ทโดยอัตโนมัติเมื่อบูต:

wg-ประตูขึ้นอย่างรวดเร็ว0
systemctl เปิดใช้งาน wg-quick@gate0

wg-เร่งขึ้น wg0
systemctl เปิดใช้งาน wg-quick@wg0

การกำหนดค่าไคลเอนต์

ไฟล์: /etc/wireguard/vpn0.conf

[อินเตอร์เฟซ]
คีย์ส่วนตัว = CLIENT_PRIVATE_KEY
ที่อยู่ = 10.200.200.2/32
DNS = 10.200.200.1

# เพื่อน

[เพียร์] #คนกลาง
PublicKey = MIDDLEMAN_PUBLIC_KEY
PresharedKey = CLIENT_PRESHARED_KEY
ปลายทาง = MIDDLEMAN_PUBLIC_IP:53701
IP ที่อนุญาต = 0.0.0.0/0
#PersistentKeepalive = 21

ในที่สุดเปิดใช้งาน WireGuard บนไคลเอนต์

โพสต์คำตอบ

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