Firewall pada Linux memainkan peranan penting dalam melindungi sistem komputer. Ia bertindak sebagai penghalang, mengawal dan menapis trafik rangkaian untuk melindungi sistem daripada akses tanpa kebenaran, serangan dan ancaman lain. Tanpa Firewall yang dikonfigurasikan dengan betul, pelayan boleh terdedah kepada pelbagai jenis serangan siber, yang membawa kepada akibat yang serius untuk keselamatan dan kerahsiaan data.
Dalam artikel ini, kita akan melihat dua alat utama untuk mengkonfigurasi Tembok Api Linux: firewalld dan iptables. Kami akan menjalankan analisis perbandingan ciri, fungsi dan kelebihannya. Selain itu, kami akan memberikan arahan terperinci untuk menyediakan dan menggunakan setiap alat ini, serta membincangkan amalan terbaik untuk melindungi sistem anda dengan Firewall pada platform Linux. Semua tindakan akan ditunjukkan pada a pelayan maya dengan akses root.
Mengkonfigurasi firewall pada Linux
Firewalld (Firewall Daemon) ialah program untuk menguruskan firewall dalam sistem pengendalian Linux. Ia menyediakan antara muka pengguna untuk mengkonfigurasi peraturan tembok api, membenarkan atau menyekat sambungan aplikasi rangkaian. Ia diprapasang secara lalai dalam kebanyakan pengedaran pelayan. Jika Firewalld tidak diprapasang, ia boleh dipasang secara bebas daripada repositori rasmi pengedaran.
Untuk sistem Red Hat (seperti RHEL, CentOS, Fedora) pemasangan dilakukan dengan arahan:
yum install firewalld
Untuk Debian/Ubuntu:
apt-get install firewalld
Selepas pemasangan, ia boleh dimulakan dan diaktifkan serta-merta dengan arahan:
systemctl start firewalld
Seterusnya, anda perlu menambah perkhidmatan untuk memulakan:
systemctl enable firewalld
Pada ketika ini, kami mengesyorkan untuk melumpuhkan ufw, kerana penggunaan serentak alat ini dengan firewalld atau iptables tidak disyorkan. Semak status:
systemctl status ufw
Untuk menghentikannya, masukkan arahan:
systemctl stop ufw
Untuk penyahaktifan sepenuhnya:
ufw disable
Selepas tindakan ini, anda boleh meneruskan untuk mengkonfigurasi firewalld.
Pertama, adalah perlu untuk menentukan zon amanah. Firewalld menggunakan konsep zon untuk menentukan tahap kepercayaan untuk antara muka rangkaian. Setiap antara muka diberikan satu zon, dan peraturan tembok api digunakan berdasarkan zon. Senarai semua zon yang tersedia dibuka dengan arahan:
firewall-cmd --get-zones
Biasanya, 4 zon utama digunakan:
- Awam: Zon ini adalah untuk rangkaian yang anda anggap tidak selamat;
- Swasta: Terpakai pada rangkaian rumah atau sambungan rangkaian lain yang dipercayai;
- Dalaman: Digunakan untuk rangkaian dalaman, seperti rangkaian dalam organisasi atau rangkaian korporat;
- DMZ: Zon ini adalah tempat pelayan biasanya diletakkan yang sepatutnya boleh diakses dari internet.
Walau bagaimanapun, ini hanya satu contoh. Anda boleh menambah zon anda sendiri menggunakan arahan:
firewall-cmd --permanent --new-zone=nameyourzone
Selepas menambah, muat semula diperlukan:
firewall-cmd --reload
Untuk memadam zon, kaedah yang sama digunakan
firewall-cmd --permanent --delete-zone=nameyourzone
Selepas menentukan zon, anda perlu membenarkan trafik untuk perkhidmatan dan pelabuhan yang diperlukan. Untuk membenarkan perkhidmatan tertentu, gunakan arahan:
firewall-cmd --zone=public --add-service=name
Lokasi nama ialah nama perkhidmatan. Contohnya, untuk membenarkan trafik untuk Apache:
firewall-cmd --zone=public --add-service=http
Untuk menentukan port yang dibenarkan, gunakan arahan:
firewall-cmd --zone=public --add-port=number/protocol
Sebagai contoh, port 22 standard untuk SSH akan kelihatan seperti ini:
firewall-cmd --zone=public --add-port=22/tcp
Pada peringkat ini, peraturan utama sudah dibuat. Seterusnya, tentukan cara trafik akan diproses bergantung pada sumber, destinasi, pelabuhan dan kriteria lain. Untuk menambah peraturan (menggunakan awam zon sebagai contoh):
firewall-cmd --zone=public rule
Contohnya, untuk membenarkan trafik masuk dari mana-mana sumber ke port 80 (HTTP):
firewall-cmd --zone=public --add-port=80/tcp --permanent
Untuk mengalih keluar peraturan:
firewall-cmd --permanent --remove-rule=rule_specification
Lokasi memerintah ialah jenis peraturan (cth, pelabuhan, perkhidmatan, peraturan kaya, dsb.), dan peraturan_spesifikasi adalah spesifikasi peraturan itu sendiri.
Selepas membuat perubahan pada konfigurasi Firewalld, anda perlu menyimpan dan menggunakannya. Untuk menyimpan perubahan, gunakan arahan:
firewall-cmd --runtime-to-permanent
Untuk menggunakan perubahan:
firewall-cmd --reload
Setelah melengkapkan persediaan, anda boleh mengesahkan parameter yang dipilih dengan membuka senarai semua peraturan:
firewall-cmd --list-all
Jika sebarang masalah timbul, semak log Firewalld dengan arahan:
journalctl -u firewalld
Nota: Kami hanya merangkumi algoritma umum untuk menyediakan sambungan. Alat ini mempunyai fungsi yang luas. Untuk maklumat penuh tentang semua pilihan yang tersedia, anda boleh menggunakan dokumentasi rasmi atau buka bantuan:
firewall-cmd --help
Mengkonfigurasi iptables pada Linux
Tidak seperti Firewalld, iptables ialah alat yang lebih lama tetapi masih digunakan secara meluas dalam Linux untuk mengurus tembok api. Ia menyediakan pendekatan yang lebih langsung dan fleksibel kepada peraturan penapisan paket di peringkat kernel Linux. Walau bagaimanapun, iptables memerlukan pengetahuan dan pengalaman yang lebih maju berbanding dengan Firewalld, menjadikannya kurang boleh diakses untuk pemula. Semak versi alat yang diprapasang dengan arahan:
iptables -V
Jika alat tidak dipasang, ia perlu dipasang. Perintah untuk pemasangan pada Ubuntu, Debian:
apt install iptables
Untuk sistem Red Hat (cth, CentOS, Fedora):
yum install iptables
Perintah untuk pengaktifan selepas pemasangan:
systemctl start iptables
Untuk menambah pada permulaan, laksanakan:
systemctl enable iptables
Sebelum memulakan konfigurasi iptables, adalah penting untuk memahami cara ia berfungsi. Ini dibantu oleh sintaks program. Ia kelihatan seperti berikut:
iptables -t table action chain additional_parameters
Mari kita mendalami setiap item.
Iptables mempunyai empat jadual utama: penapis, nat, mangle, dan mentah. Setiap satu direka untuk memproses jenis paket tertentu dan mempunyai rangkaian peraturannya sendiri:
- menapis: Ini ialah jadual yang paling kerap digunakan, mengandungi peraturan penapisan paket. Ia digunakan untuk membuat keputusan sama ada untuk membenarkan atau menafikan paket.
- nat: Jadual ini digunakan untuk mengubah suai alamat rangkaian dan port dalam paket. Ia sering digunakan untuk menyediakan penyamaran (NAT).
- mangle: Dalam jadual ini, anda boleh mengubah suai pengepala paket. Ia digunakan untuk operasi paket khusus, seperti penandaan.
- mentah: Jadual ini digunakan untuk mengkonfigurasi peraturan yang digunakan sebelum ia melalui sistem penjejakan sambungan. Ia biasanya digunakan untuk menyediakan peraturan yang tidak boleh diubah suai oleh sistem penjejakan, seperti menjatuhkan paket daripada alamat tertentu.
Setiap jadual mengandungi satu set rantai. Rantaian ialah urutan peraturan yang diperiksa secara berurutan. Terdapat tiga rantaian yang telah ditetapkan:
- INPUT (masuk). Peraturan dalam rantaian ini menentukan perkara yang perlu dilakukan dengan paket masuk.
- OUTPUT (keluar). Rantaian ini digunakan untuk semua paket yang dihantar oleh komputer anda ke peranti atau komputer lain pada rangkaian.
- HADAPAN (forwarding). Peraturan dalam rantaian ini menentukan perkara yang perlu dilakukan dengan paket yang dimajukan.
Akhirnya, setiap rantaian mempunyai beberapa tindakan (sasaran). Dalam amalan, 5 tindakan utama digunakan:
- TIDAK AKTIF: Benarkan paket melepasi tembok api.
- GUGUR: Tolak paket dan buang tanpa sebarang tindak balas.
- REJEK: Tolak paket dan hantar mesej ralat ICMP kepada penghantar.
- LOG: Log paket dalam log sistem dan lakukan tindakan lain (cth, ACCEPT atau DROP).
- PULANG BALIK: Berhenti menyemak peraturan dalam rantaian semasa dan kembali ke rantaian panggilan (jika berkenaan).
Untuk memulakan persediaan, buka senarai peraturan sedia ada dengan arahan:
iptables -L
Sebagai panduan untuk mengkonfigurasi Iptables, mari kita lihat contoh praktikal bagi arahan yang paling biasa digunakan. Untuk kemudahan, kami akan membahagikan contoh kepada 3 kumpulan, bergantung pada rantaian tertentu.
rantaian INPUT:
- Benarkan trafik masuk melalui protokol TCP pada port 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
2. Benarkan trafik masuk melalui protokol UDP pada port 22:
iptables -A INPUT -p udp --dport 22 -j ACCEPT
3. Sekat trafik masuk daripada alamat IP tertentu:
iptables -A INPUT -s 192.168.1.100 -j DROP
rantaian OUTPUT:
- Benarkan trafik keluar melalui protokol TCP pada port 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
2. Benarkan trafik keluar melalui protokol UDP pada port 80:
iptables -A OUTPUT -p udp --dport 80 -j ACCEPT
3. Sekat trafik keluar ke port tertentu (contohnya, 21):
iptables -A OUTPUT -p tcp --dport 21 -j DROP
rantaian KE DEPAN:
- Sekat trafik yang dimajukan daripada julat alamat IP tertentu:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP
2. Sekat penghantaran paket daripada antara muka rangkaian tertentu:
iptables -A FORWARD -i eth1 -j DROP
3. Hadkan bilangan sambungan serentak untuk port tertentu (dalam contoh ini, 10 sambungan seminit pada port 80):
iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT
Seperti yang anda lihat, dalam setiap kes berasingan, hujah tambahan (perintah) digunakan. Untuk mendapatkan senarai penuh kemungkinan hujah dan sokongan keseluruhan untuk kefungsian alat, masukkan:
iptables -h
Untuk memastikan tetapan adalah betul, masukkan semula arahan untuk melihat senarai peraturan:
iptables -L
Untuk memadam peraturan tertentu, gunakan arahan:
iptables -D chain rule_number
Sebagai contoh, jika anda ingin memadam peraturan nombor 1 daripada rantai INPUT, arahan akan kelihatan seperti ini:
iptables -D INPUT 1
Untuk memadam semua peraturan dengan satu arahan:
iptables -F
Nota penting: peraturan iptables tidak disimpan secara automatik selepas but semula sistem atau perkhidmatan. Untuk menyimpan peraturan, peraturan tersebut perlu ditambahkan pada fail konfigurasi dan dipulihkan selepas but semula. The iptables-save and iptables-restore utiliti boleh membantu dengan ini. Untuk menyimpan peraturan, masukkan arahan:
iptables-save > /etc/iptables/rules.v4
Ini menyimpan peraturan iptables semasa dalam fail rules.v4. Untuk memulihkan selepas but semula, masukkan:
iptables-restore < /etc/iptables/rules.v4
Perintah ini memulihkan peraturan daripada fail rules.v4.
Kesimpulan
Mengkonfigurasi Firewall pada Linux menggunakan firewalld atau iptables merupakan aspek penting dalam memastikan keselamatan pelayan. Kedua-dua alat ini menawarkan cara yang boleh dipercayai untuk mengurus trafik rangkaian dan melindungi sistem daripada akses tanpa kebenaran dan serangan siber. Pilihan antara firewalld dan iptables bergantung pada keperluan dan keutamaan khusus pengguna, dengan mengambil kira fungsi dan kekuatan yang berbeza.