ไฟร์วอลล์ของการแจกจ่ายลินุกซ์อาจบล็อกทราฟฟิก VPN ของคุณ
ตัวจัดการตัวกรองสองตัว ชุดกฎหนึ่งชุด และอุโมงค์ที่ไปลงในโซนผิด ระบุเจ้าของและทิศทางก่อนเพิ่มกฎใด ๆ
อุโมงค์เชื่อมต่อขึ้นมา บันทึกบอกว่าเชื่อมต่อแล้ว แต่แอปพลิเคชันหนึ่งยังคงเข้าถึงอะไรไม่ได้เลย บนไคลเอนต์ลินุกซ์ นี่มักหมายความว่าไฟร์วอลล์ของการแจกจ่ายกำลังกรองเส้นทางที่ไคลเอนต์ VPN ไม่เคยจัดการ ตัวจัดการสองตัวสามารถทำงานพร้อมกันได้ แต่ละตัวมีความคิดของตัวเองเกี่ยวกับอินเทอร์เฟซ โซน และทิศทางของทราฟฟิก การระบุเจ้าของก่อนแก้ไขสิ่งใดเร็วกว่าการลองกฎไปเรื่อย ๆ จนกว่าอะไรจะทำงานได้
ค้นหาตัวจัดการและแบ็กเอนด์
เริ่มจากสิ่งที่โหลดอยู่จริง ไม่ใช่สิ่งที่ติดตั้งไว้ การแจกจ่ายอาจมาพร้อม firewalld, ufw และบริการ nftables ธรรมดา และมีเพียงตัวเดียวเท่านั้นที่เป็นเจ้าของชุดกฎที่กำลังทำงาน แพ็กเกจอยู่ร่วมกันอย่างสงบ และกฎที่ป้อนผ่านฟรอนต์เอนด์ผิดจะไม่ถึงเคอร์เนลเลย อ่านบริการที่ใช้งานอยู่ แล้วอ่านชุดกฎที่มันสร้างขึ้น
แบ็กเอนด์สำคัญพอ ๆ กับฟรอนต์เอนด์ การติดตั้ง firewalld สามารถขับเคลื่อน nftables หรือแบ็กเอนด์ iptables แบบเก่า ขึ้นอยู่กับเวอร์ชันและการกำหนดค่า และทั้งสองให้ผลลัพธ์การตรวจสอบที่ต่างกัน จดการแจกจ่าย เวอร์ชัน และแบ็กเอนด์ลงในตั๋วก่อนเปรียบเทียบระบบของคุณกับคู่มือใด ๆ
จับคู่ทิศทางและอินเทอร์เฟซ
คำขอขาออกจากไคลเอนต์ ตัวรับฟังขาเข้า และแพ็กเก็ตที่ส่งต่อ ผ่านฮุกที่ต่างกัน และกฎสำหรับอย่างหนึ่งไม่ครอบคลุมอย่างอื่น โซนที่อนุญาต LAN ภายในมักไม่รวมอินเทอร์เฟซของอุโมงค์หรือกลุ่มที่อยู่ VPN อินเทอร์เฟซของอุโมงค์มักไปลงในโซนเริ่มต้น ซึ่งมักเข้มงวดกว่าโซนที่อะแดปเตอร์กายภาพอยู่ ความไม่ตรงกันนี้อธิบายว่าทำไมการเรียกดูจึงทำงานบน LAN และหยุดทันทีที่อุโมงค์เชื่อมต่อขึ้นมา
ถามว่าทิศทางใดล้มเหลวก่อนเลือกกฎ แอปพลิเคชันที่ไม่สามารถเชื่อมต่อออกภายนอกต้องใช้เส้นทางขาออก ขณะที่บริการขาเข้าต้องใช้เส้นทางขาเข้าบนอินเทอร์เฟซของอุโมงค์ การเพิ่มกฎในเชนที่ผิดจะสร้างการเปลี่ยนแปลงที่ดูเหมือนถูกนำไปใช้และไม่ทำอะไรเลย
รักษาเจ้าของกฎให้สอดคล้องกัน
ฮุกของไคลเอนต์ VPN สภาพแวดล้อมรันไทม์ของคอนเทนเนอร์ และบริการของการแจกจ่าย ต่างก็สามารถแก้ไขเครือข่ายได้และพวกมันไม่ประสานงานกัน กฎที่ป้อนด้วยมือจะหายไปในการโหลดครั้งถัดไป และกฎที่แทรกเข้าไปในเชนของผู้จัดการอาจถูกประเมินในลำดับที่คุณไม่ได้ตั้งใจ ใช้การกำหนดค่าแบบถาวรของผู้จัดการและตรวจสอบชุดกฎที่เป็นผล แทนไฟล์ที่คุณเขียน การปิดไฟร์วอลล์ทั้งหมดเพราะบริการหนึ่งเข้าถึงไม่ได้ คือการแลกปัญหาเล็กกับปัญหาใหญ่
เคาน์เตอร์แบบแคบเป็นวิธีราคาถูกในการหาโฟลว์ที่ถูกปฏิเสธ กฎการบันทึกที่จำกัดไว้ที่ปลายทางเดียวและพอร์ตเดียวจะแสดงว่าการทิ้งเกิดขึ้นในเครื่องหรือไม่ โดยไม่ดักจับทราฟฟิกของคนอื่น ลบกฎการบันทึกเมื่อการสอบสวนสิ้นสุด เพราะมันคือการวินิจฉัยไม่ใช่นโยบาย และ เอกสารโซนของ firewalld อธิบายว่าอินเทอร์เฟซและบริการรวมกันอย่างไร
ตรวจสอบการแก้ไขโดยไม่สูญเสียการล็อกดาวน์
ตรวจสอบสถานะที่นำไปใช้กับตัวจัดการที่เป็นเจ้าของ โดยใช้คำสั่งที่ตรงกับแบ็กเอนด์ที่คุณบันทึกไว้ รายการด้านล่างถือว่า firewalld เป็นผู้รับผิดชอบ เปลี่ยนเป็นสิ่งที่เทียบเท่าสำหรับ nftables หรือ ufw แทนการรันทั้งหมด การผสมเครื่องมือในเซสชันเดียวคือวิธีที่เครื่องลงเอยด้วยชุดกฎสองชุดที่ขัดแย้งกัน
sudo firewall-cmd --get-active-zones
sudo firewall-cmd --zone=trusted --list-all
sudo nft list ruleset | head -40
คำสั่งแรกระบุชื่อโซนและอินเทอร์เฟซที่กำหนดให้ ซึ่งแสดงว่าอุโมงค์ไปลงที่ใดจริง ๆ คำสั่งที่สองพิมพ์กฎและบริการของโซน ทำให้คุณเห็นว่าอินเทอร์เฟซ VPN ถูกครอบคลุมหรือไม่ รายการ nftables คือความจริงพื้นฐานสำหรับแบ็กเอนด์ที่ใช้อยู่ และกฎที่มีอยู่ในไฟล์กำหนดค่าเท่านั้นจะไม่ปรากฏที่นั่น เปรียบเทียบผลลัพธ์ทั้งสามกับกฎที่คุณเพิ่ม และความไม่ตรงกันมักบอกชื่อตัวเอง
จากนั้นทำคำขอเดิมซ้ำและพฤติกรรมล้มเหลวที่คุณต้องการ ไซต์ที่เพิ่งทำงานได้ไม่เพียงพอหากการเปลี่ยนแปลงเดียวกันนั้นได้ลบการล็อกดาวน์ของไคลเอนต์ออกไป ดังนั้นทดสอบเส้นทางที่ไม่มีการป้องกันด้วย บันทึกตัวจัดการ แบ็กเอนด์ อินเทอร์เฟซ และวัตถุประสงค์ของกฎ เพราะการอัปเดตแพ็กเกจที่ปลุกตัวจัดการตัวที่สองขึ้นมาจะสร้างความยุ่งเหยิงทั้งหมดใหม่