Pengenalan Perintah Firewalld dan Firewall-CMD di Linux

Pengenalan Perintah Firewalld dan Firewall-CMD di Linux

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 menggunakan sudo 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