ที่อยู่ทันเนลแบบคงที่ใน pfSense: ตัวเลือกหรือการจอง
การแทนที่ฝั่งไคลเอนต์ให้ที่อยู่ที่ต้องการ ไม่ใช่ที่อยู่ที่จองไว้ จงเปรียบเทียบกับเซิร์ฟเวอร์แบบคงที่ล้วนที่ปิดไว้ และกับสิ่งที่ต้องเป็นจริงก่อนที่กฎจะเชื่อถือมัน
การออกแบบสองแบบดูคล้ายกันบนกระดาษแต่ทำงานต่างกันมากเมื่อกฎใดกฎหนึ่งขึ้นอยู่กับมัน แบบหนึ่งพิมพ์ที่อยู่ลงในการแทนที่ฝั่งไคลเอนต์และเชื่อที่อยู่นั้นในฐานะตัวตน อีกแบบปิดการรับเข้าแบบไดนามิกทั้งหมด ดังนั้นปลายทางจึงได้ทั้งการกำหนดที่ไม่ซ้ำหรือไม่เชื่อมต่อเลย มีเพียงแบบที่สองเท่านั้นที่เปลี่ยนที่อยู่ให้เป็นอินพุตนโยบายที่คุณปกป้องได้ และความต่างนี้ควรค่าแก่การเข้าใจก่อนเขียนกฎไฟร์วอลล์แม้แต่ข้อเดียว
ที่อยู่แทนที่สัญญาอะไรจริง ๆ
การแทนที่เฉพาะไคลเอนต์มีตัวเลือกต่อไคลเอนต์ รวมถึงที่อยู่ทันเนลที่ต้องการ Netgate อธิบายที่อยู่นั้นว่าเป็นตัวเลือกไม่ใช่การจอง ซึ่งหมายความว่าพูลไดนามิกไม่ยอมสละที่อยู่นั้นให้ใครอื่น
โดยปกติก็ใช้ได้ การชนกันนั้นหายาก และไคลเอนต์มักได้รับสิ่งที่ขอ ซึ่งพอสำหรับความสะดวกแต่ไม่พอสำหรับการอนุญาต ความสะดวกและการอนุญาตเป็นข้อกำหนดที่ต่างกัน และมีเพียงอย่างเดียวที่รอดจากการชนกัน
ในโทโพโลยีซับเน็ต ฟิลด์นี้รับที่อยู่ของไคลเอนต์พร้อมกับมาสก์ของเครือข่ายเซิร์ฟเวอร์ ดังนั้นที่อยู่ภายในทันเนล 10.90.0.0/24 จึงเขียนเป็น 10.90.0.10/24
ไม่มีสิ่งใดในนั้นจองหมายเลขไว้ ไคลเอนต์ที่การแทนที่ไม่ตรง หรือเซสชันที่ซ้ำกัน อาจไปจบที่อื่นในพูล และกฎที่อิงกับที่อยู่ก็จะอธิบายคนที่ไม่ได้อยู่ที่นั่น
ปิดเส้นทางไดนามิกด้วยค่าเริ่มต้นที่จำกัดขอบเขต
ทางเลือกคือเซิร์ฟเวอร์แบบคงที่ล้วน ปลายทางที่ได้รับอนุญาตทุกจุดมีตัวตนของตัวเองและที่อยู่เฉพาะของตัวเอง และไม่มีอย่างอื่นเข้ามา
การทำเช่นนั้นหมายถึงการแทนที่ DEFAULT ที่จำกัดเฉพาะเซิร์ฟเวอร์เครื่องนั้นเครื่องเดียวโดยเปิดการบล็อกการเชื่อมต่อไว้ ไคลเอนต์ที่ไม่มีการแทนที่ที่ตรงกันก็จะกลับไปสู่การรับเข้าแบบไดนามิกตามปกติไม่ได้ บรรทัดเดียวนั้นคือสิ่งที่เปลี่ยนตัวเลือกให้เป็นชุดปิด
ขอบเขตสำคัญ การใช้ค่าเริ่มต้นแทนที่กับทุกอินสแตนซ์ VPN บนอุปกรณ์จะล็อกทันเนลที่ไม่เกี่ยวข้อง และความล้มเหลวนั้นดูเหมือนบริการที่พังมากกว่าการตัดสินใจเชิงนโยบาย จงผูกมันไว้กับเซิร์ฟเวอร์เครื่องเดียวที่คุณกำลังเปลี่ยนแบบจำลองการรับเข้า แล้วบันทึกขอบเขตไว้ในบันทึกการเปลี่ยนแปลง เพราะคนถัดไปจะจำไม่ได้ว่ามันเป็นของทันเนลใด
จากนั้นตรวจสอบชุดที่อนุญาตทั้งหมด การบล็อกค่าเริ่มต้นไม่ได้แก้ไขการแทนที่ที่มีชื่อซึ่งถูกทิ้งไว้โดยไม่มีที่อยู่ และปลายทางนั้นก็จะเชื่อมต่อไม่สำเร็จโดยไม่มีเบาะแสชัดเจนว่าเพราะอะไร
จับคู่กับตัวตนที่เซิร์ฟเวอร์ใช้จริง
การแทนที่ต้องตรงกับบางสิ่ง บนเซิร์ฟเวอร์ที่จับคู่ชื่อสามัญของใบรับรอง ชื่อของการแทนที่ต้องเป็นชื่อสามัญนั้น ไม่ใช่ชื่อที่แสดงของบุคคล จงคัดลอกจากใบรับรองไม่ใช่จากรายการบัญชี
เซิร์ฟเวอร์ที่ตั้งค่าให้ใช้ชื่อผู้ใช้เป็นชื่อสามัญจะจับคู่กับคีย์ที่ต่างออกไปทั้งหมด และการแทนที่ที่ตั้งชื่อตามใบรับรองจะไม่ทำงานเลย จงอ่านการตั้งค่าแทนการอนุมานจากสิ่งที่รายการบัญชีแสดง
คงปัจจัยการพิสูจน์ตัวตนเพิ่มเติมที่การติดตั้งต้องการ แบบจำลองที่อยู่แบบปิดเปลี่ยนว่าใครเชื่อมต่อได้และได้ที่อยู่ใด มันไม่ได้แทนที่การตรวจใบรับรองหรือปัจจัยที่สอง
เขียนกฎการเข้าถึงหลังจากแผนที่ถูกต้องแล้ว
เมื่อแผนที่จากตัวตนไปยังที่อยู่ปิดลงแล้ว กฎสามารถอ้างถึงที่อยู่ได้โดยไม่ต้องแสร้งว่ามันคือคน นามแฝงที่จัดกลุ่มปลายทางของคนหนึ่งสามารถไปถึงบริการเฉพาะได้ ขณะที่นามแฝงอื่นไปถึงอีกสิ่งหนึ่ง นามแฝงกลายเป็นวัตถุที่ตรวจทานได้ และที่อยู่กลายเป็นรายละเอียดการนำไปใช้ภายในนั้น
รักษาปลายทางและพอร์ตให้ชัดเจน การอนุญาตเครือข่ายท้องถิ่นทั้งหมดจากพูลทันเนลทั้งหมดคือการออกแบบที่แบบฝึกหัดนี้ตั้งใจจะแทนที่
อ่านกฎแบบลอย กฎกลุ่ม และกฎอินเทอร์เฟซตามลำดับการประเมินจริง เพราะการผ่านแบบกว้างก่อนหน้าจะทำให้การผ่านแบบแคบภายหลังไร้ผล การปิดการส่งต่อภายในระหว่างไคลเอนต์ทำให้ทราฟฟิกระหว่างเพียร์อยู่ที่ขอบเขตซึ่งกฎเหล่านั้นถูกตรวจทาน กฎที่มีอยู่แต่บนกระดาษไม่ใช่การบังคับใช้
ทดสอบกรณีเชิงลบ
ลองเชื่อมต่อใหม่สี่แบบ ปลายทางที่มีชื่อ ปลายทางที่ไม่มีการแทนที่เลย บริการที่ควรเข้าถึงได้ และบริการที่ไม่ควรเข้าถึงได้ ปลายทางที่ไม่อยู่ในรายการคือกรณีสำคัญ เพราะการออกแบบมีอยู่เพื่อหยุดมัน ถ้ามันเชื่อมต่อได้ การบล็อกค่าเริ่มต้นก็ไม่ได้ทำหน้าที่
ตรวจ IPv6 แยกต่างหาก เพราะนโยบายที่อยู่ IPv4 ไม่ได้บอกอะไรเกี่ยวกับสแตกที่สอง จากนั้นยืนยันว่าแอปพลิเคชันยังอนุญาตผู้ใช้อยู่ เพราะที่อยู่ทันเนลเป็นข้อเท็จจริงของเครือข่าย ไม่ใช่หลักฐานว่าใครอยู่ที่คีย์บอร์ด การตรวจทั้งสองควรอยู่ในบันทึกการยอมรับ
สุดท้าย จงวางแผนการย้าย การแทนที่ใหม่และกฎแคบ ๆ ไม่ได้เปลี่ยนเซสชันที่สร้างไว้แล้วย้อนหลัง สถานะที่มีอยู่จึงต้องหมดอายุหรือถูกล้างอย่างตั้งใจ