Android

Bagaimana untuk menubuhkan firewall dengan firewalld pada centos 7

Настройка firewall в CentOS 7 (firewalld)

Настройка firewall в CentOS 7 (firewalld)

Isi kandungan:

Anonim

Firewall yang dikonfigurasi dengan betul adalah salah satu aspek yang paling penting dalam keselamatan sistem keseluruhan.

FirewallD adalah penyelesaian firewall lengkap yang menguruskan peraturan iptables sistem dan menyediakan antara muka D-Bus untuk mengendalikannya. Bermula dengan CentOS 7, FirewallD menggantikan iptables sebagai alat pengurusan firewall lalai.

Dalam tutorial ini, kami menunjukkan kepada anda cara menyiapkan firewall dengan FirewallD pada sistem CentOS 7 anda dan menerangkan kepada anda konsep FirewallD dasar.

Prasyarat

Sebelum anda memulakan tutorial ini, pastikan anda log masuk ke pelayan anda dengan akaun pengguna dengan keistimewaan sudo atau dengan pengguna root. Amalan terbaik adalah menjalankan arahan pentadbiran sebagai pengguna sudo dan bukannya root. Jika anda tidak mempunyai pengguna sudo pada sistem CentOS anda, anda boleh membuat satu dengan mengikuti arahan ini.

Konsep Dasar Firewalld

FirewallD menggunakan konsep zon dan perkhidmatan, bukannya rangkaian dan peraturan iptables. Berdasarkan zon dan perkhidmatan yang anda konfigurasikan, anda boleh mengawal lalu lintas apa yang dibenarkan atau tidak dibenarkan ke dan dari sistem.

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

Zon Firewalld

Zon ditetapkan dengan menetapkan peraturan yang menentukan lalu lintas apa yang dibenarkan berdasarkan tahap kepercayaan pada rangkaian komputer anda dihubungkan. 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.

Tetapan Runtime dan Tetap Firewalld

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

Konfigurasi runtime adalah konfigurasi berjalan yang sebenarnya, dan ia tidak berterusan pada reboot. Apabila perkhidmatan 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 kekal anda perlu menggunakan pilihan --permanent .

Memasang dan Mengaktifkan FirewallD

  1. Firewalld dipasang secara lalai pada CentOS 7, tetapi jika ia tidak dipasang pada sistem anda, anda boleh memasang pakej dengan menaip:

    sudo yum install firewalld

    Perkhidmatan firewalld dilumpuhkan secara lalai. Anda boleh menyemak status firewall dengan:

    sudo firewall-cmd --state

    Untuk memulakan perkhidmatan FirewallD dan dayakan pada jenis boot:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Bekerja dengan Zon Firewalld

Selepas mendayakan perkhidmatan FirewallD buat kali pertama, zon public ditetapkan sebagai zon lalai. 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

Secara lalai, semua antara muka rangkaian diberikan zon lalai. Untuk memeriksa zon apa yang digunakan oleh jenis antara muka rangkaian anda:

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

Output di atas memberitahu kita bahawa kedua-dua antara muka eth1 dan eth1 ditugaskan ke zon awam.

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:

Daripada output di atas, kita dapat melihat bahawa zon awam aktif dan ditetapkan sebagai lalai, yang digunakan oleh kedua-dua antara eth1 dan eth1 . Juga, sambungan yang berkaitan dengan pelanggan DHCP dan SSH dibenarkan.

sudo firewall-cmd --list-all-zones

Arahan mencetak senarai besar dengan tetapan semua zon yang tersedia.

Menukar Zon Antara Muka

Anda boleh menukar Zon Antara Muka dengan mudah menggunakan pilihan --zone dengan kombinasi --change-interface pilihan - pilihan --change-interface . Perintah berikut akan memberikan antara muka eth1 ke zon kerja:

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 rumah anda harus menjalankan arahan berikut:

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

Sahkan perubahan dengan:

sudo firewall-cmd --get-default-zone

home

Membuka Pelabuhan atau Perkhidmatan

Dengan FirewallD anda boleh membenarkan trafik untuk pelabuhan 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

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

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 perkhidmatan. Hanya gunakan --remove-service bukannya --add-service opsyen --add-service :

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

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

Bagaimana jika anda menjalankan aplikasi seperti Plex Media Server yang mana tidak terdapat perkhidmatan yang sesuai?

Dalam keadaan seperti ini, anda mempunyai dua pilihan. Anda sama ada boleh membuka port yang sesuai atau menentukan perkhidmatan FirewallD baru.

Sebagai contoh, Pelayan Plex mendengar pada port 32400 dan menggunakan TCP, untuk membuka port di zon awam untuk sesi semasa menggunakan --add-port=

sudo firewall-cmd --zone=public --add-port=32400/tcp Protokol boleh sama ada tcp atau udp .

Untuk mengesahkan bahawa pelabuhan telah ditambah dengan berjaya menggunakan pilihan - --list-ports :

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

32400/tcp

Untuk memastikan pelabuhan 32400 terbuka selepas reboot, tambahkan aturan ke tetapan tetap dengan menjalankan perintah yang sama dengan menggunakan pilihan - kekal.

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=32400/tcp

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 mewujudkan definisi perkhidmatan untuk Plex Media Server kita 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 perkhidmatan lain..

Penghantaran Port dengan Firewalld

Untuk memajukan lalu lintas dari satu port ke port atau alamat yang lain, mula-mula membolehkan menyamar untuk zon yang dikehendaki menggunakan suis --add-masquerade . Sebagai contoh untuk membolehkan menyamar untuk jenis zon external :

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

  • Maju trafik dari satu port ke yang lain pada pelayan yang sama

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

  • Majukan trafik ke pelayan 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

Mewujudkan Aturan dengan FirewallD

Dalam contoh berikut, kami akan menunjukkan cara mengkonfigurasi firewall anda jika anda menjalankan pelayan web. Kami menganggap bahawa pelayan anda hanya mempunyai satu antara muka eth0 , dan anda mahu membenarkan trafik masuk hanya pada port SSH, HTTP, dan

  1. Tukar zon lalai ke dmz

    Kami akan menggunakan zon dmz (demilari) kerana secara lalai ia hanya membenarkan trafik SSH. Untuk menukar zon lalai ke dmz dan berikannya kepada antara muka eth0 , jalankan perintah berikut:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    Buka HTTP dan HTTPS port:

    Untuk membuka port HTTP dan HTTPS menambah peraturan perkhidmatan tetap ke zon dmz:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    Buat perubahan dengan segera dengan memuat semula firewall:

    sudo firewall-cmd --reload

    Sahkan perubahan

    Untuk menyemak jenis tetapan konfigurasi zon dmz:

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

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    Output di atas memberitahu kita bahawa dmz adalah zon lalai, digunakan untuk antara muka eth0 dan port ssh (22) http (80) dan https (443) terbuka.

Kesimpulannya

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

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

firewalld firewalld keselamatan iptables centos