Score:1

Wireguard ส่งต่อการรับส่งข้อมูลไปยังโฮสต์

ธง cn

ฉันใช้ Wireguard เป็นคอนเทนเนอร์นักเทียบท่าบน pi ฉันกำลังใช้บริการอื่น ๆ อีกสองสามรายการบน pi ที่ฉันต้องการให้เข้าถึงได้ผ่านการเชื่อมต่อ wireguard เท่านั้น เซิร์ฟเวอร์ wireguard สร้างอินเทอร์เฟซ wg0 และเครือข่ายย่อย 10.8.0.0/24. จากภายในคอนเทนเนอร์ฉันสามารถเชื่อมต่อกับโฮสต์ผ่าน 172.17.0.1 ดังนั้นฉันจึงค้นหาและสามารถสร้างการกำหนดค่าต่อไปนี้ภายในคอนเทนเนอร์:

iptables -t nat -A PREROUTING -d 10.8.0.1/32 -j DNAT --to-destination 172.17.0.1

สิ่งนี้ทำให้ฉันสามารถเชื่อมต่อจากไคลเอนต์ wireguard ไปยัง ip โฮสต์ของ wireguard 10.8.0.1 และด้วยวิธีนั้นเชื่อมต่อกับบริการทั้งหมดที่ทำงานบนคอนเทนเนอร์และคอนเทนเนอร์อื่น ๆ

วิธีนี้ใช้ได้ดี ยกเว้นว่า ip ต้นทางแสดง ip จากคอนเทนเนอร์นักเทียบท่า

ฉันมีคำถาม 3 ข้อ:

  1. มีวิธีใดบ้างที่จะแสดง ip ต้นทางเป็น 10.8.0.2 (ip ไคลเอนต์ wireguard)?
  2. สิ่งนี้กำหนดความเสี่ยงด้านความปลอดภัยหรือไม่?
  3. มีวิธีที่ดีกว่าในการทำเช่นนี้หรือไม่?

ฉันทราบว่าฉันสามารถใช้โหมดโฮสต์นักเทียบท่าแทนโหมดบริดจ์ได้ แต่นั่นก็มาพร้อมกับความท้าทายในตัวมันเอง ฉันรู้ด้วยว่าฉันสามารถเข้าถึงได้ 172.17.0.1 จากไคลเอ็นต์ VPN เฉพาะที่ใช้ไม่ได้เมื่อเชื่อมต่อกับ VPN หลายตัวพร้อมกัน

ขอบคุณมากล่วงหน้า

Score:1
ธง cn
  1. มีวิธีใดบ้างที่จะแสดง IP ต้นทางเป็น 10.8.0.2 (IP ไคลเอ็นต์ wireguard)

คุณอาจมีกฎ iptables ทำงานในคอนเทนเนอร์ที่มีลักษณะดังนี้:

iptables -t nat -A โพสต์ -o eth0 -j MASQUERADE

นั่นคือสิ่งที่กำลังเปลี่ยน IP ต้นทางของการเชื่อมต่อที่ส่งต่อผ่านคอนเทนเนอร์ WireGuard ด้วยแนวทางปัจจุบันของคุณ เพื่อหลีกเลี่ยงการใช้กฎนี้ คุณจะต้องปรับการกำหนดเส้นทางในแต่ละคอนเทนเนอร์อื่นๆ เพื่อใช้คอนเทนเนอร์ WireGuard เป็นเกตเวย์ไปยังไคลเอ็นต์ WireGuard ระยะไกล

  1. สิ่งนี้กำหนดความเสี่ยงด้านความปลอดภัยหรือไม่?

ไคลเอนต์ WireGuard ระยะไกลสามารถเข้าถึงบริการเครือข่ายใด ๆ ที่คอนเทนเนอร์ WireGuard สามารถเข้าถึงได้

  1. มีวิธีที่ดีกว่าในการทำเช่นนี้หรือไม่?

ทางเลือกที่ง่ายที่สุดคือการเปิดใช้งานคอนเทนเนอร์อื่นในเนมสเปซเครือข่ายของคอนเทนเนอร์ WireGuard ดังต่อไปนี้:

ขั้นแรก ให้เรียกใช้คอนเทนเนอร์ WireGuard ด้วยชื่อ เช่น my-wg-คอนเทนเนอร์:

sudo docker ทำงาน \
    --cap-เพิ่ม NET_ADMIN \
    --ชื่อ my-wg-คอนเทนเนอร์ \
    --เผยแพร่ 51820:51820/udp \
    --rm \
    --volume /srv/my-wg-container/conf:/etc/wireguard \
    procustodibus/wireguard

จากนั้น เปิดใช้คอนเทนเนอร์อื่นในเนมสเปซเครือข่ายของคอนเทนเนอร์ WireGuard ด้วยไฟล์ --เครือข่ายคอนเทนเนอร์: my-wg-container ตัวเลือก:

sudo docker ทำงาน \
    --ชื่อเว็บเซิร์ฟเวอร์ของฉัน \
    --เครือข่ายคอนเทนเนอร์:my-wg-container \
    --rm \
    จิงซ์

หากใช้คอนเทนเนอร์ WireGuard 10.8.0.1 สำหรับที่อยู่ของอินเทอร์เฟซ WireGuard (เช่นในตัวอย่างของคุณ) คุณสามารถเข้าถึงเว็บเซิร์ฟเวอร์ที่ทำงานใน เว็บเซิร์ฟเวอร์ของฉัน ตู้คอนเทนเนอร์ ที่ http://10.8.0.1/ จากไคลเอนต์ WireGuard ระยะไกล ดู ใช้สำหรับเครือข่ายคอนเทนเนอร์ ส่วนนี้ คู่มือคอนเทนเนอร์ WireGuard สำหรับตัวอย่างที่สมบูรณ์

ด้วยวิธีนี้ คุณไม่ต้องทำอะไรเป็นพิเศษกับคอนเทนเนอร์อื่น (นอกเหนือจากการแนบกับคอนเทนเนอร์ WireGuard) และไคลเอนต์ WireGuard ระยะไกลสามารถเข้าถึงบริการในคอนเทนเนอร์ที่แนบมาเท่านั้น (แทนที่จะเป็นบริการเครือข่ายอื่น ๆ ที่เข้าถึงได้ คอนเทนเนอร์ WireGuard)

โพสต์คำตอบ

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