การอนุญาตแบบแพ็กเก็ตเดียว
PortGuard
PortGuard นำเสนอเทคโนโลยีการอนุญาตแบบแพ็กเก็ตเดียวที่แข็งแกร่งเพื่อปกป้องเครือข่ายของคุณจากการเข้าถึงโดยไม่ได้รับอนุญาต รวมถึงภัยคุกคามจากการสแกนพอร์ต
ดาวน์โหลดตอนนี้ GUI หลายแพลตฟอร์ม
GUI หลายแพลตฟอร์ม
ดาวน์โหลดสำหรับ Windows
fwknopc_2_6_11_x64-setup.exe
ดาวน์โหลดสำหรับ Macos
fwknopc_2_6_11_x64.pkg
ดาวน์โหลดสำหรับ Android
fwknopc_2_6_11_x64.apk
เซิร์ฟเวอร์ Fwknop สำหรับ CentOS7
ชื่อไฟล์ | แก้ไขล่าสุด | เอ็มดี5 |
---|---|---|
fwknop-server-2.6.11-1.el7.x86_64.rpm | 2025-07-29 |
1a375f89c2aa16935ddce164ad16adad
|
libfko-3.0.0-1.x86_64.rpm | 2025-07-29 |
7f720f1f444f1634bab7cadbbfec40b2
|
1. เหตุใดฉันจึงพัฒนา PortGuard?
ผมได้เรียนรู้เกี่ยวกับแนวคิด Single Packet Authorization (SPA) ครั้งแรกจากการสนทนาแบบสบายๆ กับเพื่อนร่วมงาน ก่อนหน้านั้นผมไม่มีความรู้เรื่อง port knocking หรือ SPA เลย บังเอิญว่าบริษัทของเราต้องการโซลูชัน port-knocking และหลังจากค้นคว้าและศึกษาข้อมูลที่เกี่ยวข้อง ผมก็ได้ค้นพบ fwknop แนวคิดของ fwknop นั้นน่าประทับใจมาก สำหรับบริการที่ต้องเข้าถึงได้เฉพาะกลุ่มคนจำนวนน้อย fwknop ถือเป็นโซลูชันที่ยอดเยี่ยม เราเคยพิจารณาพัฒนาเครื่องมือของเราเอง แต่ fwknop ค่อนข้างซับซ้อนและซับซ้อนกว่ามาก อย่างไรก็ตาม fwknop มีข้อเสียคือมีความซับซ้อน ต้องเรียนรู้การติดตั้งและใช้งานนาน และไม่มีแอปพลิเคชันไคลเอนต์เฉพาะทาง สิ่งนี้จึงนำไปสู่การสร้าง PortGuard ขึ้นมา เป้าหมายของ PortGuard คือการรองรับโปรโตคอล port-knocking หลักๆ เช่น fwknop และ tnok ในอนาคต พร้อมกับการเป็นไคลเอนต์แบบข้ามแพลตฟอร์ม PortGuard สร้างขึ้นเพื่อต่อยอดจาก fwknop และ tnok โดยมีเป้าหมายเพื่อทำให้เทคโนโลยี SPA ใช้งานง่ายและเข้าถึงได้ง่ายขึ้น
2. แพลตฟอร์มที่รองรับไคลเอนต์ PortGuard
ปัจจุบัน PortGuard รองรับแพลตฟอร์มต่อไปนี้:
- iOS
- Android
- Windows
- macOS
3. กรณีการใช้งาน PortGuard
ฟังก์ชันหลักของ PortGuard คือการเสริมความปลอดภัยเครือข่ายโดยการซ่อนพอร์ตบริการ (ปิดโดยค่าเริ่มต้น) และเหมาะสำหรับสถานการณ์ต่อไปนี้:
3.1 ปกป้องบริการการเข้าถึงระยะไกล (เช่น SSH)
สถานการณ์:ผู้ดูแลระบบจำเป็นต้องเข้าถึงบริการ SSH อย่างปลอดภัยจากสถานที่ต่างๆ (เช่น บ้าน ร้านกาแฟ เครือข่ายมือถือ) โดยไม่ต้องเปิดเผยพอร์ต SSH ให้กับเครือข่ายสาธารณะ
การดำเนินการ: ใช้ fwknop หรือ tnok ไคลเอนต์จะส่งแพ็กเก็ตข้อมูล SPA หรือแพ็กเก็ต TOTP knock และเซิร์ฟเวอร์จะตรวจสอบและเปิดพอร์ต SSH ชั่วคราว (ค่าเริ่มต้น 22) หลังจากตรวจสอบแล้ว
ข้อดี: ป้องกันไม่ให้ Nmap และเครื่องมือสแกนพอร์ตอื่นค้นพบบริการ ซึ่งจะช่วยลดความเสี่ยงที่ช่องโหว่แบบ Zero-day จะถูกใช้ประโยชน์
ตัวอย่าง: สมาชิกทีมระยะไกลใช้ไคลเอนต์ fwknop เพื่อส่งแพ็คเก็ตข้อมูล SPA บนอุปกรณ์ Windows หรือ Android และเข้าถึงเซิร์ฟเวอร์ภายในของบริษัทอย่างปลอดภัย
3.2 การปกป้องบริการในสภาพแวดล้อมคลาวด์
สถานการณ์:จำเป็นต้องเข้าถึงบริการภายใน (เช่น ฐานข้อมูล เว็บเซิร์ฟเวอร์) ใน AWS, Azure และแพลตฟอร์มคลาวด์อื่นๆ ได้ผ่านเครือข่ายสาธารณะ แต่ต้องหลีกเลี่ยงการเปิดเผยพอร์ตโดยตรง
การดำเนินการ: PortGuard บูรณาการกับ NAT เพื่อให้ไคลเอนต์ภายนอกสามารถเข้าถึงบริการภายในในพื้นที่ที่อยู่ RFC 1918 ผ่านทาง SPA
ข้อดี: รองรับโครงสร้างเครือข่ายที่ซับซ้อน เหมาะสำหรับระบบคลาวด์ไฮบริดและสภาพแวดล้อมผู้เช่าหลายราย
ตัวอย่าง: เรียกใช้ fwknopd บนอินสแตนซ์ AWS EC2 เปิดพอร์ต MySQL แบบไดนามิก (3306) เพื่อให้ผู้ใช้ที่ได้รับอนุญาตเข้าถึงได้
3.3 ป้องกันการสแกนพอร์ตและการโจมตีแบบ Brute Force
สถานการณ์:เซิร์ฟเวอร์ต้องเผชิญกับการสแกนพอร์ต (เช่น Nmap) หรือการโจมตีแบบบรูทฟอร์ซ และจำเป็นต้องซ่อนพอร์ตบริการเพื่อลดพื้นผิวการโจมตี
การดำเนินการ: PortGuard จะรักษานโยบายไฟร์วอลล์แบบลบทิ้งเริ่มต้น โดยจะเปิดพอร์ตหลังจากได้รับแพ็คเก็ตข้อมูล SPA ที่ถูกต้องเท่านั้น
ข้อดี: แม้ว่าจะมีช่องโหว่ที่ยังไม่ได้รับการแก้ไข ผู้โจมตีก็ไม่สามารถค้นพบพอร์ตบริการได้
ตัวอย่าง: ป้องกันการใช้ SSH brute force, fwknop จะเปิดพอร์ตเฉพาะหลังจากตรวจสอบ HMAC เท่านั้น
3.4 รองรับการป้องกันบริการหลายรายการ
สถานการณ์:องค์กรต่างๆ จำเป็นต้องปกป้องบริการต่างๆ หลายอย่าง (เช่น SSH, RDP, VPN, ฐานข้อมูล) แต่ไม่ต้องการให้พอร์ตทั้งหมดเปิดอยู่ตลอดเวลา
การดำเนินการ: fwknop รองรับการกำหนดบริการและพอร์ตต่างๆ ใน access.conf และไคลเอนต์สามารถระบุโปรโตคอลและพอร์ตเป้าหมายได้
ข้อดี: การกำหนดค่ากฎที่ยืดหยุ่น รองรับการหมดเวลาที่กำหนดเองและกลยุทธ์การเปิดพอร์ต
ตัวอย่าง: กำหนดค่า fwknop เพื่อปกป้องทั้ง SSH (tcp/22) และ OpenVPN (udp/1194)
3.5 ความปลอดภัยของอุปกรณ์ฝังตัวหรือ IoT
สถานการณ์:อุปกรณ์ IoT หรือระบบฝังตัวจำเป็นต้องมีการจัดการจากระยะไกล แต่ทรัพยากรของอุปกรณ์มีจำกัดและเสี่ยงต่อการถูกโจมตี
การดำเนินการ: รัน fwknopd หรือ tnokd แบบน้ำหนักเบาบนอุปกรณ์ที่มีทรัพยากรจำกัด ควบคุมการเข้าถึงผ่าน SPA หรือ TOTP
ข้อดี: การใช้ทรัพยากรต่ำ เหมาะสำหรับอุปกรณ์ขนาดเล็ก
ตัวอย่าง: ปกป้องเว็บเซอร์วิสที่ทำงานบน Raspberry Pi
3.6 การรวมอุปกรณ์ของบุคคลที่สาม
สถานการณ์:จำเป็นต้องบูรณาการกับอุปกรณ์ที่ไม่รองรับ fwknop ดั้งเดิม (เช่น เราเตอร์ Cisco) ควบคุมกฎไฟร์วอลล์
การดำเนินการ: คุณลักษณะคำสั่งเปิด/ปิดวงจร (คำสั่งเปิด/ปิดวงจร) ของ fwknop อนุญาตให้ดำเนินการสคริปต์ที่กำหนดเองเพื่อปรับเปลี่ยน ACL ของอุปกรณ์ของบริษัทอื่นแบบไดนามิก
ข้อดี: ขยายได้ รองรับอุปกรณ์ไฟร์วอลล์ที่ไม่ได้มาตรฐาน
ตัวอย่าง: เรียกใช้ fwknopd บนเซิร์ฟเวอร์ Linux อัปเดต ACL ของเราเตอร์ Cisco ผ่าน SSH
3.7 รายละเอียดทางเทคนิค
- fwknop รองรับการกำหนดเวลาหมดเวลา (CMD_CYCLE_TIMER) พอร์ตที่เปิดปิดโดยอัตโนมัติ ลดเวลาในการรับแสง
- สามารถใช้ร่วมกับ VPN (เช่น WireGuard, OpenVPN) เพื่อสร้างเครือข่ายส่วนตัวที่ปลอดภัย
- รองรับการแยกวิเคราะห์ส่วนหัว X-Forwarded-For เหมาะสำหรับ SPA ในสภาพแวดล้อม HTTP
4. PortGuard ปลอดภัยแค่ไหน?
ความปลอดภัยของ PortGuard ขึ้นอยู่กับกลไกการอนุญาตแบบแพ็กเก็ตเดียว (SPA) ของ fwknop เป็นหลัก ผสานรวมกับการเข้ารหัส การตรวจสอบสิทธิ์ และการผสานรวมไฟร์วอลล์ มอบการปกป้องแบบหลายชั้น การวิเคราะห์ความปลอดภัยโดยละเอียดมีดังนี้:
4.1 การเข้ารหัสและการรับรองความถูกต้อง
การเข้ารหัส: fwknop รองรับการเข้ารหัสแบบสมมาตร Rijndael (AES) หรือการเข้ารหัสแบบอสมมาตร GnuPG และไม่สามารถแยกวิเคราะห์เนื้อหาแพ็กเก็ตข้อมูล SPA โดยตรงได้
การตรวจสอบสิทธิ์: ใช้ HMAC-SHA256 (ค่าเริ่มต้น) หรือเวอร์ชันที่สูงกว่าสำหรับการตรวจสอบแพ็กเก็ตข้อมูล เพื่อให้แน่ใจว่าข้อมูลมีความสมบูรณ์และเชื่อถือได้
ความปลอดภัย: ป้องกันการโจมตีแบบ man-in-the-middle (MITM) และการโจมตีแบบรีเพลย์ ใช้ HMAC หลังการเข้ารหัส ต้านทานการโจมตีแบบออราเคิลแพดดิ้งโหมด CBC (เช่น การโจมตีแบบ Vaudenay)
ข้อจำกัด: การเข้ารหัสแบบสมมาตรต้องใช้คีย์ที่ใช้ร่วมกันระหว่างไคลเอนต์และเซิร์ฟเวอร์ การจัดการคีย์ที่ไม่เหมาะสมอาจนำไปสู่การรั่วไหล โหมด GnuPG ต้องมีการบำรุงรักษาคีย์ริง
4.2 ป้องกันการสแกนพอร์ต
กลไก: PortGuard จะใช้นโยบายไฟร์วอลล์แบบดรอปเริ่มต้น และพอร์ตบริการจะมองไม่เห็นเมื่อไม่ได้รับอนุญาต ดังนั้น Nmap และเครื่องมืออื่นๆ จึงไม่สามารถตรวจจับได้
ความปลอดภัย: ลดพื้นผิวการโจมตีได้อย่างมีนัยสำคัญ แม้ว่าจะมีช่องโหว่แบบ zero-day ผู้โจมตีก็ไม่สามารถระบุตำแหน่งพอร์ตบริการได้
ข้อจำกัด: หากแพ็กเก็ตข้อมูลน็อคถูกตรวจจับ (การน็อคพอร์ตแบบเดิมมีความเสี่ยงต่อปัญหานี้มากกว่า) ผู้โจมตีอาจพยายามเล่นซ้ำ (SPA ได้แก้ไขปัญหานี้ผ่าน HMAC)
4.3 ต้านทานการใช้กำลังดุร้าย
กลไก: แพ็กเก็ตข้อมูล SPA จะต้องได้รับการเข้ารหัสอย่างถูกต้องและต้องผ่านการตรวจสอบ HMAC การใช้กำลังดุร้ายแทบจะเป็นไปไม่ได้ (แพ็กเก็ตข้อมูลที่มี HMAC ล้มเหลวจะถูกทิ้งโดยตรง)
ความปลอดภัย: เมื่อเทียบกับการน็อคพอร์ตแบบดั้งเดิม การออกแบบแพ็กเก็ตเดียวและกลไกการเข้ารหัสของ SPA ปรับปรุงความสามารถในการต้านทานการใช้กำลังอย่างรุนแรงได้อย่างมีนัยสำคัญ
ข้อจำกัด: ข้อผิดพลาดในการกำหนดค่า (เช่น คีย์ที่ไม่แข็งแรงหรือ HMAC ที่ปิดใช้งาน) อาจทำให้ความปลอดภัยลดลง
✨ คุณสมบัติ




ผู้คน ❤️ Fwknop

John

Michael

James

David

Olivia

William