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

ตัดสินด้วยตะขอของนโยบาย ไม่ใช่พอร์ตที่เสียบ

ทุกแพลตฟอร์ม VPN ประเมินทราฟฟิกที่ถอดรหัส ณ จุดหนึ่งก่อนส่งต่อ และจุดนั้นมีชื่อในการกำหนดค่า บนแพลตฟอร์มหนึ่งเป็นตัวกรองนโยบายกลุ่ม อีกแห่งเป็นนโยบายอินเทอร์เฟซหรือคู่โซน และบนอุปกรณ์ที่กำหนดเส้นทางอาจเป็นเพียงเชน forward ตะขอเป็นสิ่งที่บังคับใช้กฎ ขณะที่พอร์ตสวิตช์เป็นเพียงที่ที่สายสิ้นสุด การหาตะขอคือการตัดสินใจแรก เพราะทุกอย่างที่เหลือคือการจัดวางเทียบกับมัน

ก่อนดูฮาร์ดแวร์ ให้เขียนโฟลว์ลงไป: ใครเป็นแหล่งกำเนิด ไปที่ใด โพรโทคอลใดพาไป และบริการใดได้รับอนุญาต จากนั้นหาการควบคุมที่บังคับใช้ข้อเท็จจริงทั้งสี่ข้อนั้น

สองเส้นทาง สองเรื่องราวการบังคับใช้ที่ต่างกัน

สองรูปแบบเป็นเรื่องปกติ และแต่ละแบบอาจถูกต้องสำหรับความต้องการที่ต่างกัน

endpoint -> shared inside subnet -> server
endpoint -> dedicated transit -> policy firewall -> server subnet

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

ตรวจสอบด้วยการค้นหาเส้นทาง ไม่ใช่ด้วยภาพวาด อินเทอร์เฟซที่แพ็กเก็ตออกไปและฮอปถัดไปที่มันเลือกเป็นตัวกำหนดว่ารูปแบบที่สองทำงานตามที่ออกแบบหรือไม่

ip route get 10.30.7.20
sudo iptables -S FORWARD
sudo tcpdump -ni inside0 host 10.30.7.20

แยกโทโพโลยีออกจากการแยกโดด

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

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

ตรวจสอบความล้มเหลวและการจัดการของแต่ละตำแหน่ง

ทุกตำแหน่งมีรูปแบบความล้มเหลว และคำถามที่มีประโยชน์คืออะไรยังทำงานได้เมื่อชิ้นส่วนหนึ่งหยุด อินเทอร์เฟซเชิงตรรกะหลายตัวบนอุปกรณ์เดียวที่ตายแล้วไม่ได้ให้การกู้คืนที่เป็นอิสระ และไฟร์วอลล์ปลายน้ำที่ใช้ไฟเลี้ยงเดียวกันหรือผู้ดูแลคนเดียวกันก็ไม่ใช่ขอบเขตที่สอง ถามว่าเส้นทางการจัดการวิ่งที่ใด เพราะ คอนโซลที่เข้าถึงได้ทางอุโมงค์เท่านั้นไม่ใช่เส้นทางกู้คืนเลย; ssh [email protected] true จากภายนอกอุโมงค์เป็นวิธีที่ถูกที่สุดในการพิสูจน์ว่าคอนโซลไม่ได้ขึ้นกับมัน เอกสารนโยบายกลุ่มของแพลตฟอร์มหนึ่งวางตัวกรองไว้บนทราฟฟิกหลังถอดรหัสและก่อนเข้ารหัส ซึ่งเป็นตะขอที่มีชื่อแบบเดียวกับที่ควรค้นหาในผลิตภัณฑ์ใด ๆ

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

ยอมรับด้วยโฟลว์ที่อนุญาตและโฟลว์ที่ถูกปฏิเสธ

ด้วยแผนทดสอบที่ได้รับอนุมัติ ตรวจสอบสามสิ่งจากแหล่ง VPN จริง: แอปพลิเคชันที่ควรทำงาน ทรัพยากรที่ไม่ควร และทิศทางที่คำตอบย้อนกลับมา การปฏิเสธคือหลักฐานว่านโยบายทำงานอยู่ ขณะที่โฟลว์ที่อนุญาตเพียงพิสูจน์ว่ามีเส้นทาง

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

บทความที่เกี่ยวข้อง