Cara Menginstal, Mengkonfigurasi, dan Gunakan FirewallD di Centos dan Ubuntu
- 4730
- 1009
- Karl O'Connell DDS
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-statePeriksa 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-zoneDaftar 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 = wlp1s0Tambahkan 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 = wlp1s0Antarmuka 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-zonaDaftar 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 publicTemukan 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-icmptypesDaftar 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.comAktifkan 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.
- « NIX - Manajer Paket Fungsional murni untuk Linux
- Hegemon - Alat pemantauan sistem modular untuk Linux »