Rumah > Artikel > Operasi dan penyelenggaraan > Apakah nftables?
Apakah itu nftables?
Hampir setiap pentadbir Linux telah menggunakan iptables, iaitu tembok api untuk sistem Linux. Tetapi anda mungkin tidak biasa dengan nftables, tembok api baharu yang memberikan kami beberapa peningkatan yang diperlukan dan mungkin menggantikan iptables.
Mengapa menggunakan nftables?
Nftables dibangunkan oleh organisasi Netfilter, yang pada masa ini mengekalkan iptables. Nftables direka untuk menyelesaikan masalah prestasi dan kebolehskalaan iptables.
Dengan pengecualian beberapa peningkatan dan sintaks yang diubah, nftables berfungsi hampir sama dengan iptables. Satu lagi sebab mengapa nftables diperkenalkan adalah kerana rangka kerja iptables telah menjadi sedikit rumit, ip6tables, arptables dan ebtables semuanya mempunyai fungsi yang berbeza tetapi serupa.
Contohnya, mencipta peraturan IPv4 dalam iptables dan peraturan IPv6 dalam ip6tables dan mengekalkan kedua-duanya dalam penyegerakan adalah sangat tidak cekap. Nftables bertujuan untuk menggantikan semua ini dan menjadi penyelesaian terpusat.
Walaupun nftables telah dimasukkan ke dalam kernel Linux sejak 2014, ia telah menjadi semakin popular baru-baru ini apabila penerimaan berkembang. Perubahan adalah perlahan dalam dunia Linux, dan ia selalunya mengambil masa beberapa tahun atau lebih untuk utiliti yang sudah lapuk untuk dihapuskan secara berperingkat dan digantikan dengan yang telah dinaik taraf.
Hari ini kami akan memperkenalkan secara ringkas perbezaan antara nftables dan iptables, dan menunjukkan contoh mengkonfigurasi peraturan firewall dalam sintaks nftables baharu.
Rantaian dan peraturan dalam nftables
Dalam iptables, terdapat tiga rantai lalai: input , output dan forwarding. Tiga "rantai" ini (serta rantaian lain) mengandungi "peraturan" dan iptables berfungsi dengan memadankan trafik rangkaian dengan senarai peraturan dalam rantaian. Apabila trafik yang diperiksa tidak sepadan dengan mana-mana peraturan, dasar lalai rantaian (seperti ACCEPT atau DROP) akan digunakan pada trafik.
Nftables berfungsi sama, dengan "rantaian" dan "peraturan". Walau bagaimanapun, ia bermula tanpa sebarang rantaian asas, yang menjadikan konfigurasi lebih fleksibel.
Satu aspek ketidakcekapan iptables ialah semua data rangkaian mesti merentasi satu atau lebih rantai di atas, walaupun trafik tidak sepadan dengan mana-mana peraturan. Walaupun anda tidak mengkonfigurasi pautan, iptables masih akan memeriksa data rangkaian anda dan memprosesnya.
Memasang nftable dalam Linux
nftables tersedia dalam semua pengedaran Linux utama, anda boleh menggunakan versi pengedaran pengurus pakej untuk dipasang.
Dalam sistem berasaskan Ubuntu atau Debian, anda boleh menggunakan arahan berikut:
sudo apt install nftables
Tetapkan nftables untuk bermula secara automatik apabila sistem dimulakan semula, boleh laku Lakukan seperti berikut:
sudo systemctl enable nftables.service
Perbezaan sintaks antara iptables dan nftables
Sintaks nftables berbanding iptables It' , tetapi sintaks dalam iptables juga boleh digunakan dalam nftables.
Anda boleh menggunakan alat iptables-translate, yang mengambil arahan iptables dan menterjemahkannya ke dalam arahan nftables yang setara, yang merupakan cara mudah untuk memahami perbezaan antara kedua-dua sintaks.
Pasang iptables-translate pada pengedaran berasaskan Ubuntu dan Debian menggunakan arahan berikut:
sudo apt install iptables-nftables-compat
Selepas pemasangan, anda boleh menukar iptables-translate kepada Diluluskan kepada perintah iptables-translate, ia mengembalikan perintah setara nftables.
Mari kita lihat beberapa contoh sintaks khusus di bawah.
Sekat sambungan masuk
Arahan berikut akan menyekat sambungan masuk daripada alamat IP 192.168.2.1:
$ iptables-translate -A INPUT -s 192.168.2.1 -j DROPnft add rule ip filter INPUT ip saddr 192.168.2.1 counter drop
Benarkan sambungan SSH masuk
Keluarkan kebenaran sambungan ssh:
$ iptables-translate -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT tcp dport 22 ct state new,established counter accept
Benarkan sambungan SSH masuk dari julat IP tertentu
Jika anda hanya mahu membenarkan sambungan SSH masuk dari 192.168.1.0/24:
$ iptables-translate -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT ip saddr 192.168.1.0/24 tcp dport 22 ct state new,established counter accept
允许MySQL连接到eth0网络接口
$ iptables-translate -A INPUT -i eth0 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT iifname eth0 tcp dport 3306ct state new,established counter accept
允许传入HTTP和HTTPS流量
为了允许特定类型的流量,以下是这两个命令的语法:
$ iptables-translate -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPTnft add rule ip filter INPUT ip protocol tcp tcp dport { 80,443} ct state new,established counter accept
从这些例子中可以看出,nftables 语法与 iptables 非常相似,但命令更直观一些。
nftables 日志
上述nft命令示例中的“counter”选项告诉nftables统计规则被触碰的次数,就像默认情况下使用的iptables一样。
在nftables中,需要指定:
nft add rule ip filter INPUT ip saddr 192.168.2.1 counter accept
nftables内置了用于导出配置的选项。它目前支持XML和JSON。
nft export xml
Atas ialah kandungan terperinci Apakah nftables?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!