Pengenalan Perintah Firewalld dan Firewall-CMD di Linux
- 2615
- 278
- Dave Kreiger V
Objektif
Ketahui konsep asas di sebalik firewalld dan bagaimana untuk berinteraksi dengannya menggunakan utiliti firewall-cmd
Keperluan
- Keizinan akar
Kesukaran
Mudah
Konvensyen
- # - Memerlukan arahan Linux yang diberikan dengan keistimewaan akar sama ada
secara langsung sebagai pengguna akar atau dengan menggunakansudo
perintah - $ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak
Pengenalan
Sejak versi 7 Rhel dan Centos dan versi 18 Fedora, Firewalld adalah sistem firewall lalai. Salah satu ciri yang lebih tersendiri adalah modularitasnya: ia berfungsi pada konsep sambungan zon
. Dalam tutorial ini kita akan mempelajari lebih lanjut mengenainya, dan bagaimana untuk berinteraksi dengannya menggunakannya Firewall-CMD
utiliti.
Firewall berdasarkan zon
Firewalld adalah firewall berasaskan zon: Setiap zon boleh dikonfigurasikan untuk menerima atau menafikan beberapa perkhidmatan atau pelabuhan, dan oleh itu dengan tahap keselamatan yang berbeza. Zon boleh dikaitkan dengan satu atau lebih antara muka rangkaian. Biasanya firewalld dilengkapi dengan satu set zon yang telah dikonfigurasikan: untuk menyenaraikan zon ini, dan lebih umum untuk berinteraksi dengan firewall, kami akan menggunakan Firewall-CMD
utiliti. Saya menjalankan sistem Fedora 27, mari kita periksa apa zon yang ada:
$ firewall-cmd --get-zon fedoraserver fedoraworkstation blok DMZ menjatuhkan rumah luar negeri dalaman kerja yang dipercayai
Seperti yang anda lihat, arahan di atas mengembalikan senarai semua antara muka yang ada dalam sistem saya. Nama mereka cukup menunjukkan tujuan mereka, tetapi kita perlu tahu apa perkhidmatan dan pelabuhan yang tersedia melalui mereka: peraturan lalai umum ialah setiap perkhidmatan atau pelabuhan ditolak. Setiap antara muka kemudian dikonfigurasikan dengan beberapa pengecualian, bergantung pada perkhidmatan yang mesti dibenarkan. Sekiranya kita ingin mempunyai senarai semua perkhidmatan yang berkaitan dengan zon yang boleh kita jalankan Firewall-CMD
dengan --mendapatkan perkhidmatan
pilihan. Jika zon tidak secara eksplisit dihantar ke arahan, zon lalai akan ditanya:
# Firewall-CMD-All-All Public (Active) Sasaran: Lalai ICMP-Block-Inversion: Tiada Antara muka: ENS5F5 Sumber: Perkhidmatan: SSH MDNS DHCPV6-CLIENT PORTS: Protokol: Masquerade: Tiada Port Forward: Sumber-Ports: ICMP-Blocks: Kaedah Kaya:
Perintah itu mengembalikan ringkasan keadaan zon (dalam hal ini lalai, "awam"). Antara perkara lain, anda dapat melihat dengan jelas antara muka rangkaian yang dikaitkan dengan zon ini (ENS5F5 dalam kes ini) dan perkhidmatan apa yang dibenarkan (SSH, MDNS, DHCPV6-CLIENT) di dalamnya. Sekiranya kita ingin mendapatkan maklumat mengenai zon tertentu, bukan lalai, kita harus lulus nama zon sebagai hujah kepada --Kawasan
pilihan. Contohnya, untuk mendapatkan maklumat mengenai luaran
Zon, kami akan berlari:
# firewall-cmd --Zone = luaran-list-semua sasaran luaran: lalai ICMP-block-inversion: Tiada Antara muka: Sumber: Perkhidmatan: Port SSH: Protokol: Masquerade: YA Forward-Ports: Sumber-Ports: ICMP-Blocks : peraturan yang kaya:
Manipulasi zon
Seperti yang dikatakan sebelum ini, semasa menggunakan Firewall-CMD
alat, jika tiada zon ditentukan, lalai yang dirujuk. Kami mungkin mahu mengubah zon lalai. Katakanlah sebagai contoh, kami mahu menetapkan zon luaran sebagai lalai:
# firewall-cmd--set-default = luaran
Preatty mudah, bukan?. Sekarang mari kita lihat bagaimana kita dapat menambahkan atau mengalih keluar perkhidmatan atau pelabuhan ke zon tertentu. Pertama sekali perkhidmatan
adalah set port yang telah dikonfigurasikan dengan protokol tertentu. Contohnya: The SSH
Perkhidmatan akan merangkumi Port TCP 22
, Sementara Samba
Perkhidmatan akan memahami set pelabuhan 139 dan 445 TCP
dan 137 dan 138 udp
. Menggunakan perkhidmatan yang kita dapat mengelakkan untuk mengingati port tertentu setiap kali. Katakan bahawa kita mahu menambah Samba
Perkhidmatan ke zon luaran, yang akan kita lakukan ialah:
# firwall-cmd-zone = luaran --add-service = kejayaan samba
The Firewalld
Daemon bertindak balas dengan kejayaan
, itu bermaksud pelaksanaannya berjaya. Untuk mengesahkannya, mari kita periksa perkhidmatan zon:
$ sudo firewall-cmd-zone = luaran-list-services ssh samba
Seperti yang anda lihat, kami menggunakan --senarai perkhidmatan
pilihan untuk tujuan. Hasil perintah itu jelas bermaksud bahawa Samba
perkhidmatan telah ditambah ke zon. Walau bagaimanapun, pengubahsuaian yang dibuat dengan cara ini bersifat sementara dan tidak akan bertahan dalam reboot Firewalld
Daemon. Mari sahkan. Mula -mula kita memuatkan semula perkhidmatan:
# Firewall-CMD-Reload
Kemudian kami periksa semula perkhidmatan yang dibenarkan di luaran
Kawasan:
# firewall-cmd-zone = luaran-list-perkhidmatan ssh
Seperti yang anda lihat, satu -satunya perkhidmatan yang dibenarkan di luaran
zon adalah SSH
. Untuk membuat pengubahsuaian berterusan ke zon kita mesti menggunakan --kekal
pilihan:
# firewall-cmd --permanent-zone = luaran --Add-service = Samba
Pengubahsuaian tetap memerlukan tambah nilai firewall untuk menjadi berkesan.
Sekiranya kita mahu membuat operasi terbalik, dan keluarkan perkhidmatan dari zon, kita akan melaksanakan:
# firewall-cmd --permanent-zone = luaran-remove-service = Samba
Sintaks sangat intuitif dan tidak memerlukan penjelasan lanjut. Tetapi bagaimana jika kita mahu menambah port tertentu dan bukannya perkhidmatan? Sintaks akan sedikit berubah:
# firewall-cmd --permanent-zone = luaran --add-port = 139/tcp
Untuk mengesahkan bahawa pelabuhan telah ditambah ke zon:
# firewall-cmd-zone = luaran-list-port 139/tcp
Operasi telah berjaya. Dengan cara yang sama, untuk mengeluarkan pelabuhan yang akan kita lakukan:
# firewall-cmd --permanent-zone = luaran-remove-port = 139/tcp
Membuat zon tersuai
Sehingga sekarang, kita hanya melihat cara mengubah suai zon sedia ada. Ia juga mungkin untuk membuat beberapa yang baru, dan ia semudah. Katakan kita ingin mencipta zon tersuai yang dipanggil Linuxconfig
:
# firewall-cmd --permanent --new-zon = linuxconfig
Zon kosong baru telah dibuat: Secara lalai tidak ada perkhidmatan atau pelabuhan yang dibenarkan di dalamnya. Ia juga mungkin untuk membuat zon dengan memuatkan fail konfigurasi:
# Firewall-Cmd --Panent --New-Zone-From-File = File --Name = LinuxConfig
Di mana fail
adalah jalan ke fail yang mengandungi definisi zon. Perhatikan bahawa semasa membuat atau memadam zon --kekal
Pilihan adalah wajib: ralat akan dibangkitkan jika tidak disediakan.
Mengaitkan zon dengan antara muka
Membuat zon hanyalah langkah pertama: kita kini mesti mengaitkannya dengan antara muka rangkaian. Katakan kami ingin menggunakan zon baru kami yang dicipta, mengaitkannya dengan antara muka ENS5F5 Ethernet: Inilah arahan yang membolehkan kami menyelesaikan tugas:
# Firewall-Cmd --Panent --Zone = LinuxConfig --Add-interface = ENS5F5
Jika kita menanyakan zon untuk antara muka yang diberikan kepadanya, kita harus melihat:
# firewall-cmd --Zone = linuxconfig-list-interfaces enS5F5
Mengeluarkan antara muka dari zon adalah semudah:
# firewall-cmd-remove-interface = ens5f5 --Zone = linuxconfig
Peraturan yang kaya
Dalam situasi tertentu, kita mungkin perlu membuat peraturan yang lebih kompleks, dan bukan hanya membenarkan beberapa pelabuhan atau perkhidmatan di zon. Contohnya kita mungkin mahu membuat peraturan untuk menyekat beberapa jenis lalu lintas dari mesin tertentu. Itulah peraturan yang kaya
adalah untuk. Peraturan pada dasarnya terdiri daripada dua bahagian: Pada mulanya kita menentukan syarat -syarat yang mesti dipenuhi untuk peraturan yang akan digunakan, dan pada kedua tindakan itu akan dilaksanakan: menerima
, jatuh
, atau menolak
.
Katakan kita mahu menyekat lalu lintas dari mesin dengan IP 192.168.0.37
Dalam rangkaian tempatan: Inilah cara kami menyusun peraturan kami:
# firewall-cmd --zone = linuxconfig --add-rich-rule = "peraturan \ family =" ipv4 "\ source alamat = 192.168.0.37 \ Nama Perkhidmatan = ssh \ menolak \
Untuk menambah peraturan yang kaya, kami menggunakan --ADD-Rich-Rule
pilihan, menggambarkan peraturan sebagai hujahnya. Peraturan bermula dengan peraturan
kata kunci. Dengan keluarga
Kami menyatakan bahawa peraturan itu hanya digunakan untuk IPv4
paket: jika kata kunci ini tidak disediakan peraturan itu digunakan untuk kedua -duanya IPv4
dan IPv6
. Kami kemudian memberikan alamat sumber bahawa paket mesti ada untuk peraturan yang akan dicetuskan alamat sumber
. Dengan perkhidmatan
Kami menetapkan jenis perkhidmatan untuk peraturan, dalam kes ini SSH
. Akhirnya, kami memberikan tindakan yang akan dilaksanakan jika paket sepadan dengan peraturan, dalam hal ini menolak
. Sekiranya kita sekarang cuba mewujudkan sambungan SSH dari mesin dengan 192.168.0.37
ip, kami terima:
SSH 192.168.0.35 SSH: Sambung ke Host 192.168.0.35 port 22: Sambungan ditolak
Yang di atas adalah yang sangat mudah, tetapi peraturan boleh menjadi sangat kompleks. Anda harus menyemak dokumentasi firewalld untuk melihat semua julat tetapan dan pilihan yang tersedia.
Mod panik
Mod panik adalah mod yang harus digunakan hanya dalam situasi di mana terdapat masalah yang sangat serius dengan persekitaran rangkaian. Apabila mod ini aktif, semua sambungan sedia ada dibuang, dan semua paket masuk dan keluar akan dijatuhkan. Ia boleh diaktifkan berjalan:
# firewall-cmd --panic-on
Untuk keluar dari mod panik, arahannya ialah:
# firewall-cmd --panic-off
Malah mungkin untuk menanyakan mod panik
status, berjalan:
# Firewall-CMD-Query-Panic
Pilihan tersebut hanya sah di runtime
dan tidak boleh digunakan dengan --kekal
.
Tutorial Linux Berkaitan:
- Perkara yang hendak dipasang di Ubuntu 20.04
- Pengenalan kepada Automasi, Alat dan Teknik Linux
- Cara menentukan zon firewalld tersuai
- Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
- Muat turun linux
- Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
- Menguasai Gelung Skrip Bash
- Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu
- Perintah Linux: Top 20 Perintah Paling Penting yang Anda Perlu ..
- Fail Konfigurasi Linux: 30 teratas yang paling penting
- « Cara Memasang dan Mengesahkan Dompet Electrum Bitcoin di Linux
- Cara mendapatkan maklumat bateri komputer riba dan mengecas keadaan di linux »