บางวันที่ผ่านมา เวอร์ชันใหม่ของตัวกรองแพ็คเก็ต nftables 0.9.3 ได้รับการเผยแพร่, นั่น พัฒนาเพื่อทดแทน iptables, ip6table, arptables และ ebtables เนื่องจากการรวมกันของอินเทอร์เฟซการกรองแพ็กเก็ตสำหรับ IPv4, IPv6, ARP และบริดจ์เครือข่าย
แพ็คเกจ nftables ใช้ชิ้นส่วนโครงสร้างของโครงสร้างพื้นฐาน Netfilterชอบ ระบบติดตามการเชื่อมต่อ (ระบบติดตามการเชื่อมต่อ) หรือระบบย่อยการลงทะเบียน นอกจากนี้ยังมีเลเยอร์ความเข้ากันได้สำหรับการแปลกฎไฟร์วอลล์ iptables ที่มีอยู่ให้เทียบเท่าใน nftables
เกี่ยวกับ Nftables
nftables รวมถึงส่วนประกอบตัวกรองแพ็คเก็ต ที่ทำงานในพื้นที่ผู้ใช้ในขณะที่ระดับเคอร์เนลระบบย่อย nf_tables เป็นส่วนหนึ่งของเคอร์เนล Linux ตั้งแต่เวอร์ชัน 3.13
ในระดับเคอร์เนลจะมีเฉพาะอินเทอร์เฟซทั่วไปเท่านั้น ซึ่งไม่ขึ้นอยู่กับโปรโตคอลเฉพาะและมีฟังก์ชันพื้นฐานสำหรับการดึงข้อมูลจากแพ็กเก็ตการดำเนินการกับข้อมูลและการควบคุมโฟลว์
ตรรกะการกรองตัวเองและตัวประมวลผลเฉพาะโปรโตคอลจะถูกรวบรวมเป็น bytecode ในพื้นที่ผู้ใช้หลังจากนั้น bytecode นี้จะถูกโหลดลงในเคอร์เนลโดยใช้อินเตอร์เฟส Netlink และรันในเครื่องเสมือนพิเศษที่มีลักษณะดังนี้ BPF (Berkeley Packet Filters)
วิธีนี้ช่วยให้คุณลดขนาดของรหัสการกรองที่ทำงานในระดับเคอร์เนลลงอย่างมากและกำจัดฟังก์ชันกฎการแยกวิเคราะห์ทั้งหมดและตรรกะของการทำงานกับโปรโตคอลในพื้นที่ผู้ใช้
ข้อดีหลักของ nftables คือ:
- สถาปัตยกรรมที่ฝังอยู่ในแกนกลาง
- ไวยากรณ์ที่รวมเครื่องมือ IPtables ไว้ในเครื่องมือบรรทัดคำสั่งเดียว
- เลเยอร์ความเข้ากันได้ที่อนุญาตให้ใช้ไวยากรณ์ของกฎ IPtables
- ไวยากรณ์ใหม่ที่ง่ายต่อการเรียนรู้
- กระบวนการเพิ่มกฎไฟร์วอลล์ที่ง่ายขึ้น
- ปรับปรุงการรายงานข้อบกพร่อง
- ลดการจำลองรหัส
- ประสิทธิภาพโดยรวมการรักษาและการเปลี่ยนแปลงที่เพิ่มขึ้นในการกรองกฎ
มีอะไรใหม่ใน nftables 0.9.3?
ในเวอร์ชันใหม่ของ nftables 0.9.3 เพิ่มการสนับสนุนสำหรับแพ็คเกจที่ตรงกัน เมื่อเวลาผ่านไป ด้วยวิธีนี้คุณสามารถกำหนดช่วงเวลาและวันที่ ซึ่งกฎจะเปิดใช้งานและกำหนดค่าการเปิดใช้งานในแต่ละวันของสัปดาห์ ยังเพิ่มตัวเลือก "-T" ใหม่เพื่อแสดงเวลาในหน่วยวินาที
การเปลี่ยนแปลงที่โดดเด่นอีกประการหนึ่งคือ รองรับการกู้คืนและบันทึกแท็ก SELinux (secmark) ใช่เช่นเดียวกับ รองรับรายการแผนที่ synproxyช่วยให้คุณสามารถกำหนดกฎมากกว่าหนึ่งกฎต่อแบ็กเอนด์
จากการเปลี่ยนแปลงอื่น ๆ ที่โดดเด่นกว่ารุ่นใหม่นี้:
- ความสามารถในการนำองค์ประกอบ set-set ออกจากกฎการประมวลผลแพ็กเก็ตแบบไดนามิก
- รองรับการทำแผนที่ VLAN โดยตัวระบุและโปรโตคอลที่กำหนดไว้ในข้อมูลเมตาของอินเทอร์เฟซบริดจ์เครือข่าย
- ตัวเลือก "-t" ("–terse") เพื่อยกเว้นองค์ประกอบ set-set เมื่อแสดงกฎ การเรียกใช้ "ชุดกฎรายการ nft -t" จะแสดง:
- ตั้งกฎรายการ Nft
- ความสามารถในการระบุอุปกรณ์มากกว่าหนึ่งเครื่องในเครือข่าย netdev (ใช้ได้กับเคอร์เนล 5.5 เท่านั้น) เพื่อรวมกฎตัวกรองทั่วไป
- ความสามารถในการเพิ่มคำอธิบายประเภทข้อมูล
- ความสามารถในการสร้างอินเทอร์เฟซ CLI ด้วยไลบรารีผ้าลินินแทน libreadline
จะติดตั้งเวอร์ชันใหม่ของ nftables 0.9.3 ได้อย่างไร?
เพื่อรับเวอร์ชันใหม่ ในขณะนี้สามารถคอมไพล์ซอร์สโค้ดเท่านั้น ในระบบของคุณ แม้ว่าภายในไม่กี่วันแพคเกจไบนารีที่คอมไพล์แล้วจะพร้อมใช้งานในลีนุกซ์รุ่นต่างๆ
นอกเหนือจากนั้น การเปลี่ยนแปลงที่จำเป็นสำหรับ nftables 0.9.3 ในการทำงานจะรวมอยู่ในสาขาเคอร์เนลของ Linux 5.5 ในอนาคต ดังนั้นในการคอมไพล์คุณต้องติดตั้งการอ้างอิงต่อไปนี้:
สิ่งเหล่านี้สามารถรวบรวมได้ด้วย:
./autogen.sh
./configure
make
make install
และสำหรับ nftables 0.9.3 เราดาวน์โหลดจาก ลิงค์ต่อไปนี้. และการคอมไพล์ทำได้ด้วยคำสั่งต่อไปนี้:
cd nftables
./autogen.sh
./configure
make
make install