Pengantar Perintah Firewalld dan Firewall-CMD di Linux

Pengantar Perintah Firewalld dan Firewall-CMD di Linux

Objektif

Pelajari konsep dasar di balik firewalld dan bagaimana berinteraksi dengannya menggunakan utilitas firewall-cmd

Persyaratan

  • Izin root

Kesulitan

MUDAH

Konvensi

  • # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root
    langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
  • $ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Perkenalan

Karena versi 7 dari RHEL dan Centos dan versi 18 dari Fedora, Firewalld adalah sistem firewall default. Salah satu sifatnya yang lebih khas adalah modularitasnya: ia bekerja pada konsep koneksi zona. Dalam tutorial ini kita akan mempelajari lebih lanjut tentang itu, dan bagaimana berinteraksi dengannya menggunakannya Firewall-CMD kegunaan.

Firewall berdasarkan zona

Firewalld adalah firewall berbasis zona: setiap zona dapat dikonfigurasi untuk menerima atau menolak beberapa layanan atau port, dan karenanya dengan tingkat keamanan yang berbeda. Zona dapat dikaitkan dengan satu atau lebih antarmuka jaringan. Biasanya firewalld dilengkapi dengan satu set zona yang telah dikonfigurasi sebelumnya: untuk mendaftar zona ini, dan lebih umum untuk berinteraksi dengan firewall, kami akan menggunakan Firewall-CMD kegunaan. Saya menjalankan sistem Fedora 27, mari kita periksa apa zona yang tersedia:

$ firewall-cmd --get-zones fedoraserver fedoraworkstation block DMZ drop eksternal rumah internal pekerjaan tepercaya publik 


Seperti yang Anda lihat, perintah di atas mengembalikan daftar semua antarmuka yang tersedia di sistem saya. Nama mereka cukup menunjukkan tujuan mereka, tetapi kita perlu tahu layanan dan port apa yang tersedia melalui mereka: aturan default umum adalah bahwa setiap layanan atau port ditolak. Setiap antarmuka kemudian dikonfigurasi dengan beberapa pengecualian, tergantung pada layanan yang harus diizinkan. Jika kami ingin memiliki daftar semua layanan yang terkait dengan zona yang dapat kami jalankan Firewall-CMD dengan --Get-Services pilihan. Jika zona tidak secara eksplisit diteruskan ke perintah, zona default akan ditanya:

# firewall-cmd-list-all public (aktif) Target: Default ICMP-block-Inversion: Tidak ada antarmuka: ENS5F5 Sumber: Layanan: SSH MDNS DHCPV6 Port Klien: Protokol: Masquerade: No Forward-Ports: Source-Ports: ICMP-Blocks: Aturan Kaya: 

Komando mengembalikan ringkasan keadaan zona (dalam hal ini yang default, "publik"). Di antara hal-hal lain, Anda dapat dengan jelas melihat antarmuka jaringan apa yang dikaitkan dengan zona ini (ENS5F5 dalam hal ini) dan layanan apa yang diizinkan (SSH, MDNS, DHCPV6-CLIENT) di dalamnya. Jika kita ingin mengambil informasi tentang zona spesifik, non-default, kita harus meneruskan nama zona sebagai argumen ke --daerah pilihan. Misalnya, untuk mengambil informasi tentang luar zona, kami akan menjalankan:

# firewall-cmd --zone = eksternal --tlist-semua target eksternal: ICMP-block-inversion default: Tidak ada antarmuka: Sumber: Layanan: SSH Ports: Protokol: Masquerade: Ya Maju-Ports: Sumber-Ports: ICMP-Blocks : Aturan Kaya: 


Manipulasi zona

Seperti yang dikatakan sebelumnya, saat menggunakan Firewall-CMD alat, jika tidak ada zona yang ditentukan, yang default direferensikan. Kami mungkin ingin mengubah apa zona default. Katakanlah misalnya kami ingin mengatur zona eksternal sebagai default:

# firewall-cmd --tet-default = eksternal

Preatty Easy, bukan?. Sekarang mari kita lihat bagaimana kita dapat menambah atau menghapus layanan atau port ke zona tertentu. Pertama jasa adalah set port yang telah dikonfigurasi sebelumnya yang terkait dengan protokol spesifik. Misalnya: ssh Layanan akan mencakup Port TCP 22, selagi Samba Layanan akan memahami set port 139 dan 445 TCP Dan 137 dan 138 UDP. Menggunakan Layanan Kami dapat menghindari keharusan mengingat port tertentu setiap kali. Katakanlah kami ingin menambahkan Samba Layanan ke zona eksternal, yang akan kami lakukan hanyalah:

# firwall-cmd --zone = eksternal --add-service = keberhasilan samba 

Itu Firewalld Daemon merespons dengan kesuksesan, itu berarti bahwa eksekusi berhasil. Untuk memverifikasi, mari kita periksa layanan zona:

$ sudo firewall-cmd --zone = eksternal --t-services ssh samba 

Seperti yang Anda lihat, kami menggunakan --Layanan daftar opsi untuk tujuan tersebut. Hasil perintah tersebut jelas berarti bahwa Samba Layanan telah ditambahkan ke zona tersebut. Namun, modifikasi yang dibuat dengan cara ini bersifat sementara dan tidak akan selamat dari reboot Firewalld Daemon. Mari kita verifikasi. Pertama kami memuat ulang layanan:

 # firewall-cmd --eload

Kemudian kami memeriksa lagi layanan yang diizinkan di luar daerah:

# firewall-cmd --zone = eksternal-Layanan-Layanan SSH 

Seperti yang Anda lihat, satu -satunya layanan yang diizinkan di luar zona adalah ssh. Untuk membuat modifikasi persisten ke zona, kita harus menggunakan --permanen pilihan:

 # firewall-cmd --permanent --zone = eksternal --add-service = samba

Modifikasi permanen akan membutuhkan pemisahan ulang firewall untuk menjadi efektif.

Jika kami ingin melakukan operasi terbalik, dan menghapus layanan dari suatu zona, kami akan mengeksekusi:

 # firewall-cmd --permanent --zone = eksternal--remove-service = samba

Sintaksnya sangat intuitif dan tidak memerlukan penjelasan lebih lanjut. Tetapi bagaimana jika kita ingin menambahkan port tertentu alih -alih layanan? Sintaks akan sedikit berubah:

 # firewall-cmd --permanent --zone = eksternal --add-port = 139/tcp

Untuk memverifikasi bahwa port telah ditambahkan ke zona:

# firewall-cmd --zone = eksternal --ist-ports 139/tcp 

Operasi telah berhasil. Dengan cara yang sama, untuk menghapus port yang akan kami lakukan:

# firewall-cmd --permanent --zone = eksternal--remove-port = 139/tcp


Membuat zona khusus

Sampai sekarang, kami hanya melihat cara memodifikasi zona yang ada. Juga dimungkinkan untuk membuat beberapa yang baru, dan itu sama mudahnya. Misalkan kita ingin membuat zona khusus yang dipanggil LinuxConfig:

# firewall-cmd --permanent --new-zone = linuxconfig

Zona kosong baru telah dibuat: Secara default tidak ada layanan atau port yang diizinkan di dalamnya. Dimungkinkan juga untuk membuat zona dengan memuat file konfigurasi:

# firewall-cmd --permanent --new-zone-from-file = file --name = linuxconfig

Di mana mengajukan adalah jalur ke file yang berisi definisi zona. Perhatikan bahwa saat membuat atau menghapus zona --permanen Opsi adalah wajib: kesalahan akan dinaikkan jika tidak disediakan.

Mengaitkan zona dengan antarmuka

Membuat zona hanyalah langkah pertama: kita sekarang harus mengaitkannya dengan antarmuka jaringan. Katakanlah kami ingin menggunakan zona baru kami yang dibuat, mengaitkannya dengan antarmuka ENS5F5 Ethernet: Berikut adalah perintah yang memungkinkan kami menyelesaikan tugas:

# firewall-cmd --permanent --zone = linuxconfig --add-interface = ens5f5

Jika kita menanyakan zona untuk antarmuka yang ditetapkan, kita akan melihat:

# firewall-cmd --zone = linuxconfig-list-interfaces ens5f5 

Menghapus antarmuka dari zona sama mudahnya dengan:

# firewall-cmd--remove-interface = ens5f5 --zone = linuxconfig


Aturan yang kaya

Dalam situasi tertentu kita mungkin perlu membuat aturan yang lebih kompleks, dan tidak hanya mengizinkan beberapa port atau layanan di zona. Misalnya kami mungkin ingin membuat aturan untuk memblokir beberapa jenis lalu lintas dari mesin tertentu. Itulah yang aturan yang kaya adalah untuk. Aturan pada dasarnya terdiri dari dua bagian: pada yang pertama kami menentukan kondisi yang harus dipenuhi agar aturan diterapkan, dan pada kedua tindakan yang akan dieksekusi: menerima, menjatuhkan, atau menolak.

Katakanlah kami ingin memblokir lalu lintas dari mesin dengan IP 192.168.0.37 Di jaringan lokal: inilah cara kami menyusun aturan kami:

# firewall-cmd --zone = linuxconfig --add-rich-rule = "aturan \ family =" ipv4 "\ source address = 192.168.0.37 \ Nama Layanan = SSH \ Tolak \ 

Untuk menambahkan aturan yang kaya, kami menggunakan --Tambah aturan kaya opsi, menggambarkan aturan sebagai argumennya. Aturan dimulai dengan aturan kata kunci. Dengan keluarga Kami menentukan bahwa aturan yang diterapkan hanya untuk IPv4 Paket: Jika kata kunci ini tidak disediakan aturan diterapkan keduanya untuk IPv4 Dan IPv6. Kami kemudian memberikan alamat sumber yang harus dipicu oleh paket alamat sumber. Dengan melayani Kami menentukan jenis layanan untuk aturan, dalam hal ini ssh. Akhirnya, kami memberikan tindakan yang akan dieksekusi jika sebuah paket cocok dengan aturannya, dalam hal ini menolak. Jika kita sekarang mencoba membuat koneksi SSH dari mesin dengan 192.168.0.37 ip, kami terima:

SSH 192.168.0.35 SSH: Sambungkan ke Host 192.168.0.35 Port 22: Koneksi ditolak 

Yang di atas adalah yang sangat sederhana, tetapi aturan bisa menjadi sangat rumit. Anda harus memeriksa dokumentasi firewalld untuk melihat semua rentang pengaturan dan opsi yang tersedia.

Mode panik

Mode panik adalah mode yang harus digunakan hanya dalam situasi di mana ada masalah yang benar -benar serius dengan lingkungan jaringan. Saat mode ini aktif, semua koneksi yang ada dibuang, dan semua paket yang masuk dan keluar dijatuhkan. Itu dapat diaktifkan berjalan:

# firewall-cmd-panic-on

Untuk keluar dari mode panik, perintahnya adalah:

# firewall-cmd-panic-off

Bahkan mungkin untuk menanyakan mode panik Status, Menjalankan:

# firewall-cmd --query-panic

Opsi -opsi itu hanya valid runtime dan tidak dapat digunakan dengan --permanen.

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Cara mendefinisikan zona firewalld khusus
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Unduh Linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Menguasai loop skrip bash
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Perintah Linux: 20 perintah terpenting teratas yang Anda butuhkan untuk…
  • File Konfigurasi Linux: 30 Teratas Paling Penting