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

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

ขั้นตอนที่ 1: ตั้งชื่อบทบาทก่อนเครือข่าย

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

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

ขั้นตอนที่ 2: เปลี่ยนแต่ละเซลล์ให้เป็นข้อความบริการ

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

CheckPasses whenStop if
Destination namedHost and port appear in the cellCell names a VLAN or a subnet
Direction statedInitiator and responder are both clearCell implies two-way access
Dependency listedDNS or identity path is explicitWhole infrastructure range is granted
Negative case writtenAt least one denied pair is recordedOnly allow rules exist

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

ขั้นตอนที่ 3: ตัดสินใจว่าตัวตนกลายเป็นนโยบายที่ไหน

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

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

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

ขั้นตอนที่ 4: สังเกตที่อยู่ต้นทางที่ปลายทางมองเห็น

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

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

ขั้นตอนที่ 5: ทดสอบแต่ละเซลล์ก่อนส่งมอบ

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

# allowed: staff role reaches the ERP endpoint
curl -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://erp.internal.example/health

# denied: the same role must not reach a management host
nc -vz -w 3 10.30.5.11 22

# observed source address at the destination
sudo tcpdump -ni any 'tcp port 443 and host 10.30.20.15'

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

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

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