Cara Memasang, Konfigurasikan dan Gunakan Firewalld di Centos dan Ubuntu

Cara Memasang, Konfigurasikan dan Gunakan Firewalld di Centos dan Ubuntu

Firewalld (firewall daemon) adalah alternatif kepada IPTABLES perkhidmatan, untuk mengurus firewall sistem secara dinamik dengan sokongan untuk zon rangkaian (atau firewall) dan menyediakan antara muka d-bas untuk menguruskan konfigurasi. Ia mudah digunakan dan dikonfigurasikan, dan kini alat pengurusan firewall lalai RHEL/CENTOS, Fedora dan beberapa pengagihan Linux lain.

Dalam artikel ini, kita akan membincangkan cara mengkonfigurasi firewall sistem dengan Firewalld dan melaksanakan penapisan paket asas di Centos/RHEL 7 dan Ubuntu.

Asas -asas mengenai firewalld

Firewalld terdiri daripada tiga lapisan, iaitu,:

  • lapisan teras: Bertanggungjawab untuk mengendalikan konfigurasi dan hujung belakang (disenaraikan di bawah).
  • Antara muka D-bas: cara utama menukar dan membuat konfigurasi firewall.
  • backends: untuk berinteraksi dengan netfilter (modul kernel asli yang digunakan untuk firewalling). Mereka termasuk iptables, ip6tables, eBtables, ipset, nft, linnftables; NetworkManager; dan modul.

Ia menguruskan peraturan firewall dengan melaksanakan zon rangkaian/firewall yang menentukan tahap kepercayaan sambungan rangkaian atau antara muka. Ciri -ciri firewall yang disokong lain termasuk perkhidmatan, konfigurasi langsung (digunakan untuk secara langsung lulus sintaks iptables mentah), ipsets serta jenis ICMP.

Dua jenis persekitaran konfigurasi disokong oleh firewalld:

  • konfigurasi runtime yang hanya berkesan sehingga mesin telah reboot atau perkhidmatan firewalld telah dimulakan semula
  • konfigurasi tetap yang disimpan dan berfungsi secara berterusan.

Alat baris perintah firewall-cmd digunakan untuk menguruskan konfigurasi runtime dan tetap. Sebagai alternatif, anda boleh menggunakan alat konfigurasi Antara Muka Pengguna Grafik Firewall-Config (GUI) untuk berinteraksi dengan daemon.

Sebagai tambahan, Firewalld Menawarkan antara muka yang jelas untuk perkhidmatan atau aplikasi tempatan yang lain untuk meminta perubahan kepada peraturan firewall secara langsung, jika mereka berjalan dengan keistimewaan root.

Fail konfigurasi global untuk firewalld terletak di /etc/firewalld/firewalld.Conf dan ciri firewall dikonfigurasikan dalam format XML.

Memahami Ciri Firewalld Penting

Ciri utama Firewalld adalah Zon Rangkaian/Firewall. Setiap ciri lain dibatasi ke zon. Zon Firewall menerangkan tahap amanah untuk sambungan, antara muka atau alamat sumber yang mengikat.

Konfigurasi lalai dilengkapi dengan beberapa zon yang telah ditetapkan yang disusun mengikut tahap amanah lalai zon dari yang tidak dipercayai kepada yang dipercayai: drop, blok, awam, luaran, DMZ, kerja, rumah, dalaman dan dipercayai. Mereka ditakrifkan dalam fail yang disimpan di bawah /usr/lib/firewalld/zon direktori.

Anda boleh mengkonfigurasi atau menambah zon tersuai anda menggunakan klien CLI atau hanya membuat atau menyalin fail zon di /etc/firewalld/zon dari fail yang ada dan editnya.

Satu lagi konsep penting di bawah firewalld adalah perkhidmatan. Perkhidmatan ditakrifkan menggunakan port dan protokol; Definisi ini mewakili perkhidmatan rangkaian yang diberikan seperti pelayan web atau perkhidmatan akses jauh. Perkhidmatan ditakrifkan dalam fail yang disimpan di bawah /usr/lib/firewalld/perkhidmatan/ atau /etc/firewalld/perkhidmatan/ direktori.

Sekiranya anda mengetahui konsep asas iptables/ip6tables/eBtables, anda juga boleh menggunakan antara muka langsung (atau konfigurasi) untuk mendapatkan akses langsung ke firewall. Tetapi, bagi mereka yang tidak mempunyai pengetahuan iptables, anda boleh menggunakan bahasa yang kaya untuk mewujudkan peraturan firewall yang lebih kompleks untuk IPv4 dan IPv6.

Cara Memasang Pakej Firewalld di Linux

Pada Centos 7, The Firewalld Pakej datang sebelum dipasang dan anda boleh mengesahkan menggunakan arahan berikut.

$ rpm -qa firewalld 

Pada Ubuntu 16.04 dan 18.04, anda boleh memasangnya menggunakan pengurus pakej lalai seperti yang ditunjukkan.

$ sudo apt memasang firewalld 

Cara Mengurus Perkhidmatan Firewalld di Linux

Firewalld adalah perkhidmatan sistem biasa yang boleh diuruskan melalui perintah systemctl.

 $ sudo Systemctl Mula Firewalld #Start Perkhidmatan untuk Masa Mean $ Sudo Systemctl Dayakan 

Selepas bermula Firewalld perkhidmatan, anda juga boleh menyemak sama ada daemon sedang berjalan atau tidak, menggunakan Firewall-CMD alat (sekiranya ia tidak aktif, arahan ini akan mengeluarkan "tidak berjalan").

$ sudo firewall-cmd-state 
Semak status firewalld

Sekiranya anda menyelamatkan sebarang perubahan secara kekal, anda boleh memuatkan semula Firewalld. Ini akan memuatkan semula peraturan firewall dan menyimpan maklumat negeri. Konfigurasi tetap semasa akan menjadi konfigurasi runtime baru.

$ sudo firewall-cmd-reload 

Cara bekerja dengan zon firewall di firewalld

Untuk mendapatkan senarai semua zon dan perkhidmatan firewall yang ada, jalankan arahan ini.

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

Zon lalai adalah zon yang digunakan untuk setiap ciri firewall yang tidak dibatasi secara jelas ke zon lain. Anda boleh mendapatkan set zon lalai untuk sambungan rangkaian dan antara muka dengan berjalan.

$ sudo firewall-cmd-get-default-zon 
Senaraikan zon firewalld lalai

Untuk menetapkan zon lalai, contohnya ke luar, gunakan arahan berikut. Perhatikan bahawa menambah pilihan --kekal Menetapkan konfigurasi secara kekal (atau membolehkan pertanyaan maklumat dari persekitaran konfigurasi tetap).

$ sudo firewall-cmd--set-default-zone = luaran atau $ sudo firewall-cmd--set-default-zone = external --permanent $ sudo firewall-cmd-reload 

Seterusnya, mari kita lihat cara menambah antara muka ke zon. Contoh ini menunjukkan cara menambah penyesuai rangkaian wayarles anda (WLP1S0) ke rumah zon, yang digunakan di kawasan rumah.

$ sudo firewall-cmd --Zone = home --Add-interface = WLP1S0 
Tambahkan antara muka ke zon firewalld

Antara muka hanya boleh ditambah ke satu zon. Untuk memindahkannya ke zon lain, gunakan --perubahan antara muka beralih seperti yang ditunjukkan, atau keluarkannya dari zon sebelumnya menggunakan -Keluarkan antara muka Tukar, kemudian masukkannya ke zon baru.

Dengan mengandaikan anda ingin menyambung ke rangkaian Wi-Fi awam, anda harus memindahkan antara muka tanpa wayar anda kembali ke zon awam, seperti ini:

$ sudo firewall-cmd --Zone = public --add-interface = wlp1s0 $ sudo firewall-cmd --Zone = public --change-interface = wlp1s0 
Perubahan Antara Muka Zon di Firewalld

Anda boleh menggunakan banyak zon pada masa yang sama. Untuk mendapatkan senarai semua zon aktif dengan ciri -ciri yang diaktifkan seperti antara muka, perkhidmatan, pelabuhan, protokol, lari:

$ sudo firewall-cmd-zon-zon-aktif 
Senaraikan Zon Aktif di Firewalld

Berhubung dengan titik sebelumnya, jika anda ingin mencari lebih banyak maklumat mengenai zon tertentu, i.E semuanya ditambah atau didayakan di dalamnya, gunakan salah satu arahan ini:

$ sudo firewall-cmd --Zone = home --list-all atau $ sudo firewall-cmd-info-zon awam 
Cari maklumat zon firewall

Pilihan lain yang berguna adalah --get-sasaran, yang menunjukkan kepada anda sasaran zon tetap. Sasaran adalah salah satu: lalai, terima, drop, menolak. Anda boleh menyemak sasaran pelbagai zon:

$ sudo firewall-cmd --permanent --Zone = public --get-sasaran $ sudo firewall-cmd --permanent --Zone = block --get-sasaran $ sudo firewall-cmd --permanent-zone = dmz- -get-sasaran $ sudo firewall-cmd --permanent-zone = luaran-sasaran $ sudo firewall-cmd --permanent-zone = drop --get-sasaran 

Cara membuka dan menyekat pelabuhan di Firewalld

Untuk membuka port (atau kombinasi pelabuhan/protokol) di firewall, tambahkannya di zon dengan --tambah-port pilihan. Sekiranya anda tidak menyatakan secara jelas zon, ia akan didayakan di zon lalai.

Contoh berikut menunjukkan cara menambah port 80 dan 443 untuk membolehkan lalu lintas web terikat melalui Http dan Https Protokol, masing -masing:

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

Seterusnya, tukar semula firewalld dan periksa ciri -ciri yang diaktifkan di zon awam sekali lagi, anda sepatutnya dapat melihat pelabuhan yang baru ditambah.

$ sudo firewall-cmd-reload $ sudo firewall-cmd-info-zon awam 

Menyekat atau menutup pelabuhan di firewall sama -sama mudah, hanya mengeluarkannya dari zon dengan --keluarkan-port pilihan. Contohnya, untuk menutup pelabuhan 80 dan 443 di zon awam.

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

Daripada menggunakan kombinasi port atau port/protokol, anda boleh menggunakan nama perkhidmatan yang mana pelabuhan diberikan seperti yang dijelaskan di bahagian seterusnya.

Cara Membuka dan Menyekat Perkhidmatan di Firewalld

Untuk membuka perkhidmatan di firewall, membolehkannya menggunakan --tambah perkhidmatan pilihan. Sekiranya zon ditinggalkan, zon lalai akan digunakan.

Perintah berikut akan membolehkan perkhidmatan HTTP secara kekal di zon awam.

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

The --Keluarkan perkhidmatan pilihan boleh digunakan untuk melumpuhkan perkhidmatan.

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

Cara Mengaktifkan dan Lumpuhkan IP Menggunakan Firewalld

IP menyamar (juga dikenali sebagai Ipmasq atau Masq) ialah Nat (Terjemahan alamat rangkaian) Mekanisme dalam rangkaian Linux yang membolehkan tuan rumah anda dalam rangkaian, dengan alamat IP peribadi untuk berkomunikasi dengan Internet menggunakan alamat IP pelayan Linux (IPMASQ Gateway) anda.

Ia adalah pemetaan satu-ke-banyak. Lalu lintas dari tuan rumah anda yang tidak kelihatan akan kelihatan ke komputer lain di internet seolah -olah ia datang dari pelayan Linux anda.

Anda boleh membolehkan IP menyamar di zon yang dikehendaki, contohnya zon awam. Tetapi sebelum melakukan itu, periksa terlebih dahulu jika penyamaran aktif atau tidak (a "Tidak" bermaksud dilumpuhkan dan a "Ya" bermaksud sebaliknya).

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

Kes penggunaan biasa untuk menyamar adalah untuk melaksanakan penghantaran port. Dengan mengandaikan anda ingin SSH dari mesin jauh ke hos di rangkaian dalaman anda dengan IP 10.20.1.3, di mana daemon SSHD sedang mendengar di pelabuhan 5000.

Anda boleh mengemukakan semua sambungan ke port 22 Pada pelayan Linux anda ke port yang dimaksudkan pada hos sasaran anda dengan mengeluarkan:

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

Untuk melumpuhkan penyamaran di zon, gunakan --Keluarkan-sisquerade suis.

$ sudo firewall-cmd --Zone = awam-remove-sisquerade 

Cara Mengaktifkan dan Melumpuhkan Mesej IMCP di Firewalld

ICMP (Protokol Mesej Kawalan Internet) Mesej sama ada permintaan maklumat atau balasan kepada permintaan maklumat atau dalam keadaan kesilapan.

Anda boleh mengaktifkan atau melumpuhkan mesej ICMP di firewall, tetapi sebelum senarai pertama semua jenis ICMP yang disokong.

$ sudo firewall-cmd --get-icmptypes 
Senarai jenis ICMP yang disokong di Firewalld

Untuk menambah atau mengeluarkan jenis blok yang anda mahukan.

$ sudo firewall-cmd --Zone = home --Add-ICMP-block = echo-reply atau $ sudo firewall-cmd --Zone = home--remove-icmp-block = echo-reply 

Anda boleh melihat semua jenis ICMP ditambahkan dalam zon menggunakan --Senarai-ICMP-blocks suis.

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

Cara Menggunakan Antara Muka Langsung Untuk Lulus Perintah Iptables Mentah

Firewall-CMD juga menyediakan pilihan langsung (--langsung) untuk anda mendapatkan lebih banyak akses langsung ke firewall. Ini berguna bagi mereka yang mempunyai pengetahuan asas mengenai iptables.

Penting: Anda hanya perlu menggunakan pilihan langsung sebagai usaha terakhir apabila tidak mungkin menggunakan biasa Firewall-CMD pilihan yang dijelaskan di atas.

Berikut adalah contoh cara lulus peraturan iptables mentah, menggunakan --Tambah-peraturan suis. Anda boleh dengan mudah mengeluarkan peraturan ini dengan menggantikan --Tambah-peraturan dengan --Keluarkan peraturan:

$ sudo firewall -cmd --direct --add -rule IPv4 filter in_public_allow 0 -m tcp -p tcp --dport 80 -j Terima 

Untuk maklumat lanjut mengenai IPTABLES, Lihat Panduan Ini: Cara Menyiapkan Firewall Iptables untuk membolehkan akses jauh ke perkhidmatan di Linux.

Jika anda tidak biasa dengan sintaks iptables, anda boleh memilih untuk firewalld "bahasa kaya"Untuk mewujudkan peraturan firewall yang lebih kompleks dengan cara yang mudah difahami seperti yang dijelaskan seterusnya.

Cara menggunakan bahasa kaya di firewalld

The bahasa kaya (juga dikenali sebagai peraturan yang kaya) digunakan untuk menambah peraturan firewall yang lebih kompleks untuk IPv4 dan IPv6 Tanpa pengetahuan sintaks iptables.

Ia memanjangkan ciri zon (perkhidmatan, pelabuhan, blok ICMP, penyamaran dan port ke hadapan) yang telah kami tutup. Ia menyokong alamat sumber dan tujuan, pembalakan, tindakan dan had untuk log dan tindakan.

The --ADD-Rich-Rule digunakan untuk menambah peraturan yang kaya. Contoh ini menunjukkan cara membenarkan baru IPv4 dan IPv6 Sambungan untuk perkhidmatan HTTP dan log 1 per minit menggunakan audit:

$ sudo firewall-cmd --add-rich-rule = 'name perkhidmatan peraturan = "http" had audit nilai = "1/m" Terima' 

Untuk membuang peraturan tambahan, ganti --ADD-Rich-Rule pilihan dengan --Keluarkan peraturan kaya.

$ sudo firewall-cmd--remove-rich-rule = 'name perkhidmatan peraturan = "http" nilai had audit = "1/m" Terima' 

Ciri ini juga membolehkan menyekat atau membenarkan lalu lintas dari alamat IP tertentu. Contoh berikut menunjukkan cara menolak sambungan dari IP 10.20.1.20.

$ sudo firewall-cmd --Zone = public --add-rich-rule = 'peraturan keluarga = "ipv4" alamat sumber = "192.168.0.254 "menolak ' 

Cara Mengaktifkan dan Lumpuhkan Mod Panik di Firewalld

Mod panik adalah mod khas di bawah firewalld di mana semua paket terikat dan terikat dijatuhkan, dan sambungan aktif akan tamat tempoh setelah diaktifkan.
Anda boleh mengaktifkan mod ini dalam situasi kecemasan di mana ancaman terhadap persekitaran rangkaian anda keluar.

Untuk menanyakan mod panik, gunakan --pertanyaan-panik pilihan.

$ sudo firewall-cmd-Query-Panic 

Untuk membolehkan mod panik, gunakan --panik-on pilihan. Anda boleh menguji jika berfungsi menggunakan arahan ping seperti yang ditunjukkan. Kerana paket itu jatuh, namanya www.Google.com tidak dapat diselesaikan, oleh itu ralat dipaparkan.

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

Untuk melumpuhkan mod panik, gunakan --panik pilihan.

$ sudo firewall-cmd --panic-off 

Cara Mengunci Firewalld

Ingat, kami menyebutkan di bawah asas -asas mengenai Firewalld bahawa aplikasi atau perkhidmatan tempatan dapat mengubah konfigurasi firewall jika mereka berjalan dengan keistimewaan akar. Anda boleh mengawal aplikasi mana yang dapat meminta perubahan firewall, dengan menyatakan kemudian dalam senarai putih pengunci.

Ciri ini dimatikan secara lalai, anda boleh mengaktifkan atau melumpuhkannya dengan --lockdown-on atau --penutupan dan penyekatan beralih secara penerimaan.

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

Perhatikan bahawa disyorkan untuk mengaktifkan atau melumpuhkan ciri ini dengan mengedit fail konfigurasi utama, kerana firewall-cmd mungkin tidak wujud pada lockdown whitelist apabila anda mengaktifkan lockdown.

$ sudo vim/etc/firewalld/firewalld.Conf 

Cari parameter Penutupan dan penyekatan dan menukar nilainya dari tidak (bererti) ke Ya (Bermakna).

Lockdown = ya 

Untuk menjadikan tetapan ini tetap tambah nilai firewalld.

$ sudo firewall-cmd-reload 
Ringkasan

Firewalld adalah pengganti yang mudah digunakan untuk perkhidmatan iptables, yang menggunakan iptables sebagai backend. Dalam artikel ini, kami telah menunjukkan cara memasang pakej Firewalld, menjelaskan ciri -ciri penting Firewalld dan membincangkan cara mengkonfigurasinya dalam persekitaran konfigurasi runtime dan tetap.

Sekiranya anda mempunyai sebarang pertanyaan atau komen, jangan ragu untuk menghubungi kami melalui borang komen di bawah. Anda boleh merujuk kepada halaman Manual Firewalld (Man Firewalld) atau dokumentasi Firewalld di laman web projek, untuk maklumat lanjut.