อ่าน 4 นาที
เอ็นเอฟเทเบิลส์
nftables เป็นระบบย่อยของ เคอร์เนล Linux ที่ให้การกรองและจำแนกประเภทของ แพ็กเก็ตเครือข่าย /ดาตาแกรม/เฟรม มีให้ใช้งานตั้งแต่เคอร์เนล Linux 3.
เอ็นเอฟเทเบิลส์
| เอ็นเอฟเทเบิลส์ | |
|---|---|
| ผู้เขียนต้นฉบับ | โครงการเน็ตฟิลเตอร์ |
| นักพัฒนา | โครงการเน็ตฟิลเตอร์ |
| เวอร์ชันเสถียร | 1.1.6 [ 1 ] |
| รุ่นทดลองใช้งาน | ที่เก็บ Git |
| เขียนเป็น | ซี |
| ระบบปฏิบัติการ | ลินุกซ์ |
| แพลตฟอร์ม | เน็ตฟิลเตอร์ |
| พิมพ์ | การกรองแพ็กเก็ต |
| ใบอนุญาต | จีพีแอลวี2 |
| เว็บไซต์ |
|
| ที่เก็บข้อมูล |
|
nftablesเป็นระบบย่อยของเคอร์เนล Linuxที่ให้การกรองและจำแนกประเภทของแพ็กเก็ตเครือข่าย /ดาตาแกรม/เฟรม มีให้ใช้งานตั้งแต่เคอร์เนล Linux 3.13 ที่วางจำหน่ายเมื่อวันที่ 19 มกราคม 2014 [ 2 ]
nftables แทนที่ส่วนประกอบ iptablesเดิมของNetfilterข้อดีของ nftables เหนือ iptables คือมีการทำซ้ำโค้ดน้อยลงและขยายไปยังโปรโตคอลใหม่ได้ง่ายกว่า ข้อเสียของ nftables คือไม่รองรับDPIที่มีให้โดย "iptables string match" เช่น การกรอง SNI [ 3 ]
nftables ถูกกำหนดค่าผ่านยูทิลิตี้nft ในพื้นที่ผู้ใช้ในขณะที่เครื่องมือรุ่นเก่าถูกกำหนดค่าผ่านเฟรมเวิร์ กยูทิลิตี้ iptables , ip6tables , arptablesและebtables
nftables ใช้ส่วนประกอบพื้นฐานของ โครงสร้างพื้นฐาน Netfilterเช่น ส่วนเชื่อมต่อที่มีอยู่แล้วในระบบเครือข่าย ระบบติดตามการเชื่อมต่อ ส่วนประกอบการจัดคิวในพื้นที่ผู้ใช้ และระบบย่อยการบันทึกข้อมูล
เอ็นเอฟที
ไวยากรณ์บรรทัดคำสั่ง
คำสั่งสำหรับทิ้งแพ็กเก็ตใดๆ ที่มีที่อยู่ IP ปลายทางดังนี้1.2.3.4:
nft add rule ip filter output ip daddr 1.2.3.4 dropโปรดทราบว่าไวยากรณ์ใหม่นี้แตกต่างอย่างมากจากไวยากรณ์ของ iptables ซึ่งกฎเดียวกันนี้จะเขียนด้วยรูปแบบดังนี้:
iptables -A OUTPUT -d 1.2.3.4 -j DROPไวยากรณ์ใหม่นี้อาจดูซับซ้อนกว่า แต่ก็มีความยืดหยุ่นมากกว่ามาก nftables ผสานรวมโครงสร้างข้อมูลขั้นสูงเช่น พจนานุกรม แผนที่ และการเชื่อมต่อข้อมูล ซึ่งไม่มีใน iptables การใช้โครงสร้างข้อมูลเหล่านี้สามารถลดจำนวนเชนและกฎที่จำเป็นในการแสดงการออกแบบการกรองแพ็กเก็ตได้อย่างมาก
เครื่องมือ นี้iptables-translateสามารถใช้แปลงกฎ iptables ที่มีอยู่หลายรายการให้เป็นกฎ nftables ที่เทียบเท่าได้[ 4 ] [ 5 ] Debian 10 (Buster)และระบบปฏิบัติการ Linux อื่นๆ ใช้ nftables เป็นiptables-translateแบ็กเอนด์การกรองแพ็กเก็ตเริ่มต้น[ 6 ]
ประวัติศาสตร์
โครงการนี้ได้รับการนำเสนอต่อสาธารณะครั้งแรกในงาน Netfilter Workshop 2008 โดย Patrick McHardy จากทีมหลักของ Netfilter [ 7 ]การเปิดตัวเวอร์ชันพรีวิวแรกของการใช้งานเคอร์เนลและพื้นที่ผู้ใช้เกิดขึ้นในเดือนมีนาคม 2009 [ 8 ]แม้ว่าเครื่องมือนี้จะถูกเรียกว่า "การเปลี่ยนแปลงครั้งใหญ่ที่สุดในไฟร์วอลล์ของ Linux นับตั้งแต่การเปิดตัว iptables ในปี 2001" แต่ก็ได้รับความสนใจจากสื่อเพียงเล็กน้อย[ 9 ]แฮกเกอร์ชื่อดังFyodor Vaskovich (Gordon Lyon) กล่าวว่าเขา "ตั้งตารอการเปิดตัวทั่วไปในเคอร์เนล Linux หลัก " [ 9 ]
โครงการยังคงอยู่ในขั้นตอนอัลฟ่า และเว็บไซต์อย่างเป็นทางการถูกลบออกในปี 2009 ในเดือนมีนาคม 2010 อีเมลจากผู้เขียนในรายชื่อผู้รับจดหมายของโครงการแสดงให้เห็นว่าโครงการยังคงใช้งานอยู่และกำลังจะออกเวอร์ชันเบต้า[ 10 ] [ 11 ]แต่เวอร์ชันเบต้าดังกล่าวไม่เคยถูกเผยแพร่อย่างเป็นทางการ ในเดือนตุลาคม 2012 Pablo Neira Ayuso ได้เสนอเลเยอร์ความเข้ากันได้สำหรับ iptables [ 12 ]และประกาศความเป็นไปได้ในการรวมโครงการเข้ากับเคอร์เนลหลัก
เมื่อวันที่ 16 ตุลาคม 2013 Pablo Neira Ayuso ได้ส่งคำขอ pull request หลักของ nftables ไปยังต้นไม้หลักของเคอร์เนล Linux [ 13 ]คำขอดังกล่าวได้รับการรวมเข้ากับเคอร์เนลหลักเมื่อวันที่ 19 มกราคม 2014 พร้อมกับการเปิดตัวเคอร์เนล Linux เวอร์ชัน 3.13 [ 2 ]
ภาพรวม
เอ็นจิ้นเคอร์เนล nftables เพิ่มเครื่องเสมือน แบบง่ายๆ ลงในเคอร์เนล Linux ซึ่งสามารถเรียกใช้ไบต์โค้ดเพื่อตรวจสอบแพ็กเก็ตเครือข่ายและตัดสินใจว่าควรจัดการกับแพ็กเก็ตนั้นอย่างไร การดำเนินการที่ดำเนินการโดยเครื่องเสมือนนี้ตั้งใจให้เป็นแบบพื้นฐาน สามารถรับข้อมูลจากแพ็กเก็ตเอง ดูเมตาเดต้าที่เกี่ยวข้อง (เช่น อินเทอร์เฟซขาเข้า) และจัดการข้อมูลการติดตามการเชื่อมต่อ สามารถใช้ตัวดำเนินการทางคณิตศาสตร์ บิตไวส์ และการเปรียบเทียบเพื่อตัดสินใจโดยอิงจากข้อมูลนั้น เครื่องเสมือนยังสามารถจัดการชุดข้อมูล (โดยทั่วไปคือที่อยู่ IP) ทำให้สามารถแทนที่การดำเนินการเปรียบเทียบหลายรายการด้วยการค้นหาชุดเดียวได้[ 14 ]
องค์กรที่อธิบายไว้ข้างต้นนั้นขัดแย้งกับโค้ดไฟร์วอลล์ iptables ซึ่งมีการรับรู้โปรโตคอลที่ฝังลึกอยู่ในตรรกะจนโค้ดต้องถูกทำซ้ำถึงสี่ครั้ง—สำหรับIPv4 , IPv6 , ARPและการเชื่อมต่อ อีเธอร์เน็ต —เนื่องจากเอ็นจิ้นไฟร์วอลล์มีความเฉพาะเจาะจงกับโปรโตคอลมากเกินไปที่จะใช้งานในลักษณะทั่วไปได้[ 14 ]
ข้อดีหลักของ nftables เมื่อเทียบกับ iptables คือ การลดความซับซ้อนของABI เคอร์เนล Linux การลดการเขียนโค้ด ซ้ำซ้อน การรายงานข้อผิดพลาดที่ดีขึ้นและการทำงาน การจัดเก็บ และการเปลี่ยนแปลงกฎการกรองแบบเพิ่มทีละน้อยที่มีประสิทธิภาพมากขึ้น คำสั่ง `nftable` ที่ใช้กันทั่วไป` iptables` และ`iptables` (สำหรับ IPv4, IPv6, ARP และการเชื่อมต่อ Ethernet ตามลำดับ) จะถูกแทนที่ด้วย `nftable` ซึ่งเป็นการใช้งานแบบครบวงจรเพียงอย่างเดียว โดยให้การกำหนดค่าไฟร์วอลล์บนเครื่อง เสมือนในเคอร์เนล
นอกจากนี้ nftables ยังมี API พื้นที่ผู้ใช้ที่ได้รับการปรับปรุง ซึ่งช่วยให้สามารถแทนที่กฎไฟร์วอลล์หนึ่งรายการหรือมากกว่านั้นได้ภายใน ธุรกรรม Netlink เดียว ซึ่งจะช่วยเร่ง ความเร็วในการเปลี่ยนแปลงการกำหนดค่าไฟร์วอลล์สำหรับการตั้งค่าที่มีชุดกฎขนาดใหญ่ และยังช่วยหลีกเลี่ยงสภาวะการแข่งขันในขณะที่กำลังดำเนินการเปลี่ยนแปลงกฎ nftables ยังมีคุณสมบัติความเข้ากันได้เพื่ออำนวยความสะดวกในการเปลี่ยนจากไฟร์วอลล์รุ่นก่อนหน้า ยูทิลิตี้บรรทัดคำสั่งเพื่อแปลงกฎในรูปแบบ iptables [ 15 ]และเวอร์ชันที่เข้ากันได้กับไวยากรณ์ของคำสั่ง iptables ที่ใช้แบ็กเอนด์ nftables [ 16 ]
ลิงก์ภายนอก
- การเผยแพร่ nftables ครั้งแรก (18 มีนาคม 2009)
- Pablo Neira Ayuso: [RFC] กลับมาใช้ nf_tables อีกครั้ง (รวมถึงเลเยอร์ความเข้ากันได้)
- วิธีใช้งาน nftables อย่างรวดเร็ว
- ส่วน nftables ในArchWikiและGentoo Wiki
- Corbet, Jonathan (24 มีนาคม 2552). "nftables: เครื่องมือกรองแพ็กเก็ตแบบใหม่" . LWN.net .
- McHardy, Patrick (30 กันยายน 2008). nftables – ผู้สืบทอดต่อจาก iptables, ip6tables, ebtables และ arptables . Netfilter Workshop 2008.เก็บถาวรจากต้นฉบับ( ODP )เมื่อ 22 มีนาคม 2009
- nft_compat ได้รับการขยายเพื่อรองรับส่วนขยาย ebtables (รวมอยู่ในเคอร์เนล Linux เวอร์ชัน 4.0)
- คู่มือการใช้งานเครื่องมือบรรทัดคำสั่ง nft ฉบับขยายและปรับปรุงแล้ว
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เอ็นเอฟเทเบิลส์
nftables เป็นระบบย่อยของ เคอร์เนล Linux ที่ให้การกรองและจำแนกประเภทของ แพ็กเก็ตเครือข่าย /ดาตาแกรม/เฟรม มีให้ใช้งานตั้งแต่เคอร์เนล Linux 3.
ไวยากรณ์บรรทัดคำสั่ง
คำสั่งสำหรับทิ้งแพ็กเก็ตใดๆ ที่มีที่อยู่ IP ปลายทางดังนี้ 1.2.3.4 :
ประวัติศาสตร์
โครงการนี้ได้รับการนำเสนอต่อสาธารณะครั้งแรกในงาน Netfilter Workshop 2008 โดย Patrick McHardy จากทีมหลักของ Netfilter [ 7 ] การเปิดตัวเวอร์ชันพรีวิวแรกของการใช้งานเคอร์เนลและพื้นที่ผู้ใช้เกิดขึ้นในเดือนมีนาคม 2009 [ 8 ] แม้ว่าเครื่องมือนี้จะถูกเรียกว่า...
ภาพรวม
เอ็นจิ้นเคอร์เนล nftables เพิ่ม เครื่องเสมือน แบบง่ายๆ ลงในเคอร์เนล Linux ซึ่งสามารถเรียกใช้ไบต์โค้ดเพื่อตรวจสอบแพ็กเก็ตเครือข่ายและตัดสินใจว่าควรจัดการกับแพ็กเก็ตนั้นอย่างไร การดำเนินการที่ดำเนินการโดยเครื่องเสมือนนี้ตั้งใจให้เป็นแบบพื้นฐาน...