Cara Menginstal, Mengkonfigurasi, dan Gunakan FirewallD di Centos dan Ubuntu

Cara Menginstal, Mengkonfigurasi, dan Gunakan FirewallD di Centos dan Ubuntu

Firewalld (firewall daemon) adalah alternatif dari ptable Layanan, untuk mengelola firewall sistem secara dinamis dengan dukungan untuk zona jaringan (atau firewall) dan menyediakan antarmuka D-bus untuk mengelola konfigurasi. Mudah digunakan dan dikonfigurasi, dan sekarang menjadi alat manajemen firewall default di Rhel/centos, Fedora dan beberapa distribusi Linux lainnya.

Di artikel ini, kita akan membahas cara mengkonfigurasi firewall sistem Firewalld dan menerapkan pemfilteran paket dasar di Centos/rhel 7 Dan Ubuntu.

Dasar -dasar tentang firewalld

Firewalld terdiri dari tiga lapisan, yaitu,:

  • lapisan inti: Bertanggung jawab untuk menangani konfigurasi dan ujung belakang (tercantum di bawah).
  • Antarmuka d-bus: cara utama mengubah dan membuat konfigurasi firewall.
  • backend: Untuk berinteraksi dengan NetFilter (modul kernel asli yang digunakan untuk firewalling). Mereka termasuk ptables, ip6tables, eBtables, ipset, nft, linnflable; Pengelola jaringan; dan modul.

Ini mengelola aturan firewall dengan menerapkan zona jaringan/firewall yang menentukan tingkat kepercayaan koneksi atau antarmuka jaringan. Fitur firewall yang didukung lainnya meliputi layanan, konfigurasi langsung (digunakan untuk secara langsung melewati sintaks eptable mentah), iPSet serta tipe ICMP.

Dua jenis lingkungan konfigurasi didukung oleh firewalld:

  • konfigurasi runtime yang hanya efektif sampai mesin telah di -reboot atau layanan firewalld telah dimulai kembali
  • konfigurasi permanen yang disimpan dan berfungsi terus -menerus.

Alat baris perintah firewall-cmd digunakan untuk mengelola runtime dan konfigurasi permanen. Atau, Anda dapat menggunakan alat konfigurasi Firewall-Config Graphical User Interface (GUI) untuk berinteraksi dengan daemon.

Selain itu, Firewalld Menawarkan antarmuka yang terdefinisi dengan baik untuk layanan atau aplikasi lokal lainnya untuk meminta perubahan pada aturan firewall secara langsung, jika mereka berjalan dengan hak istimewa root.

File konfigurasi global untuk firewalld ada di /etc/firewalld/firewalld.conf dan fitur firewall dikonfigurasi dalam format XML.

Memahami fitur firewalld penting

Fitur pusat firewalld adalah zona jaringan/firewall. Setiap fitur lainnya dibatasi ke zona. Zona Firewall menjelaskan tingkat kepercayaan untuk ikatan koneksi, antarmuka atau alamat sumber.

Konfigurasi default hadir dengan sejumlah zona yang telah ditentukan diurutkan sesuai dengan tingkat kepercayaan default zona dari yang tidak dipercaya ke tepercaya: drop, block, publik, eksternal, DMZ, pekerjaan, rumah, internal dan tepercaya. Mereka didefinisikan dalam file yang disimpan di bawah /usr/lib/firewalld/zona direktori.

Anda dapat mengonfigurasi atau menambahkan zona khusus Anda menggunakan klien CLI atau cukup membuat atau menyalin file zona di /etc/firewalld/zona dari file yang ada dan mengeditnya.

Konsep penting lainnya di bawah firewalld adalah layanan. Layanan didefinisikan menggunakan port dan protokol; Definisi ini mewakili layanan jaringan yang diberikan seperti server web atau layanan akses jarak jauh. Layanan didefinisikan dalam file yang disimpan di bawah /usr/lib/firewalld/layanan/ atau /etc/firewalld/layanan/ direktori.

Jika Anda tahu konsep iptables/ip6tables/eBtables dasar, Anda juga dapat menggunakan antarmuka langsung (atau konfigurasi) untuk mendapatkan akses langsung ke firewall. Tetapi, bagi mereka yang tidak memiliki pengetahuan ptik, Anda dapat menggunakan bahasa yang kaya untuk membuat aturan firewall yang lebih kompleks untuk IPv4 dan IPv6.

Cara menginstal paket firewalld di linux

Pada Centos 7, itu Firewalld Paket Dilengkapi Pra-Instal dan Anda Dapat Memverifikasi Menggunakan Perintah berikut.

$ rpm -qa firewalld 

Pada Ubuntu 16.04 Dan 18.04, Anda dapat menginstalnya menggunakan manajer paket default seperti yang ditunjukkan.

$ sudo apt instal firewalld 

Cara mengelola layanan firewalld di linux

Firewalld adalah layanan SystemD reguler yang dapat dikelola melalui perintah SystemCTL.

 $ sudo systemctl mulai firewalld #start Layanan untuk waktu rata-rata $ sudo systemctl aktifkan firewalld #enable layanan untuk memulai secara otomatis pada waktu boot $ sudo systemctl status firewalld #view status layanan 

Setelah memulai Firewalld layanan, Anda juga dapat memeriksa apakah daemon berjalan atau tidak, menggunakan Firewall-CMD Alat (jika tidak aktif, perintah ini akan menghasilkan "tidak berjalan").

$ sudo firewall-cmd-state 
Periksa status firewalld

Jika Anda menyimpan perubahan apa pun secara permanen, Anda dapat memuat ulang firewalld. Ini akan memuat ulang aturan firewall dan menyimpan informasi negara. Konfigurasi permanen saat ini akan menjadi konfigurasi runtime baru.

$ sudo firewall-cmd-reload 

Cara bekerja dengan zona firewall di firewalld

Untuk mendapatkan daftar semua zona dan layanan firewall yang tersedia, jalankan perintah ini.

$ sudo firewall-cmd --get-zones $ sudo firewall-cmd --get-services 

Zona default adalah zona yang digunakan untuk setiap fitur firewall yang tidak secara eksplisit terikat ke zona lain. Anda bisa mendapatkan set zona default untuk koneksi jaringan dan antarmuka dengan berjalan.

$ sudo firewall-cmd --get-default-zone 
Daftar zona firewalld default

Untuk mengatur zona default, misalnya ke eksternal, gunakan perintah berikut. Perhatikan bahwa menambahkan opsi --permanen Mengatur konfigurasi secara permanen (atau memungkinkan permintaan informasi dari lingkungan konfigurasi permanen).

$ sudo firewall-cmd --set-default-zone = eksternal atau $ sudo firewall-cmd --set-default-zone = eksternal --permanent $ sudo firewall-cmd ---eload 

Selanjutnya, mari kita lihat cara menambahkan antarmuka ke zona. Contoh ini menunjukkan cara menambahkan adaptor jaringan nirkabel Anda (WLP1S0) untuk zona rumah, yang digunakan di daerah rumah.

$ sudo firewall-cmd --zone = home --add-interface = wlp1s0 
Tambahkan antarmuka ke zona firewalld

Antarmuka hanya dapat ditambahkan ke zona tunggal. Untuk memindahkannya ke zona lain, gunakan --Perubahan-antarmuka beralih seperti yang ditunjukkan, atau lepaskan dari zona sebelumnya menggunakan -Hapus antarmuka Beralih, lalu tambahkan ke zona baru.

Dengan asumsi Anda ingin terhubung ke jaringan Wi-Fi publik, Anda harus memindahkan antarmuka nirkabel Anda kembali ke zona publik, seperti ini:

$ sudo firewall-cmd --zone = public --add-interface = wlp1s0 $ sudo firewall-cmd --zone = public --change-interface = wlp1s0 
Antarmuka Perubahan Zona di Firewalld

Anda dapat menggunakan banyak zona secara bersamaan. Untuk mendapatkan daftar semua zona aktif dengan fitur yang diaktifkan seperti antarmuka, layanan, port, protokol, jalankan:

$ sudo firewall-cmd --get-aktif-zona 
Daftar zona aktif di firewalld

Sehubungan dengan poin sebelumnya, jika Anda ingin menemukan informasi lebih lanjut tentang zona tertentu, saya.E semuanya ditambahkan atau diaktifkan di dalamnya, gunakan salah satu perintah ini:

$ sudo firewall-cmd --zone = home-list-all atau $ sudo firewall-cmd --info-zone public 
Temukan informasi zona firewall

Pilihan lain yang berguna adalah --Get-target, Yang menunjukkan target zona permanen. Target adalah salah satu: default, terima, drop, tolak. Anda dapat memeriksa target berbagai zona:

$ sudo firewall-cmd --permanent --zone = public --get-target $ sudo firewall-cmd --permanent --zone = block --get-target $ sudo firewall-cmd --permanent --zone = dmz- -get-target $ sudo firewall-cmd --permanent --zone = eksternal --get-target $ sudo firewall-cmd --permanent --zone = drop --get-target 

Cara membuka dan memblokir port di firewalld

Untuk membuka kombinasi port (atau port/protokol) di firewall, cukup tambahkan di zona dengan --add-port pilihan. Jika Anda tidak secara eksplisit menentukan zona, itu akan diaktifkan di zona default.

Contoh berikut menunjukkan cara menambahkan port 80 Dan 443 untuk memungkinkan lalu lintas web di dalamnya melalui Http Dan Https Protokol, masing -masing:

$ sudo firewall-cmd --zone = public --permanent --add-port = 80/tcp --add-port = 443/tcp 

Selanjutnya, muat ulang firewalld dan periksa fitur yang diaktifkan di zona publik sekali lagi, Anda harus dapat melihat port yang baru saja ditambahkan.

$ sudo firewall-cmd--reload $ sudo firewall-cmd --info-zone public 

Memblokir atau menutup port di firewall sama mudahnya, cukup lepaskan dari zona dengan --Hapus-port pilihan. Misalnya, untuk menutup port 80 Dan 443 di zona publik.

$ sudo firewall-cmd --zone = public --permanent ---remove-port = 80/tcp--remove-port = 443/tcp 

Alih -alih menggunakan kombinasi port atau port/protokol, Anda dapat menggunakan nama layanan tempat port ditetapkan seperti yang dijelaskan di bagian berikutnya.

Cara membuka dan memblokir layanan di firewalld

Untuk membuka layanan di firewall, aktifkan menggunakannya --Layanan Tambah pilihan. Jika zona dihilangkan, zona default akan digunakan.

Perintah berikut akan secara permanen mengaktifkan layanan HTTP di zona publik.

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

Itu --Hapus layanan Opsi dapat digunakan untuk menonaktifkan layanan.

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

Cara mengaktifkan dan menonaktifkan IP yang menyamar menggunakan firewalld

IP Masquerading (juga dikenal sebagai Ipmasq atau Masq) adalah Nat (Terjemahan Alamat Jaringan) Mekanisme dalam jaringan Linux yang memungkinkan host Anda di jaringan, dengan alamat IP pribadi untuk berkomunikasi dengan internet menggunakan server Linux Anda (IPMASQ Gateway) yang ditugaskan alamat IP publik.

Ini adalah pemetaan satu-ke-banyak. Lalu lintas dari host yang tidak terlihat Anda akan muncul ke komputer lain di internet seolah -olah itu berasal dari server Linux Anda.

Anda dapat mengaktifkan IP yang menyamar di zona yang diinginkan, misalnya zona publik. Tetapi sebelum melakukan itu, pertama -tama periksa apakah penyamaran aktif atau tidak (a "TIDAK" berarti dinonaktifkan dan a "Ya" berarti sebaliknya).

$ sudo firewall-cmd --zone = public --query-masquerade $ sudo firewall-cmd --zone = public --add-masquerade 

Kasing penggunaan yang khas untuk menyamar adalah melakukan penerusan port. Dengan asumsi Anda ingin SSH dari mesin jarak jauh ke host di jaringan internal Anda dengan IP 10.20.1.3, di mana daemon sshd mendengarkan di port 5000.

Anda dapat meneruskan semua koneksi ke port 22 di server Linux Anda ke port yang dimaksud pada host target Anda dengan menerbitkan:

$ sudo firewall-cmd --zone = public --add-forward-port = port = 22 = proto = tcp: toport = 5000: toaddr = 10.20.1.3 

Untuk menonaktifkan penyamaran di zona, gunakan --Hapus-Masquerade mengalihkan.

$ sudo firewall-cmd --zone = publik--remove-masquerade 

Cara mengaktifkan dan menonaktifkan pesan IMCP di firewalld

Icmp (Protokol Pesan Kontrol Internet) Pesan adalah permintaan informasi atau balasan ke permintaan informasi atau dalam kondisi kesalahan.

Anda dapat mengaktifkan atau menonaktifkan pesan ICMP di firewall, tetapi sebelum daftar pertama semua jenis ICMP yang didukung.

$ sudo firewall-cmd --get-icmptypes 
Daftar Jenis ICMP yang Didukung dalam FirewallD

Untuk menambah atau menghapus jenis blok yang Anda inginkan.

$ sudo firewall-cmd --zone = home --add-icmp-block = echo-reply atau $ sudo firewall-cmd --zone = home ---bove-icmp-block = gemo-reply 

Anda dapat melihat semua tipe ICMP yang ditambahkan di zona menggunakan --Daftar-ICMP-blok mengalihkan.

$ sudo firewall-cmd --zone = home --list-icmp-blocks 

Cara menggunakan antarmuka langsung untuk meneruskan perintah ptables mentah

Firewall-CMD juga menyediakan opsi langsung (--langsung) agar Anda mendapatkan lebih banyak akses langsung ke firewall. Ini berguna bagi mereka yang memiliki pengetahuan dasar tentang ptables.

Penting: Anda hanya harus menggunakan opsi langsung sebagai pilihan terakhir ketika tidak mungkin menggunakan reguler Firewall-CMD Opsi dijelaskan di atas.

Berikut adalah contoh cara lulus aturan ptable mentah, menggunakan --tambahkan aturan mengalihkan. Anda dapat dengan mudah menghapus aturan ini dengan mengganti --Tambah aturan dengan --Hapus aturan:

$ sudo firewall -cmd --direct --add -rule ipv4 filter in_public_allow 0 -m tcp -p tcp - -dort 80 -j accept 

Untuk informasi lebih lanjut tentang ptable, Lihat panduan ini: Cara mengatur firewall ptables untuk mengaktifkan akses jarak jauh ke layanan di Linux.

Jika Anda tidak terbiasa dengan sintaks iPables, Anda dapat memilih firewalld "bahasa kaya”Untuk membuat aturan firewall yang lebih kompleks dengan cara yang mudah dipahami seperti yang dijelaskan selanjutnya.

Cara menggunakan bahasa kaya dalam firewalld

Itu bahasa kaya (juga dikenal sebagai aturan yang kaya) digunakan untuk menambahkan aturan firewall yang lebih kompleks IPv4 Dan IPv6 Tanpa pengetahuan sintaks ptable.

Itu memperluas fitur zona (layanan, port, blok-ICMP, topeng dan forward-port) yang telah kami bahas. Ini mendukung alamat sumber dan tujuan, penebangan, tindakan dan batasan log dan tindakan.

Itu --Tambah aturan kaya digunakan untuk menambahkan aturan yang kaya. Contoh ini menunjukkan cara mengizinkan yang baru IPv4 Dan IPv6 Koneksi untuk layanan http dan log 1 per menit menggunakan audit:

$ sudo firewall-cmd --add-rich-rule = 'nama layanan aturan = "http" nilai batas audit = "1/m" terima' 

Untuk menghapus aturan yang ditambahkan, ganti --Tambah aturan kaya opsi dengan --Lepaskan aturan kaya.

$ sudo firewall-cmd--remove-rich-rule = 'nama layanan aturan = "http" nilai batas audit = "1/m" terima' 

Fitur ini juga memungkinkan untuk memblokir atau memungkinkan lalu lintas dari alamat IP tertentu. Contoh berikut menunjukkan cara menolak koneksi dari IP 10.20.1.20.

$ sudo firewall-cmd --zone = public --add-rich-rule = 'aturan family = "ipv4" source address = "192.168.0.254 "Tolak ' 

Cara mengaktifkan dan menonaktifkan mode panik dalam firewalld

Mode panik adalah mode khusus di bawah firewalld di mana semua paket yang terikat dan terikat dijatuhkan, dan koneksi aktif akan kedaluwarsa setelah diaktifkan.
Anda dapat mengaktifkan mode ini dalam situasi darurat di mana ancaman terhadap lingkungan jaringan Anda keluar.

Untuk menanyakan mode panik, gunakan --Panik kueri pilihan.

$ sudo firewall-cmd-kuery-panic 

Untuk mengaktifkan mode panik, gunakan --panik-on pilihan. Anda dapat menguji jika berfungsi menggunakan perintah ping seperti yang ditunjukkan. Karena paket dijatuhkan, namanya www.Google.com tidak dapat diselesaikan, karenanya kesalahan ditampilkan.

$ sudo firewall-cmd-panic-on $ ping -c 2 www.Google.com 
Aktifkan mode panik di firewalld

Untuk menonaktifkan mode panik, gunakan --kepanikan pilihan.

$ sudo firewall-cmd-panik-off 

Cara mengunci firewalld

Ingat, kami sebutkan di bawah dasar -dasar tentang firewalld bahwa aplikasi atau layanan lokal dapat mengubah konfigurasi firewall jika mereka berjalan dengan hak istimewa root. Anda dapat mengontrol aplikasi mana yang dapat meminta perubahan firewall, dengan menentukan kemudian di whiteList penguncian.

Fitur ini dimatikan secara default, Anda dapat mengaktifkan atau menonaktifkannya dengan --Lockdown-on atau --kuncitara beralih secara cepat.

$ sudo firewall-cmd-lockdown-on atau $ sudo firewall-cmd-lockdown-off 

Perhatikan bahwa disarankan untuk mengaktifkan atau menonaktifkan fitur ini dengan mengedit file konfigurasi utama, karena firewall-cmd mungkin tidak ada di whitelist lockdown saat Anda mengaktifkan lockdown.

$ sudo vim/etc/firewalld/firewalld.conf 

Temukan parameternya Kuncitara dan mengubah nilainya dari TIDAK (berarti mati) Ya (Berarti aktif).

Lockdown = ya 

Untuk membuat pengaturan ini memuat ulang firewalld permanen.

$ sudo firewall-cmd-reload 
Ringkasan

Firewalld adalah penggantian yang mudah digunakan untuk layanan iptables, yang menggunakan iptables sebagai backend. Dalam artikel ini, kami telah menunjukkan cara menginstal paket firewalld, menjelaskan fitur -fitur penting Firewalld dan membahas cara mengonfigurasinya di runtime dan lingkungan konfigurasi permanen.

Jika Anda memiliki pertanyaan atau komentar, jangan ragu untuk menghubungi kami melalui formulir komentar di bawah ini. Anda dapat merujuk ke halaman manual firewalld (firewalld man) atau dokumentasi firewalld di situs web proyek, untuk informasi lebih lanjut.