Pengantar Perintah Firewalld dan Firewall-CMD di Linux
- 2915
- 180
- Karl O'Connell DDS
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 menggunakansudo
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
- « Cara memasang dan memverifikasi dompet bitcoin electrum di linux
- Cara mendapatkan informasi baterai laptop dan status pengisian daya di Linux »