Score:0

Firewalld ฟังก์ชั่นการส่งต่อด้วย Wireguard

ธง us

ฉันได้ถามถึงวิธีการส่งต่อพอร์ตบน VPS ที่ใช้บริการ wireguard โดยมี ufw และ iptables เป็นผู้จัดการ

ฉันต้องทำสิ่งนี้:

(56000 เป็นพอร์ตแบบสุ่มที่ฉันเลือก) (10.66.66.2 เป็น ip ภายในของ wireguard)

เส้นทาง ufw อนุญาตให้ proto tcp เป็น 10.66.66.2 พอร์ต 56000

จากนั้นฉันจะทำสิ่งนี้เพื่อส่งต่อพอร์ตด้วย iptables:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 56000 -j DNAT --to-destination 10.66.66.2

มีวิธีที่ฉันจะทำสิ่งนี้ให้สำเร็จด้วย ไฟร์วอลล์ แทน? จะได้ไม่ต้องแยกส่งเป็นสองที่?

และการปลอมตัวเข้ามาใช้ที่นี่ / จำเป็นหรือไม่? เพราะไม่รู้ว่ามันใช้ทำอะไร

VPS wireguard wg0 conf สำหรับการอ้างอิง:

ที่อยู่ = 10.66.66.1/24,fd42:42:42::1/64
ListenPort = 49503
คีย์ส่วนตัว = ***


[เพียร์]
คีย์สาธารณะ = ***
PresharedKey = ***
AllowedIPs = 10.66.66.2/32,fd42:42:42::2/128
Score:1
ธง cn

จากคำถาม UFW ก่อนหน้านี้ ดูเหมือนว่าคุณกำลังใช้ WireGuard เพื่อวัตถุประสงค์สองประการ: 1) ส่งต่อทราฟฟิกจากไคลเอนต์ WireGuard ของ VPS ของคุณออกไปยังอินเทอร์เน็ต และ 2) ส่งต่อพอร์ตสาธารณะบางพอร์ตจาก VPS ของคุณกลับไปยังไคลเอนต์ WireGuard . คุณต้องปลอมตัว (หรือที่เรียกว่า SNAT) สำหรับ 1) และการส่งต่อพอร์ต (หรือที่เรียกว่า DNAT) สำหรับ 2)

วิธีที่ง่ายที่สุดในการตั้งค่านี้ด้วย firewalld คือการผูกอินเทอร์เฟซอีเทอร์เน็ตสาธารณะของ VPS ของคุณ (eth0 ในกรณีของคุณ) ไปยัง firewalld ที่กำหนดไว้ล่วงหน้า ภายนอก โซน และอินเตอร์เฟส WireGuard ของ VPS ของคุณ (wg0 ในกรณีของคุณ) ไปยัง firewalld ที่กำหนดไว้ล่วงหน้า ภายใน โซน. เดอะ ภายนอก โซนได้รับการกำหนดค่าล่วงหน้าโดยเปิดใช้งานการปลอมแปลง และทั้งสองโซนยังได้รับการกำหนดค่าล่วงหน้าให้ยอมรับ SSH และบริการอื่นๆ อีกเล็กน้อย

ก่อนอื่นให้เปิดพอร์ตฟัง WireGuard ของ VPS (49503 ในกรณีของคุณ) บน ภายนอก โซน:

$ sudo firewall-cmd --zone=external --add-port=49503/udp

และฟอร์เวิร์ดพอร์ต TCP 56000 บน ภายนอก โซนไปยังพอร์ตเดียวกันบน 10.66.66.2:

$ sudo firewall-cmd --zone=external --add-forward-port='port=56000:proto=tcp:toaddr=10.66.66.2'

แล้วมัด eth0 ไปที่ ภายนอก โซน (ซึ่งใช้การกำหนดค่าของ firewalld สำหรับไฟล์ ภายนอก โซนทั้งหมด eth0 การเชื่อมต่อ):

$ sudo firewall-cmd --zone=external --add-interface=eth0

และผูกพัน wg0 ไปที่ ภายใน โซน:

$ sudo firewall-cmd --zone=internal --add-interface=wg0

ตรวจสอบโซนที่ใช้งานของคุณ:

$ sudo firewall-cmd --get-active-zones
ภายนอก
  อินเทอร์เฟซ: eth0
ภายใน
  อินเทอร์เฟซ: wg0

และตรวจสอบการกำหนดค่าของคุณ ภายนอก โซน:

$ sudo firewall-cmd --info-zone=external
ภายนอก (ใช้งานอยู่)
  เป้าหมาย: ค่าเริ่มต้น
  icmp-block-inversion: ไม่
  อินเทอร์เฟซ: eth0
  แหล่งที่มา:
  บริการ: ssh
  พอร์ต: 49503/udp
  โปรโตคอล:
  สวมหน้ากาก: ใช่
  ส่งต่อพอร์ต: port=56000:proto=tcp:toaddr=10.66.66.2
  พอร์ตต้นทาง:
  icmp บล็อก:
  กฎมากมาย:

หากทุกอย่างถูกต้อง ให้บันทึกการตั้งค่าไฟร์วอลล์ปัจจุบันของคุณ:

$ sudo firewall-cmd --runtime-to-permanent

โพสต์คำตอบ

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