Knowledgebase Arahan mudah untuk bekerja dengan perkhidmatan Profitserver
Utama Knowledgebase Mengkonfigurasi Firewall pada Linux

Mengkonfigurasi Firewall pada Linux


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
Menambah firewalld dalam autoload Linux

Pada ketika ini, kami mengesyorkan untuk melumpuhkan ufw, kerana penggunaan serentak alat ini dengan firewalld atau iptables tidak disyorkan. Semak status:

systemctl status ufw
Menyemak ufw linux

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:

  1. Awam: Zon ini adalah untuk rangkaian yang anda anggap tidak selamat;
  2. Swasta: Terpakai pada rangkaian rumah atau sambungan rangkaian lain yang dipercayai;
  3. Dalaman: Digunakan untuk rangkaian dalaman, seperti rangkaian dalam organisasi atau rangkaian korporat;
  4. 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
peraturan Linux firewall

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:

  1. menapis: Ini ialah jadual yang paling kerap digunakan, mengandungi peraturan penapisan paket. Ia digunakan untuk membuat keputusan sama ada untuk membenarkan atau menafikan paket.
  2. nat: Jadual ini digunakan untuk mengubah suai alamat rangkaian dan port dalam paket. Ia sering digunakan untuk menyediakan penyamaran (NAT).
  3. mangle: Dalam jadual ini, anda boleh mengubah suai pengepala paket. Ia digunakan untuk operasi paket khusus, seperti penandaan.
  4. 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:

  1. INPUT (masuk). Peraturan dalam rantaian ini menentukan perkara yang perlu dilakukan dengan paket masuk.
  2. OUTPUT (keluar). Rantaian ini digunakan untuk semua paket yang dihantar oleh komputer anda ke peranti atau komputer lain pada rangkaian.
  3. 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:

  1. TIDAK AKTIF: Benarkan paket melepasi tembok api.
  2. GUGUR: Tolak paket dan buang tanpa sebarang tindak balas.
  3. REJEK: Tolak paket dan hantar mesej ralat ICMP kepada penghantar.
  4. LOG: Log paket dalam log sistem dan lakukan tindakan lain (cth, ACCEPT atau DROP).
  5. 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
Mengkonfigurasi Firewall pada Linux

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:

  1. 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:

  1. 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:

  1. 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
senarai arahan persediaan linux iptables

Untuk memastikan tetapan adalah betul, masukkan semula arahan untuk melihat senarai peraturan:

iptables -L
Menyemak peraturan linux iptables

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.

❮ Artikel sebelumnya Pengguna Linux: Pengurusan dan Kebenaran
Artikel seterusnya ❯ Diagnostik Beban Pelayan

Tanya kami tentang VPS

Kami sentiasa bersedia untuk menjawab soalan anda pada bila-bila masa siang atau malam.