firewalld vs iptables - kapan harus menggunakan yang [ditutup]

29

TL; DR Pada server CentOS yang baru saya menginstal firewalld atau menonaktifkannya dan kembali menggunakannya /etc/sysconfig/iptables?


firewalld dan iptables memiliki tujuan yang sama. Keduanya melakukan pemfilteran paket - tetapi jika saya memahaminya dengan benar, firewalld tidak menghapus seluruh aturan yang ditetapkan setiap kali perubahan dilakukan.

Saya tahu banyak tentang iptables tetapi sangat sedikit tentang firewalld.

Pada Fedora dan RHEL / CentOS - konfigurasi iptables tradisional dilakukan di /etc/sysconfig/iptables. Dengan firewalld, konfigurasinya tinggal /etc/firewalld/dan merupakan sekumpulan file XML. Fedora tampaknya bergerak menuju firewalld sebagai pengganti konfigurasi warisan ini. Saya mengerti bahwa firewalld menggunakan iptables di bawah tenda, tetapi juga memiliki antarmuka baris perintah dan format file konfigurasi sendiri seperti di atas - yang saya maksudkan dalam hal menggunakan satu vs yang lain.

Apakah ada konfigurasi / skenario tertentu yang masing-masing paling cocok untuk ini? Dalam kasus NetworkMangaer vs jaringan, tampaknya meskipun NetworkManager mungkin dimaksudkan sebagai pengganti skrip jaringan, karena kurangnya dukungan jembatan jaringan dan beberapa hal lainnya, banyak orang tidak menggunakannya pada pengaturan server di semua. Jadi sepertinya ada konsep umum "gunakan NetworkManager jika Anda menggunakan Linux desktop/gui, dan jaringan jika Anda menjalankan server". Itulah yang saya ambil dari membaca berbagai posting - tetapi setidaknya memberikan panduan tentang apa yang bisa digunakan untuk hal-hal itu - setidaknya ketika mereka berdiri dalam keadaan mereka saat ini.

Tapi saya sudah melakukan hal yang sama dengan firewalld dan hanya mematikannya dan menggunakan iptables sebagai gantinya. (Saya hampir selalu menginstal linux di server, bukan untuk penggunaan desktop). Apakah firewalld pengganti yang efektif untuk iptables dan haruskah saya menggunakannya pada semua sistem baru?

bgp
sumber
10
Firewalld menggunakan iptables di bawahnya.
user9517 mendukung GoFundMonica
Tentu, dan itu masuk akal. Tapi jelas ada perbedaan besar antara bagaimana Anda menyimpan konfigurasi Anda dan alat mana yang Anda gunakan - iptables vs firewall-cmd, / etc / sysconfig / iptables vs /etc/firewalld/.../*.xml Saya akan merevisi pertanyaan sedikit untuk membuatnya lebih jelas.
bgp
Tidak perlu "menyapu seluruh peraturan setiap kali ada peluang" dengan iptables. Ini hanya alat ujung depan, jika membilas tabel itu karena Anda menyuruhnya melakukannya.
gparent
Untuk memperjelas, saya mengacu pada "service iptables restart" menyebabkan aturan dihapus dan ditambahkan kembali. (Meskipun itu masih tidak mempengaruhi keadaan koneksi, yang bagus.) Anda tentu saja dapat menjalankan perintah iptables dari baris perintah untuk memodifikasi aturan individu - tetapi saya biasanya mencoba untuk menyimpan semuanya di / etc / sysconfig / iptables dan gunakan perintah "service" untuk tetap mengikuti konvensi yang disarankan oleh alat yang disediakan oleh distro.
bgp

Jawaban:

12

Seperti firewallddidasarkan pada konfigurasi XML, beberapa orang mungkin berpikir bahwa lebih mudah untuk mengkonfigurasi firewall secara terprogram. Ini bisa dicapai dengan iptablesbaik juga, tetapi dengan cara yang berbeda, yang bukan XML. Jika Anda sudah terbiasa dengan cara iptableskerjanya, mengapa Anda akan memigrasi semua konfigurasi Anda firewalld?

Jika Anda mempertimbangkan iptablesset aturan firewall terbesar Anda , seberapa sering Anda pikir Anda akan mendapat manfaat dari aspek dinamis firewalld? Dalam kebanyakan kasus kinerja iptablestidak pernah menjadi masalah. Dalam kebanyakan kasus di mana kinerja iptablessuatu masalah dapat diperbaiki dengan menggunakan ipsetset IP sumber / tujuan berbasis.

Ini adalah perdebatan yang berbeda apakah Anda harus menggunakan NetworkManager atau tidak.

vtorhonen
sumber
3
Performa iptablestidak relevan dalam kasus ini karena kelambatan akan terjadi terlepas dari apakah aturan dimasukkan melalui firewalldatau langsung dengan iptablesalat.
gparent