Android

Bagaimana mengkonfigurasi dan menguruskan firewall pada centos 8

#28 - Firewall on Linux CentOS 8

#28 - Firewall on Linux CentOS 8

Isi kandungan:

Anonim

Firewall adalah kaedah untuk memantau dan menapis trafik rangkaian masuk dan keluar. Ia berfungsi dengan mendefinisikan satu set peraturan keselamatan yang menentukan sama ada untuk membenarkan atau menyekat lalu lintas tertentu. Firewall yang dikonfigurasi dengan betul adalah salah satu aspek yang paling penting dalam keselamatan sistem keseluruhan.

CentOS 8 kapal dengan daemon firewall yang dinamakan firewalld. Ini adalah penyelesaian lengkap dengan antara muka D-Bus yang membolehkan anda menguruskan firewall sistem secara dinamik.

Dalam tutorial ini, kami akan membincangkan cara mengkonfigurasi dan mengurus firewall pada CentOS 8. Kami juga akan menerangkan konsep asas FirewallD.

Prasyarat

Untuk mengkonfigurasi perkhidmatan firewall, anda mesti dilog masuk sebagai root atau pengguna dengan keistimewaan sudo.

Konsep Dasar Firewalld

firewalld menggunakan konsep zon dan perkhidmatan. Berdasarkan zon dan perkhidmatan yang anda konfigurasikan, anda boleh mengawal lalu lintas apa yang dibenarkan atau disekat ke dan dari sistem.

Firewalld boleh dikonfigurasikan dan diuruskan menggunakan utiliti baris perintah firewall-cmd .

Di CentOS 8, iptables digantikan oleh nftables sebagai backend firewall lalai untuk daemon firewalld.

Zon Firewalld

Zon adalah set peraturan yang telah ditetapkan yang menyatakan tahap kepercayaan rangkaian yang komputer anda disambungkan. Anda boleh menetapkan antara muka dan sumber rangkaian ke zon.

Di bawah adalah zon yang disediakan oleh FirewallD yang dipesan mengikut tahap amanah zon daripada tidak dipercayai kepada yang dipercayai:

  • drop: Semua sambungan masuk dijatuhkan tanpa sebarang pemberitahuan. Hanya sambungan keluar yang dibenarkan. blok: Semua sambungan masuk ditolak dengan mesej icmp-host-prohibited untuk IPv4 dan icmp6-adm-prohibited untuk IPv6n. Hanya sambungan keluar yang dibenarkan. awam: Untuk digunakan di kawasan awam yang tidak dipercayai. Anda tidak mempercayai komputer lain di rangkaian, tetapi anda boleh membenarkan sambungan masuk yang dipilih. luaran: Untuk digunakan pada rangkaian luaran dengan penyamaran NAT diaktifkan apabila sistem anda bertindak sebagai pintu masuk atau penghala. Hanya sambungan masuk yang dipilih dibenarkan. dalaman: Untuk digunakan pada rangkaian dalaman apabila sistem anda bertindak sebagai pintu masuk atau penghala. Sistem lain pada rangkaian biasanya dipercayai. Hanya sambungan masuk yang dipilih dibenarkan. dmz: Digunakan untuk komputer yang terletak di zon demilariari anda yang mempunyai akses terhad ke seluruh rangkaian anda. Hanya sambungan masuk yang dipilih dibenarkan. kerja: Digunakan untuk mesin kerja. Komputer lain di rangkaian biasanya dipercayai. Hanya sambungan masuk yang dipilih dibenarkan. rumah: Digunakan untuk mesin rumah. Komputer lain di rangkaian biasanya dipercayai. Hanya sambungan masuk yang dipilih dibenarkan. dipercayai: Semua sambungan rangkaian diterima. Percayakan semua komputer dalam rangkaian.

Perkhidmatan firewall

Perkhidmatan firewalld adalah peraturan yang telah dipratentukan yang digunakan dalam zon dan menentukan tetapan yang diperlukan untuk membolehkan lalu lintas masuk untuk perkhidmatan tertentu. Perkhidmatan ini membolehkan anda dengan mudah melaksanakan beberapa tugas dalam satu langkah.

Sebagai contoh, perkhidmatan itu boleh mengandungi definisi mengenai pelabuhan pembukaan, penghantaran trafik, dan banyak lagi.

Tetapan Runtime dan Tetap Firewalld

Firewalld menggunakan dua set konfigurasi yang berasingan, runtime, dan konfigurasi kekal.

Konfigurasi runtime adalah konfigurasi berjalan dan tidak berterusan reboot. Apabila daemon firewalld bermula, ia memuat konfigurasi kekal, yang menjadi konfigurasi runtime.

Secara lalai, ketika membuat perubahan pada konfigurasi Firewalld menggunakan utiliti firewall-cmd , perubahan tersebut diterapkan pada konfigurasi runtime. Untuk membuat perubahan tetap menambahkan pilihan --permanent kepada arahan.

Untuk menggunakan perubahan dalam kedua-dua set konfigurasi, anda boleh menggunakan salah satu daripada dua kaedah berikut:

  1. Tukar konfigurasi runtime dan buatkan kekal:

    sudo firewall-cmd sudo firewall-cmd --runtime-to-permanent

    Tukar konfigurasi kekal dan muat semula daemon firewalld:

    sudo firewall-cmd --permanent sudo firewall-cmd --reload

Mengaktifkan FirewallD

Pada CentOS 8, firewalld dipasang dan didayakan secara lalai. Jika atas sebab tertentu ia tidak dipasang pada sistem anda, anda boleh memasang dan memulakan daemon dengan menaip:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Anda boleh menyemak status perkhidmatan firewall dengan:

sudo firewall-cmd --state

Sekiranya firewall diaktifkan, perintah itu hendaklah mencetak running . Jika tidak, anda akan melihat not running .

Zon Firewalld

Zon lalai adalah yang digunakan untuk semua yang tidak diberikan secara eksplisit ke zon lain.

Anda boleh melihat zon lalai dengan menaip:

sudo firewall-cmd --get-default-zone

public

Untuk mendapatkan senarai semua zon sedia ada, ketik:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Untuk melihat zon aktif dan antara muka rangkaian yang diberikan kepada mereka:

sudo firewall-cmd --get-active-zones

Keluaran di bawah menunjukkan bahawa antara muka eth0 dan eth1 ditugaskan ke zon public :

public interfaces: eth0 eth1

Anda boleh mencetak tetapan konfigurasi zon dengan:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Dari output di atas, kita dapat melihat bahawa zon awam aktif dan menggunakan sasaran lalai, yang adalah REJECT . Output juga menunjukkan bahawa zon digunakan oleh antara eth1 dan eth1 dan membolehkan pelanggan DHCP dan trafik SSH.

sudo firewall-cmd --list-all-zones

Arahan mencetak senarai besar dengan tetapan semua zon yang tersedia.

Menukar sasaran zon

Sasaran menentukan kelakuan lalai zon untuk trafik masuk yang tidak ditentukan. Ia boleh ditetapkan kepada salah satu daripada pilihan berikut: default , REJECT DROP , REJECT , dan DROP .

Untuk menetapkan sasaran zon, tentukan zon dengan pilihan zon - dan target dengan pilihan --set-target .

Contohnya, untuk menukar sasaran zon public ke DROP anda jalankan:

sudo firewall-cmd --zone=public --set-target=DROP

Menugaskan antara muka ke zon yang berbeza

Anda boleh membuat set peraturan khusus untuk zon yang berlainan dan menyerahkan antaramuka yang berbeza kepada mereka. Ini amat berguna apabila anda mempunyai banyak antara muka pada mesin anda.

Untuk menetapkan antara muka ke zon yang lain, tentukan zon dengan pilihan zon - dan antara muka dengan pilihan --change-interface pilihan --change-interface .

Sebagai contoh, arahan berikut menyerahkan antara muka eth1 ke zon work :

sudo firewall-cmd --zone=work --change-interface=eth1

Sahkan perubahan dengan menaip:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Menukar Zon Lalai

Untuk menukar zon lalai, gunakan pilihan --set-default-zone diikuti dengan nama zon yang anda ingin buat lalai.

Sebagai contoh, untuk menukar zon lalai ke home anda akan menjalankan arahan berikut:

sudo firewall-cmd --set-default-zone=home

Sahkan perubahan dengan:

sudo firewall-cmd --get-default-zone

home

Mewujudkan Zon baru

Firewalld juga membolehkan anda membuat zon anda sendiri. Ini berguna apabila anda mahu membuat peraturan per-permohonan.

Dalam contoh berikut, kami akan mencipta zon baru bernama memcached , buka port 11211 dan izinkan akses hanya dari alamat IP 192.168.100.30 :

  1. Buat zon:

    sudo firewall-cmd --new-zone=memcached --permanent

    Tambah peraturan ke zon:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent

    Muat semula daemon firewalld untuk mengaktifkan perubahan:

    sudo firewall-cmd --reload

Perkhidmatan Firewalld

Dengan firewall, anda boleh membenarkan trafik untuk pelabuhan dan / atau sumber tertentu berdasarkan peraturan yang dipratentukan dipanggil perkhidmatan.

Untuk mendapatkan senarai semua jenis perkhidmatan sedia ada lalai:

sudo firewall-cmd --get-services

Anda boleh mendapatkan lebih banyak maklumat mengenai setiap perkhidmatan dengan membuka fail.xml yang berkaitan dalam direktori /usr/lib/firewalld/services . Sebagai contoh, perkhidmatan HTTP ditakrifkan seperti ini:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Untuk membenarkan trafik HTTP masuk (port 80) untuk antara muka dalam zon awam, hanya untuk sesi semasa (konfigurasi runtime) jenis:

sudo firewall-cmd --zone=public --add-service=http Sekiranya anda mengubah suai zon lalai, anda boleh keluar dari pilihan --zone .

Untuk mengesahkan bahawa perkhidmatan tersebut telah berjaya menggunakan pilihan - --list-services :

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

Untuk memastikan port 80 terbuka selepas reboot dijalankan arahan yang sama sekali lagi dengan pilihan --permanent , atau jalankan:

sudo firewall-cmd --runtime-to-permanent

Gunakan perkhidmatan --list-services bersama-sama dengan pilihan kekal untuk mengesahkan perubahan anda:

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

Sintaks untuk mengeluarkan perkhidmatan adalah sama seperti ketika menambahkan satu. Hanya gunakan - --remove-service bukan bendera --add-service -

sudo firewall-cmd --zone=public --remove-service=http --permanent

Arahan di atas membuang perkhidmatan http dari konfigurasi tetap zon awam.

Mewujudkan Perkhidmatan FirewallD baru

Seperti yang telah kami sebutkan, perkhidmatan lalai disimpan dalam direktori /usr/lib/firewalld/services . Cara paling mudah untuk mencipta perkhidmatan baru adalah menyalin fail perkhidmatan sedia ada ke direktori /etc/firewalld/services , iaitu lokasi untuk perkhidmatan yang dibuat oleh pengguna dan mengubah suai tetapan fail.

Sebagai contoh, untuk membuat definisi perkhidmatan untuk Plex Media Server, anda boleh menggunakan fail perkhidmatan SSH:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Buka fail plexmediaserver.xml baru dibuat dan ubah nama pendek dan keterangan untuk perkhidmatan di dalamnya dan tag. Tag yang paling penting yang perlu anda ubah adalah tag port , yang menentukan nombor port dan protokol yang anda hendak buka.

Dalam contoh berikut, kami membuka pelabuhan 1900 UDP dan 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

Simpan fail dan muat semula perkhidmatan FirewallD:

sudo firewall-cmd --reload

Anda kini boleh menggunakan perkhidmatan plexmediaserver di zon anda sama seperti mana-mana perkhidmatan lain.

IP Pelabuhan dan Sumber Pembukaan

Firewalld juga membolehkan anda dengan pantas mendayakan semua lalu lintas dari alamat IP yang dipercayai atau di pelabuhan tertentu tanpa membuat definisi perkhidmatan.

Membuka sumber IP

Untuk membenarkan semua lalu lintas masuk dari alamat IP tertentu (atau julat), tentukan zon dengan pilihan zon - dan sumber IP dengan pilihan --add-source .

Sebagai contoh, untuk membenarkan semua lalu lintas masuk dari 192.168.1.10 di zon public , jalankan:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

Buat peraturan baru yang berterusan:

sudo firewall-cmd --runtime-to-permanent

Sahkan perubahan menggunakan arahan berikut:

sudo firewall-cmd --zone=public --list-sources

192.168.1.10

Sintaks untuk mengeluarkan IP sumber adalah sama seperti ketika menambah satu. Hanya gunakan --remove-source bukan pilihan --add-source :

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

Membuka port sumber

Untuk membenarkan semua lalu lintas masuk pada port tertentu, nyatakan zon dengan pilihan - zon dan pelabuhan dan protokol dengan pilihan --add-port .

Sebagai contoh, untuk membuka port 8080 di zon awam untuk sesi semasa yang anda luka berjalan:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Protokol ini boleh sama ada tcp , udp , sctp , atau dccp .

Sahkan perubahan:

sudo firewall-cmd --zone=public --list-ports

8080

Untuk memastikan port terbuka selepas reboot, tambahkan aturan ke tetapan tetap dengan menjalankan perintah yang sama dengan menggunakan bendera tetap - atau dengan melaksanakan:

sudo firewall-cmd --runtime-to-permanent

Sintaks untuk mengeluarkan port adalah sama seperti ketika menambahkan port. Hanya gunakan - --remove-port bukannya --add-port opsyen --add-port .

sudo firewall-cmd --zone=public --remove-port=8080/tcp

Pelabuhan Pelabuhan

Untuk memajukan lalu lintas dari satu port ke pelabuhan yang lain, mula-mula membolehkan menyamar untuk zon yang dikehendaki menggunakan pilihan --add-masquerade . Sebagai contoh, untuk membolehkan menyamar untuk zon external , ketik:

sudo firewall-cmd --zone=external --add-masquerade

Teruskan trafik dari satu port ke alamat yang lain pada alamat IP

Dalam contoh berikut, kami akan mengalihkan lalu lintas dari port 80 ke port 8080 pada pelayan yang sama:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

Teruskan trafik ke alamat IP lain

Dalam contoh berikut, kami akan mengalihkan lalu lintas dari port 80 ke port 80 pada pelayan dengan IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

Majukan trafik ke pelayan lain di pelabuhan lain

Dalam contoh berikut, kami akan mengalihkan lalu lintas dari port 80 ke port 8080 pada pelayan dengan IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Untuk membuat peraturan ke hadapan berterusan, gunakan:

sudo firewall-cmd --runtime-to-permanent

Kesimpulannya

Anda telah belajar cara mengkonfigurasi dan mengurus perkhidmatan firewalld pada sistem CentOS 8 anda.

Pastikan untuk membenarkan semua sambungan masuk yang diperlukan untuk fungsi sistem anda yang betul, sementara mengehadkan semua sambungan yang tidak diperlukan.

firewalld firewall firewall keselamatan