ติดตั้งแพ็กเกจไฟร์วอลล์แล้ว แต่กฎหายไปหลังรีบูต
การติดตั้ง ชุดกฎที่ใช้งานอยู่ และสิ่งที่นำกลับมาเป็นงานสามอย่างแยกกัน การบันทึกทุกกฎที่โหลดอยู่ไว้อาจเก็บการทดลองปนไปกับนโยบาย VPN
แพ็กเกจติดตั้งเรียบร้อย กฎถูกทดสอบ และหลังรีบูตครั้งถัดไปเกตเวย์ก็เปิดโล่งทั้งหมด ไม่มีสิ่งใดล้มเหลวในธุรกรรม ความล้มเหลวอยู่ที่สิ่งที่ถูกสันนิษฐานว่าจะคงอยู่ การติดตั้งเครื่องมือไฟร์วอลล์ การตัดสินว่ากฎใดควรอยู่รอด และการนำกลับมาในจังหวะที่ถูกต้องเป็นงานสามอย่างแยกจากกัน
อาการบอกอะไรกับคุณจริง ๆ
ชุดกฎที่หายไปตอนรีบูตมีเจ้าของได้สามแบบ ไม่มีใครบันทึกมัน มีสิ่งอื่นแทนที่มัน หรือมันถูกนำกลับมาก่อนสิ่งที่มันพึ่งพาจะมีอยู่ สองข้อแรกมองเห็นได้ในการตั้งค่า ข้อที่สามปรากฏเฉพาะในลำดับการทำงาน นั่นคือเหตุผลที่การรีบูตดูเหมือนข้อมูลหาย ทั้งที่จริงเป็นปัญหาลำดับ
เริ่มจากจดว่าอะไรเป็นความจริงก่อนรีบูต บริการใดถือกฎอยู่ ไฟล์หรือฐานข้อมูลใดที่มันอ่านตอนเริ่มระบบ และแหล่งนั้นเคยถูกเขียนหรือไม่ ชุดกฎที่ใช้งานอยู่โดยไม่มีใครบันทึกเป็นคำอธิบายที่ใช้ได้และพบได้บ่อยที่สุด
อย่าเริ่มด้วยการติดตั้งแพ็กเกจใหม่
อ่านเครื่องมือรักษาสถานะก่อนใช้
เครื่องมือของ Debian มองการรักษาสถานะเป็นปัญหาแบบปลั๊กอิน ปลั๊กอินแต่ละตัวรู้วิธีเขียนกฎของตัวเอง และตัวห่อหนึ่งตัวเป็นผู้เรียกมัน การกระทำบันทึกของมันเก็บทุกอย่างที่โหลดอยู่ ณ ขณะนั้น และการกระทำเริ่มระบบก็โหลดภาพนั้นกลับมา ไม่มีการกระทำใดตรวจสอบสิ่งที่มันเก็บ
นั่นคือภาพชั่วขณะ ไม่ใช่การตรวจทาน การอนุญาตที่ตกค้างจากเซสชันแก้จุดบกพร่อง การทดลองที่ทำค้างไว้ หรือกฎผ่อนปรนที่ตัวช่วยอื่นแทรกเข้ามา ทั้งหมดกลายเป็นถาวรเคียงคู่นโยบายที่คุณตั้งใจจะเก็บไว้ การบันทึกสถานะกับการอนุมัติสถานะเป็นกิจกรรมที่ต่างกัน และมีเพียงอย่างเดียวที่ต้องใช้วิจารณญาณ อ่านชุดที่โหลดอยู่ก่อน แล้วจึงตัดสินว่าบรรทัดใดควรอยู่รอด
บันทึกอย่างตั้งใจ หลังจากอ่านสิ่งที่โหลดอยู่แล้ว
ตัดสินว่าอะไรควรอยู่รอด
กฎบางข้อเป็นของวงจรชีวิตของอินเทอร์เฟซและควรหายไปพร้อมกับมัน ข้ออื่นต้องอยู่ยาวกว่าอุโมงค์ และตัวอย่างที่ชัดที่สุดคือข้อจำกัดที่ ห้ามไม่ให้ทราฟฟิกของไคลเอนต์ย้อนกลับไปยังอินเทอร์เฟซจริง เมื่ออุโมงค์ขาด ทั้งสองประเภทต้องใช้ตัวกระตุ้นการคืนค่าที่ต่างกัน ไม่ใช่ภาพเดียวที่ใช้ร่วมกัน
เขียนผลลัพธ์ที่ต้องการสำหรับสามจังหวะ การเริ่มระบบ การเปิดใช้งาน VPN และการสูญเสียอุโมงค์ จากนั้นตรวจว่าเครื่องมือที่เลือกแสดงออกได้ครบทุกจังหวะหรือไม่ แพ็กเกจรักษาสถานะที่โหลดภาพนิ่งกลับมาจัดการจังหวะแรกได้ และอาจจัดการอีกสองจังหวะไม่ได้เลย เพราะภาพไม่รู้ว่าสถานะของอุโมงค์เปลี่ยนเมื่อใด หากแสดงออกไม่ได้ ช่องว่างนั้นเป็นขององค์ประกอบอื่น
คำตอบตัดสินโดยนโยบาย ไม่ใช่แพ็กเกจ
ตรวจลำดับการคืนค่า
การคืนค่าไฟล์ไม่เหมือนกับการเป็นเจ้าของผลลัพธ์ ตัวจัดการอื่นสามารถแทนที่กฎได้ accept ก่อนหน้าอาจบดบังกฎเหล่านั้น หรือไคลเอนต์อาจเริ่มส่งก่อนข้อจำกัดจะมีผล ตรวจพฤติกรรมตอนเริ่มระบบและตอนเชื่อมต่อใหม่ ไม่ใช่แค่การมีไฟล์ที่บันทึกไว้
systemctl status netfilter-persistent
iptables -S
อย่าสันนิษฐานว่าการหยุดบริการรักษาสถานะนั้นไม่เป็นอันตราย เพราะแพ็กเกจระบุการล้างแบบมีเงื่อนไขเมื่อหยุด กำหนดค่าจริงของบริการก่อนใช้ stop หรือ restart เป็นการทดลองบนเกตเวย์ที่คุณดูแลจากระยะไกล เซสชันคอนโซลและการย้อนกลับที่บันทึกไว้เป็นขั้นต่ำก่อนการทดสอบนั้น
ลำดับเป็นคุณสมบัติของระบบที่กำลังทำงาน ไม่ใช่ของไฟล์บนดิสก์
ยอมรับผลลัพธ์สามอย่างแยกกัน
บันทึกการติดตั้งแพ็กเกจ ชุดกฎที่โหลดอยู่ และนโยบายที่บังคับใช้เป็นข้อเท็จจริงแยกกัน ชื่อแพ็กเกจในกระทู้ช่วยเหลือตอบได้เพียงข้อแรก และเป็นข้อที่แทบไม่สำคัญ
nft list ruleset
จากนั้นทดสอบการกระทำที่ได้รับอนุญาตและการปฏิเสธที่จำเป็น
หากการปฏิเสธยังอยู่หลังรีบูตและหลังอุโมงค์ขาด นโยบายก็อยู่รอด หากยังอยู่เพียงสถานะใดสถานะหนึ่ง คุณพบปัญหาลำดับแล้ว ไม่ใช่แก้ไขมัน