การเปิดตัวตัวกรองแพ็กเก็ต nftables 1.0.7 ได้รับการเผยแพร่แล้ว ซึ่งมาพร้อมกับการปรับปรุง การแก้ไข และคุณลักษณะใหม่บางอย่าง
สำหรับผู้ที่ไม่คุ้นเคยกับ nftables คุณควรรู้ว่าสิ่งนี้ รวมอินเทอร์เฟซการกรองแพ็กเก็ตสำหรับ IPv4 IPv6, ARP และการเชื่อมโยงเครือข่าย (มีวัตถุประสงค์เพื่อแทนที่ iptables, ip6table, arptables และ ebtables) ในเวลาเดียวกัน ไลบรารีที่แสดงร่วม libnftnl 1.2.3 ได้รับการเผยแพร่ ซึ่งจัดเตรียม API ระดับต่ำสำหรับการเชื่อมต่อกับระบบย่อย nf_tables
แพ็คเกจ nftables รวมถึงส่วนประกอบตัวกรองแพ็กเก็ตที่ทำงานในพื้นที่ผู้ใช้ ในขณะที่ระดับเคอร์เนลระบบย่อย nf_tables จัดเตรียมส่วนหนึ่งของเคอร์เนล Linux ตั้งแต่เวอร์ชัน 3.13
ในระดับแกนกลางเท่านั้น จัดเตรียมอินเทอร์เฟซทั่วไปที่ไม่ขึ้นกับโปรโตคอล เฉพาะและให้ไฟล์ ฟังก์ชั่นพื้นฐาน เพื่อแยกข้อมูลจากแพ็กเก็ตดำเนินการกับข้อมูลและควบคุมโฟลว์
ลา กฎการกรองโดยตรงและไดรเวอร์เฉพาะโปรโตคอล พวกเขาจะรวบรวมเป็น bytecode ในพื้นที่ผู้ใช้หลังจากนั้น bytecode นี้จะถูกโหลดลงในเคอร์เนลโดยใช้อินเทอร์เฟซ Netlink และดำเนินการในเคอร์เนลในเครื่องเสมือนพิเศษที่คล้ายกับ BPF (Berkeley Packet Filters)
คุณสมบัติใหม่หลักของ Nftables 1.0.7
ในเวอร์ชันใหม่นี้ที่มาจาก nftables 1.0.7 สำหรับ ระบบเคอร์เนล Linux 6.2+ เพิ่ม รองรับการจับคู่โปรโตคอล vxlan, geneve, gre และ gretap ซึ่งช่วยให้นิพจน์อย่างง่ายตรวจสอบส่วนหัวในแพ็กเก็ตที่ห่อหุ้ม
ตัวอย่างเช่น ในการตรวจสอบที่อยู่ IP ในส่วนหัวของแพ็กเก็ต VxLAN ที่ซ้อนกัน ตอนนี้คุณสามารถใช้กฎ (โดยไม่จำเป็นต้องคลายส่วนหัวของ VxLAN ก่อนและผูกตัวกรองเข้ากับอินเทอร์เฟซ vxlan0):
นอกจากนี้ ยังเน้นย้ำว่าและใช้การสนับสนุนสำหรับการรวมสิ่งตกค้างโดยอัตโนมัติ หลังจากการลบบางส่วนของรายการออกจากรายการการกำหนดค่า ทำให้สามารถลบรายการหรือบางส่วนของช่วงออกจากช่วงที่มีอยู่ได้ (ก่อนหน้านี้ ช่วงสามารถลบออกได้ทั้งหมดเท่านั้น)
ตัวอย่างเช่น หลังจากลบรายการ 25 ออกจากชุดรายการที่มีช่วง 24-30 และ 40-50 แล้ว 24, 26-30 และ 40-50 จะยังคงอยู่ในรายการ การแก้ไขที่จำเป็นสำหรับการรวมอัตโนมัติเพื่อให้ทำงานจะมีให้ในแพตช์รีลีสของสาขาเคอร์เนลที่เสถียรกว่า 5.10+
นอกจากนี้ยังตั้งข้อสังเกตว่ามันถูกเพิ่ม รองรับนิพจน์ "สุดท้าย"ที่ อนุญาตให้ค้นหาครั้งสุดท้ายที่มีการใช้องค์ประกอบของกฎหรือรายการการกำหนดค่า. คุณลักษณะนี้ได้รับการสนับสนุนตั้งแต่เคอร์เนล Linux 5.14
อีกด้านหนึ่ง ยังเน้นย้ำว่า เพิ่มคำสั่ง "ทำลาย" ใหม่ เพื่อลบออบเจกต์โดยไม่มีเงื่อนไข (ไม่เหมือนกับคำสั่ง Remove ที่ไม่เพิ่ม ENOENT เมื่อพยายามลบออบเจ็กต์ที่หายไป) ต้องใช้เคอร์เนล Linux 6.3-rc เป็นอย่างน้อยจึงจะทำงานได้
- อนุญาตให้ใช้ค่าคงที่ในรายการชุด ตัวอย่างเช่น การใช้รายการที่อยู่ปลายทางและ VLAN ID เป็นคีย์ คุณสามารถระบุหมายเลข VLAN ได้โดยตรง (daddr . 123):
- เพิ่มความสามารถในการกำหนดโควต้าในรายการการกำหนดค่า ตัวอย่างเช่น หากต้องการกำหนดโควต้าการรับส่งข้อมูลสำหรับที่อยู่ IP ปลายทางแต่ละรายการ คุณสามารถระบุ
- อนุญาตให้ใช้ผู้ติดต่อและช่วงในการแมปการแปลที่อยู่ (NAT)
ในที่สุด สำหรับผู้ที่สนใจต้องการทราบข้อมูลเพิ่มเติม เกี่ยวกับเวอร์ชันใหม่นี้คุณสามารถตรวจสอบรายละเอียด ในลิงค์ต่อไปนี้.
จะติดตั้งเวอร์ชันใหม่ของ nftables 1.0.7 ได้อย่างไร?
สำหรับผู้ที่สนใจอยากได้ nftables เวอร์ชั่นใหม่ 1.0.7 ในขณะนี้สามารถคอมไพล์ซอร์สโค้ดเท่านั้น ในระบบของคุณ แม้ว่าภายในไม่กี่วันแพคเกจไบนารีที่คอมไพล์แล้วจะพร้อมใช้งานในลีนุกซ์รุ่นต่างๆ
ในการคอมไพล์คุณต้องติดตั้งการอ้างอิงต่อไปนี้:
สิ่งเหล่านี้สามารถรวบรวมได้ด้วย:
./autogen.sh ./configure make make install
และสำหรับ nftables 1.0.5 เราดาวน์โหลดจาก ลิงค์ต่อไปนี้. และการคอมไพล์ทำได้ด้วยคำสั่งต่อไปนี้:
cd nftables ./autogen.sh ./configure make make install