GNU/Linux >> Belajar Linux >  >> Linux

iptables vs nftables:Apa Perbedaannya?

Setiap administrator Linux pasti telah bekerja dengan iptables, firewall Linux lama yang telah melayani kami dengan baik selama bertahun-tahun. Tetapi Anda mungkin belum terbiasa dengan nftables, pendatang baru yang bermaksud menawarkan kepada kami beberapa peningkatan yang sangat dibutuhkan dan pada akhirnya menggantikan iptables yang sudah tua.

Mengapa nftables bukan iptables?

Nftables dikembangkan oleh Netfilter, organisasi yang sama yang saat ini mengelola iptables. Itu dibuat sebagai solusi untuk masalah dengan iptables, yaitu skalabilitas dan kinerja.

Terlepas dari sintaks baru dan beberapa peningkatan, Anda akan menemukan bahwa fungsinya sangat mirip dengan pendahulunya.

Pembenaran lain untuk utilitas baru adalah bahwa kerangka kerja iptables telah menjadi sedikit berbelit-belit dengan iptables, ip6tables, arptables, dan ebtables semuanya menyediakan fungsi yang berbeda tetapi serupa.

Misalnya, tidak efisien untuk membuat aturan IPv4 di iptables dan aturan IPv6 di ip6tables dan menjaga keduanya tetap sinkron. Nftables bertujuan untuk menggantikan semua ini dan menjadi solusi terpusat.

Meskipun nftables telah disertakan dalam kernel Linux sejak 2014, baru-baru ini mendapatkan lebih banyak daya tarik karena adopsi menjadi lebih luas. Perubahan lambat di dunia Linux, dan utilitas usang sering kali membutuhkan waktu beberapa tahun atau lebih lama untuk dihapus demi rekan-rekan mereka yang ditingkatkan.

Nftables menjadi firewall pilihan yang direkomendasikan, dan administrator Linux harus memperbarui repertoar mereka. Sekarang adalah waktu yang tepat untuk mempelajari nftables dan memperbarui konfigurasi iptables yang ada.

Jika Anda telah menggunakan iptables selama bertahun-tahun dan tidak terlalu senang dengan gagasan harus mempelajari utilitas baru, jangan khawatir, kami telah membantu Anda dalam panduan ini. Dalam artikel ini, kami akan membahas perbedaan antara nftables dan iptables, dan menunjukkan contoh untuk mengonfigurasi aturan firewall Anda di sintaks nftables baru.

Rantai dan aturan di nftables

Di iptables, ada tiga rantai default:input, output, dan forward. Ketiga "rantai" ini (dan rantai lainnya, jika Anda memiliki yang dikonfigurasi) memegang "aturan" dan iptables bekerja dengan mencocokkan lalu lintas jaringan ke daftar aturan dalam rantai. Jika lalu lintas yang diperiksa tidak cocok dengan aturan apa pun, kebijakan default rantai akan digunakan pada lalu lintas (yaitu, ACCEPT, DROP).

Nftables bekerja mirip dengan ini, dengan "rantai" dan "aturan," juga. Namun, ini tidak dimulai dengan rantai dasar apa pun, yang membuat konfigurasi sedikit lebih fleksibel.

Salah satu area inefisiensi untuk iptables adalah semua data jaringan harus melintasi satu atau lebih rantai yang disebutkan di atas, bahkan jika lalu lintas tidak sesuai dengan aturan apa pun. Apakah Anda telah mengonfigurasi rantai atau tidak, iptables masih memeriksa data jaringan Anda terhadap mereka.

Menginstal nftables di Linux

Nftables tersedia di semua distribusi Linux utama dan Anda dapat menginstalnya dengan mudah menggunakan manajer paket distribusi Anda.

Pada distribusi berbasis Ubuntu atau Debian, Anda dapat menggunakan perintah ini:

sudo apt install nftables

Untuk memastikan bahwa nftables dimulai secara otomatis saat sistem Anda di-boot ulang:

sudo systemctl enable nftables.service

Perbedaan sintaks antara iptables dan nftables

Nftables memiliki sintaks yang berbeda dan jauh lebih sederhana daripada iptables. Jujur saja, sintaks iptables selalu tidak jelas dan membutuhkan upaya ekstra untuk dipelajari. Untungnya bagi mereka yang bermigrasi dari iptables, nftables masih menerima sintaks lama.

Anda juga dapat menggunakan iptables-translate utilitas, yang akan menerima perintah iptables dan mengubahnya menjadi setara nftables. Ini adalah cara mudah untuk melihat bagaimana kedua sintaks ini berbeda.

Instal iptables-translate di Ubuntu dan distribusi berbasis Debian dengan perintah ini:

sudo apt install iptables-nftables-compat

Setelah terinstal, Anda dapat meneruskan sintaks iptables Anda ke perintah iptables-translate, dan itu akan mengembalikan perintah yang setara dengan nftables.

Mari kita lihat beberapa contoh sehingga Anda dapat melihat bagaimana perintah ini berbeda satu sama lain.

Blokir koneksi masuk

Perintah ini akan memblokir koneksi masuk dari alamat IP 192.168.2.1:

[email protected]:~$ iptables-translate -A INPUT -s 192.168.2.1 -j DROP
nft add rule ip filter INPUT ip saddr 192.168.2.1 counter drop

Izinkan koneksi SSH masuk

Mari kita lihat beberapa contoh lagi – hal-hal umum yang biasanya Anda ketikkan ke iptables saat mengeraskan server Linux.

[email protected]:~$ iptables-translate -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
nft add rule ip filter INPUT tcp dport 22 ct state new,established counter accept

Izinkan koneksi SSH masuk dari rentang IP tertentu

Jika Anda ingin mengizinkan koneksi SSH masuk dari 192.168.1.0/24:

[email protected]:~$ iptables-translate -A INPUT -p tcp -s 192.168.1.0/24 --dport 22 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
nft add rule ip filter INPUT ip saddr 192.168.1.0/24 tcp dport 22 ct state new,established counter accept

Izinkan koneksi MySQL ke antarmuka jaringan eth0

Berikut sintaks untuk iptables dan nftables:

[email protected]:~$ iptables-translate -A INPUT -i eth0 -p tcp --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
nft add rule ip filter INPUT iifname eth0 tcp dport 3306 ct state new,established counter accept

Izinkan lalu lintas HTTP dan HTTPS masuk

Untuk mengizinkan lalu lintas tipe f tertentu, berikut sintaks untuk kedua perintah:

[email protected]:~$ iptables-translate -A INPUT -p tcp -m multiport --dports 80,443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
nft add rule ip filter INPUT ip protocol tcp tcp dport { 80,443} ct state new,established counter accept

Seperti yang Anda lihat dari contoh ini, sintaksnya masih sangat mirip dengan iptables, tetapi perintahnya sedikit lebih intuitif.

Masuk dengan nftables

Opsi "penghitung" yang ada dalam contoh perintah nft di atas memberi tahu nftables untuk menghitung berapa kali aturan disentuh, seperti yang biasa dilakukan iptables secara default.

Dalam nftables, mereka opsional dan harus ditentukan.

nft add rule ip filter INPUT ip saddr 192.168.2.1 counter accept

Nftables memiliki opsi bawaan untuk mengekspor konfigurasi Anda. Saat ini mendukung XML dan JSON.

nft export xml

Kesimpulan

Dalam artikel ini, saya menjelaskan mengapa nftables adalah pilihan baru yang direkomendasikan untuk firewall Linux. Saya juga telah membuat daftar banyak perbedaan antara iptables lama dan nftables yang lebih baru, termasuk fungsionalitas dan sintaksnya.

Panduan ini telah menunjukkan kepada Anda mengapa mempertimbangkan untuk meningkatkan ke nftables, dan cara memulai dengan sintaks baru yang perlu Anda pahami agar berhasil meningkatkan aturan iptables lama Anda.

Jika Anda memiliki pertanyaan atau saran, beri tahu saya di komentar.


Linux
  1. Apa perbedaan antara adduser dan useradd?

  2. Apa perbedaan antara status iptables dan ctstate?

  3. Apa perbedaan antara ls dan l?

  1. Linux vs. Unix:Apa bedanya?

  2. Apa perbedaan antara InnoDB dan MyISAM?

  3. VPS Terkelola vs VPS Tidak Terkelola:Apa Bedanya?

  1. Apa perbedaan antara strtok_r dan strtok_s di C?

  2. Apa perbedaan antara fsck dan e2fsck?

  3. Apa perbedaan antara `su -` dan` su --login`?