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

อาการ: กฎแคบไม่ได้เปลี่ยนอะไรเลย

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

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

อาการทั้งสองชี้ไปที่ลำดับ ไม่ใช่ที่ฟิลด์ของกฎใหม่ อย่างหนึ่งคือกฎที่ไม่เคยตรงกัน และอีกอย่างคือกฎที่ตรงกันเร็วเกินไป

ทราฟฟิกไปโดนชุดกฎใดจริง ๆ

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

นั่นคือเหตุผลที่การอนุญาตแคบใหม่ไม่สามารถถอนสิทธิ์การเข้าถึงได้ กฎไฟร์วอลล์เพิ่มสิทธิ์และไม่ดึงมันคืนจากการตรงกันก่อนหน้า

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

เขียนกฎอนุญาตจากงานพิมพ์

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

ต้านทานความอยากที่จะเพิ่มพอร์ตการค้นหาหรือการจัดการเพื่อเอาใจตัวช่วยสร้าง กฎที่อนุญาตเครื่องพิมพ์ทั้งเครื่องเป็นนโยบายที่ต่างจากกฎที่อนุญาตคิวพิมพ์

เก็บการพิสูจน์ตัวตนของเครื่องพิมพ์เองไว้ในที่เดิม การอนุญาตระดับเครือข่ายไม่ใช่สิ่งที่มาแทน บัญชีระดับคิวคือการควบคุมที่ถูกต้องว่าใครพิมพ์อะไรได้

ค่าหกค่าถือเจตนาทั้งหมด ได้แก่ การอนุญาตเป็นการกระทำ IPv4 เป็นตระกูล TCP เป็นโปรโตคอล นามแฝงของพูลเป็นต้นทาง นามแฝงของเครื่องพิมพ์เป็นปลายทาง และ 631 เป็นพอร์ต สิ่งใดเกินหกค่านี้คือนโยบายที่ต่างจากที่ขอ

ให้เส้นทางแก่ไคลเอนต์โดยไม่ต้องอนุญาต LAN

ไคลเอนต์ต้องการเส้นทางไปยังที่อยู่เครื่องพิมพ์ และฝั่งสำนักงานต้องการเส้นทางตอบกลับไปยังพูล VPN การพุช /32 เดียวทำให้การกำหนดค่าไคลเอนต์แคบ ซึ่งช่วยในการแก้ปัญหา นี่ไม่ใช่ขอบเขตการอนุญาต เพราะไคลเอนต์เพิ่มเส้นทางเองได้

ถ้าคิวถูกระบุด้วยชื่อ ให้กำหนดการพึ่งพาตัวแก้ชื่อแยกต่างหาก การอนุญาตทั้ง LAN เพื่อให้ชื่อเดียวถูกแก้เป็นการเปลี่ยนแปลงที่ใหญ่กว่าที่งานต้องการมาก

เลือกอย่างตั้งใจระหว่างการกำหนดเส้นทางกลับไปยังพูลกับการแปลต้นทาง ทั้งสองวิธีทำงานได้ และแต่ละวิธีซ่อนสิ่งที่ต่างกันจากบันทึก

ทดสอบการปฏิเสธเช่นเดียวกับงาน

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

ตรวจสอบ IPv6 และเส้นทาง VPN ที่ใช้งานอยู่อื่น ๆ ก่อนเรียกการปรับใช้นี้ว่าเฉพาะเครื่องพิมพ์ ชุดกฎที่แคบในตระกูลที่อยู่หนึ่งอาจเปิดกว้างทั้งหมดในอีกตระกูลหนึ่ง

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