Rumah >Operasi dan penyelenggaraan >operasi dan penyelenggaraan linux >Bagaimana saya menyediakan firewall di linux menggunakan firewalld atau iptables?
Menubuhkan firewall di Linux menggunakan sama ada firewalld
atau iptables
melibatkan pendekatan yang berbeza kerana perbezaan seni bina mereka. firewalld
adalah daemon firewall yang dinamik yang menyediakan antara muka mesra pengguna untuk menguruskan peraturan firewall, sementara iptables
adalah utiliti baris arahan yang secara langsung memanipulasi kerangka Netfilter kernel.
Menggunakan Firewalld:
firewalld
dipasang. Mengenai kebanyakan pengagihan, ini dilakukan menggunakan pengurus pakej (contohnya, apt install firewalld
pada Debian/Ubuntu, dnf install firewalld
di Fedora/Centos/RHEL).systemctl start firewalld
dan membolehkannya memulakan boot dengan systemctl enable firewalld
.firewalld
menggunakan "zon" untuk menentukan konteks rangkaian yang berbeza (contohnya, "awam", "dalaman", "DMZ"). Setiap zon mempunyai set peraturan lalai. Anda boleh menyenaraikan zon dengan firewall-cmd --get-active-zones
. Untuk menambah perkhidmatan, seperti SSH (port 22), ke zon lalai (biasanya "awam"), gunakan firewall-cmd --permanent --add-service=ssh
. Untuk membuat perubahan kekal, gunakan bendera --permanent
. Muat semula firewall dengan firewall-cmd --reload
untuk memohon perubahan.firewall-cmd --permanent --add-port=80/tcp
(untuk http) atau julat menggunakan firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'
Menggunakan iptables:
iptables
biasanya dimasukkan secara lalai dalam kebanyakan pengagihan Linux.iptables
menggunakan rantai (contohnya, INPUT
, OUTPUT
, FORWARD
) untuk menguruskan peraturan. Setiap peraturan menentukan alamat IP sumber/destinasi, port, protokol, dan tindakan (menerima, jatuh, menolak). Sebagai contoh, untuk membolehkan sambungan SSH: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
.iptables
tidak berterusan merentasi reboot. Anda perlu menyimpannya menggunakan skrip atau utiliti seperti iptables-save
dan memuatkannya pada masa boot menggunakan skrip permulaan. Kaedah yang tepat berbeza -beza bergantung kepada pengedaran anda.iptables
menawarkan kawalan yang sangat halus, membolehkan set peraturan kompleks dengan pelbagai kriteria yang sepadan dan rantai adat. Walau bagaimanapun, ini memerlukan pemahaman yang mendalam mengenai sintaks rangkaian dan iptables
. Perbezaan utama terletak pada pendekatan mereka terhadap pengurusan firewall. firewalld
menyediakan antara muka yang lebih tinggi, mesra pengguna yang dibina di atas iptables
. Ia memudahkan tugas firewall yang biasa, menjadikannya lebih mudah untuk menguruskan zon, perkhidmatan, dan pelabuhan. Sebaliknya, iptables
menyediakan kawalan langsung dan rendah ke atas kerangka Netfilter, yang menawarkan fleksibiliti yang lebih besar tetapi memerlukan lebih banyak kepakaran teknikal.
Berikut adalah jadual yang meringkaskan perbezaan utama:
Ciri | Firewalld | IPTABLES |
---|---|---|
Antara muka | Alat baris arahan dengan pilihan mesra pengguna | Barisan arahan sahaja, sintaks kompleks |
Konfigurasi | Zon, perkhidmatan, pelabuhan, peraturan yang kaya | Rantai, peraturan dengan kriteria sepadan tertentu |
Kegigihan | Mekanisme kegigihan terbina dalam | Memerlukan penjimatan dan pemuatan manual di but |
Kerumitan | Lebih senang belajar dan menggunakan | Lengkung pembelajaran yang lebih curam, lebih kompleks |
Fleksibiliti | Kurang fleksibel daripada iptables | Sangat fleksibel, membolehkan peraturan yang rumit |
Kemas kini dinamik | Menyokong kemas kini dinamik | Kemas kini manual diperlukan |
Menggunakan Firewalld:
Untuk membenarkan port tertentu (misalnya, HTTP pada port 80):
<code class="bash">firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload</code>
Untuk menafikan port tertentu (misalnya, FTP pada port 21):
Ini kurang mudah dengan firewalld
. Anda mungkin perlu membuat zon tersuai atau menggunakan peraturan yang kaya untuk mencapai ini dengan tepat. Umumnya, firewalld
direka untuk membenarkan secara lalai dan menafikan secara eksplisit.
Untuk membenarkan perkhidmatan tertentu (misalnya, SSH):
<code class="bash">firewall-cmd --permanent --add-service=ssh firewall-cmd --reload</code>
Menggunakan iptables:
Untuk membenarkan port tertentu (misalnya, HTTP pada port 80):
<code class="bash">iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT # If you want to allow outgoing traffic on port 80 as well. service iptables save # Save the rules (method varies by distribution)</code>
Untuk menafikan port tertentu (misalnya, FTP pada port 21):
<code class="bash">iptables -A INPUT -p tcp --dport 21 -j DROP service iptables save # Save the rules (method varies by distribution)</code>
Tidak kira sama ada anda menggunakan firewalld
atau iptables
, ikuti amalan terbaik ini:
INPUT
, kerana ini mengawal sambungan masuk.firewalld
dan iptables
menyokong ini) untuk mengesan sambungan dan membenarkan trafik kembali.Ingatlah untuk sentiasa menguji peraturan firewall anda dalam persekitaran terkawal sebelum menggunakannya ke sistem pengeluaran. Peraturan firewall yang tidak dapat dikonfigurasikan boleh menyebabkan sistem anda tidak dapat diakses.
Atas ialah kandungan terperinci Bagaimana saya menyediakan firewall di linux menggunakan firewalld atau iptables?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!