ฉันมีปัญหา OpenVPN / UFW ที่น่าสงสัยบน Ubuntu 20.04
ฉันมีกฎที่กำหนดให้อนุญาตการรับส่งข้อมูลขาออกมากกว่า tun0: ufw แทรก 1 อนุญาตให้ออกจาก tun0 จากใด ๆ ถึงใด ๆ
. ค่าเริ่มต้นของ UFW ถูกตั้งค่าเป็นปฏิเสธทั้งขาเข้าและขาออก: ufw เริ่มต้นปฏิเสธขาออก
& ufw เริ่มต้นปฏิเสธการรับเข้า
.
ฉันสามารถกำหนดเส้นทางทราฟฟิกผ่าน tun0 ด้วยการรัน UFW เท่านั้น หากฉันพบการเต้นแปลกๆ ต่อไปนี้ทุกครั้งที่ฉันต้องการเชื่อมต่อกับ VPN:
ufw ปิดการใช้งาน
(ปิดการใช้งาน UFW ตามที่คุณคาดหวัง เพื่ออนุญาตให้ VPN เชื่อมต่อกับเซิร์ฟเวอร์)
- เชื่อมต่อกับ VPN (สร้างการเชื่อมต่อสำเร็จ)
ufw เปิดใช้งาน
(เปิดใช้งาน UFW อีกครั้ง) - อย่างที่คาดไว้ ตอนนี้ฉันคาดว่าทราฟฟิกจะถูกส่งออกผ่าน tun0 โดยไม่มีปัญหาใดๆ ... แต่ไม่ ตอนนี้ฉันต้องทำสิ่งต่อไปนี้...
- เพิ่มกฎเพื่ออนุญาตการเชื่อมต่อขาออกทั้งหมดผ่านอินเทอร์เฟซใดก็ได้:
ufw แทรก 1 อนุญาตให้ออกจากสิ่งใดสิ่งหนึ่ง
- สร้างการเชื่อมต่อได้ทุกที่ - เช่น
ปิง 1.1.1.1
. นี่เป็นขั้นตอนสำคัญ - โดยที่การเชื่อมต่อที่ตามมาผ่าน tun0 จะล้มเหลว
- ลบกฎ I เพิ่งเพิ่ม ที่อนุญาตการเชื่อมต่อขาออกทั้งหมดผ่านอินเทอร์เฟซใด ๆ (เนื่องจากนั่นไม่ใช่สิ่งที่เราต้องการอย่างชัดเจน - ความตั้งใจคือเพื่อ จำกัด การเชื่อมต่อเป็น tun0 ตามกฎที่มีอยู่):
ufw ลบ 1
ตอนนี้ฉันสามารถสร้างการเชื่อมต่อผ่านอุโมงค์ VPN ได้ตามคาด อย่างไรก็ตามหากไม่มีขั้นตอนที่ 4 และ 5 การเชื่อมต่อทั้งหมดจะถูกบล็อกโดย UFW ฉันไม่สามารถเชื่อมต่อผ่าน tun0 ได้ แม้ว่าจะมีกฎ UFW ที่ชัดเจนกำหนดให้อนุญาตก็ตาม
นี่คือไฟล์ user.rules UFW ของฉัน (ฉันมีกฎ SSH ด้วย):
*กรอง
:ufw-ผู้ใช้อินพุต - [0:0]
:ufw-user-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-before-log-input - [0:0]
:ufw-before-log-output - [0:0]
:ufw-before-log-forward - [0:0]
:ufw-user-log-input - [0:0]
:ufw-user-log-output - [0:0]
:ufw-user-log-forward - [0:0]
:ufw-หลังเข้าสู่ระบบอินพุต - [0:0]
:ufw-หลังการบันทึก-เอาท์พุท - [0:0]
:ufw-หลังจากเข้าสู่ระบบไปข้างหน้า - [0:0]
:ufw-log-deny - [0:0]
:ufw-log-allow - [0:0]
:ufw-จำกัดผู้ใช้ - [0:0]
:ufw-user-limit-accept - [0:0]
### กฎ ###
### ทูเพิล ### อนุญาต 22 0.0.0.0/0 ใด ๆ 192.168.0.0/16 ใน
-A ufw-user-input -p tcp --dport 22 -s 192.168.0.0/16 -j ยอมรับ
-A ufw-user-input -p udp --dport 22 -s 192.168.0.0/16 -j ยอมรับ
### ทูเพิล ### อนุญาต 0.0.0.0/0 ใด ๆ 0.0.0.0/0 out_tun0
-A ufw-user-output -o tun0 -j ยอมรับ
### ทูเพิล ### ปฏิเสธ 0.0.0.0/0 ใด ๆ 0.0.0.0/0 ออก
-A ufw-user-output -j DROP
### ทูเพิล ### ปฏิเสธ 0.0.0.0/0 ใด ๆ 0.0.0.0/0 ใน
-A ufw-user-input -j DROP
### สิ้นสุดกฎ ###
### การบันทึก ###
-A ufw-after-log-input -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-หลังการบันทึกเอาต์พุต -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-log-forward -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-I ufw-logging-deny -m conntrack --ctstate INVALID -j RETURN -m limit --limit 3/min --limit-burst 10
-A ufw-logging-deny -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-logging-allow -j LOG --log-prefix "[UFW ALLOW] " -m limit --limit 3/min --limit-burst 10
### สิ้นสุดการบันทึก ###
### การจำกัดอัตรา ###
-A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j ปฏิเสธ
-A ufw-user-limit-accept -j ยอมรับ
### การจำกัดอัตราสิ้นสุด ###
ให้สัญญา
ความคิดใด ๆ ว่าทำไมพฤติกรรมที่แปลกประหลาดนี้จึงเกิดขึ้น?