Firewalld adalah antarmuka untuk sistem penyaringan paket iptables yang disediakan oleh kernel Linux. Dalam tutorial ini, kami akan membahas cara setup FirewallD pada CentOS 7.

Cara Setup FirewallD pada CentOS 7
Cara Setup FirewallD pada CentOS 7

Contents

Konsep Dasar di Firewall

Sebelum mulai membahas tentang bagaimana menggunakan utilitas firewall-cmd dalam mengelola konfigurasi firewall Anda, kita perlu membiasakan diri dengan beberapa konsep dasar yang diperkenalkan oleh tool tersebut.

Zona

firewalld daemon mengelola kelompok aturan menggunakan entitas yang disebut “zona”. Zona pada dasarnya adalah seperangkat aturan yang menentukan lalu lintas apa yang diizinkan bergantung pada tingkat kepercayaan yang Anda miliki dalam jaringan yang terhubung dengan komputer Anda. Antarmuka jaringan diberi zona untuk menentukan perilaku yang harus diizinkan firewall.

Komputer yang sering berpindah jaringan (seperti laptop) menyediakan metode yang baik dalam mengubah aturan tergantung pada lingkungan jaringannya. Komputer tersebut mungkin akan menerapkan aturan yang ketat dengan melarang sebagian besar lalu lintas saat beroperasi pada jaringan WiFi publik, sambil memungkinkan pembatasan yang lebih longgar saat terhubung dengan jaringan rumah Anda. Untuk server, zona ini tidak begitu berpengaruh karena lingkungan jaringan yang jarang berubah.

Terlepas dari seberapa dinamis lingkungan jaringan Anda, tetaplah penting untuk memahami ide umum di balik setiap zona yang telah ditentukan untukfirewalld. Secara berurutan dari paling tidak dipercaya sampai paling dipercaya, zona yang telah ditentukan di dalam firewalld antara lain:

  • drop: Level terendah kepercayaan. Semua koneksi yang masuk dijatuhkan tanpa reply dan hanya koneksi keluar yang memungkinkan.
  • block: Sama dengan di atas, tetapi bukannya menjatuhkan koneksi, permintaan yang masuk ditolak dengan pesan icmp-host-prohibited atauicmp6-adm-prohibited.
  • public: Merupakan jaringan publik yang tidak terpercaya. Anda tidak mempercayai komputer lain tetapi dapat mengizinkan koneksi masuk yang dipilih berdasarkan kasus per kasus.
  • external: Jaringan eksternal jika Anda menggunakan firewall sebagai gateway Anda. Ini dikonfigurasi untuk penyamaran NAT sehingga jaringan internal Anda tetap pribadi tetapi dapat dijangkau.
  • internal: Sisi lain dari zona eksternal, digunakan untuk bagian internal gateway. Komputer cukup dapat dipercaya dan beberapa layanan tambahan tersedia.
  • dmz: Digunakan untuk komputer yang berlokasi di DMZ (komputer terisolasi yang tidak akan memiliki akses ke seluruh jaringan Anda). Hanya koneksi masuk tertentu yang diizinkan.
  • work: Digunakan untuk mesin kerja. Percaya pada sebagian besar komputer di jaringan. Beberapa layanan mungkin diizinkan.
  • home: Lingkungan rumah. Ini umumnya menyiratkan bahwa Anda mempercayai sebagian besar komputer lain dan bahwa beberapa layanan lagi akan diterima.
  • trusted: Percaya pada semua mesin di jaringan. Yang paling terbuka dari opsi yang tersedia dan harus digunakan hemat.

Untuk menggunakan firewall, kita dapat membuat aturan dan mengubah properti zona dan kemudian menetapkan antarmuka jaringan kita ke zona mana saja yang paling tepat.

Keberlangsungan Aturan

Dalam firewalld, aturan dapat berlangsung secara permanen atau sementara. Jika aturan ditambahkan atau diubah, secara default, perilaku firewall yang saat ini berjalan diubah. Pada boot berikutnya, aturan lama akan dikembalikan.

Kebanyakan operasi firewall-cmd dapat menggunakan flag --permanent untuk menunjukkan bahwa firewall non-ephemeral harus ditargetkan. Ini akan memengaruhi set aturan yang dimuat ulang saat boot. Pemisahan ini berarti bahwa Anda dapat menguji aturan dalam instance firewall aktif Anda dan kemudian memuat ulang jika ada masalah. Anda juga dapat menggunakan flag --permanent untuk membangun seluruh rangkaian aturan dari waktu ke waktu yang semuanya akan diterapkan sekaligus ketika perintah memuat ulang dikeluarkan.

Instal dan Aktifkan Firewall Anda untuk Memulai saat Boot

firewalld diinstal secara default pada beberapa distribusi Linux, termasuk CentOS 7. Namun, Anda mungkin perlu menginstal firewalld sendiri:

sudo yum install firewalld

Setelah Anda menginstal firewalld, Anda dapat mengaktifkan service lalu reboot server Anda. Perlu diingat bahwa mengaktifkan firewalld akan menyebabkan service dimulai saat boot. Ini adalah praktik terbaik untuk membuat aturan firewall Anda dan mengambil kesempatan untuk mengujinya sebelum mengonfigurasi perilaku ini untuk menghindari masalah potensial.

sudo systemctl enable firewalld
sudo reboot

Ketika server di-restart, firewall Anda akan dinyalakan, antarmuka jaringan Anda harus dimasukkan ke dalam zona yang Anda konfigurasi (atau kembali ke zona default yang dikonfigurasi), dan aturan apa pun yang terkait dengan zona tersebut akan diterapkan ke terkait antarmuka.

Kami dapat memverifikasi bahwa layanan ini berjalan dan dapat dijangkau dengan mengetik:

sudo firewall-cmd --state
outputrunning

Ini menunjukkan bahwa firewall kami aktif dan berjalan dengan konfigurasi default.

Mengenal Aturan Firewall

Sebelum kita mulai membuat modifikasi, kita harus membiasakan diri dengan lingkungan default dan aturan yang disediakan oleh daemon.

Menjelajahi Defaults

Kita dapat melihat zona mana yang saat ini dipilih sebagai default dengan mengetik:

firewall-cmd --get-default-zone
outputpublic

Karena kita belum diberi firewalld perintah apa pun untuk menyimpang dari zona default, dan tidak ada antarmuka kami yang dikonfigurasi untuk mengikat ke zona lain, zona itu juga akan menjadi satu-satunya zona “aktif” (zona yang mengendalikan lalu lintas untuk antarmuka kami). Kami dapat memverifikasi itu dengan mengetik:

firewall-cmd --get-active-zones
outputpublic
  interfaces: eth0 eth1

Di sini, kita dapat melihat bahwa server contoh kita memiliki dua antarmuka jaringan yang dikendalikan oleh firewall (eth0 dan eth1). Keduanya saat ini dikelola sesuai dengan aturan yang ditentukan untuk zona publik.

Bagaimana kita tahu aturan apa yang dikaitkan dengan zona publik? Kami dapat mencetak konfigurasi zona default dengan mengetik:

sudo firewall-cmd --list-all
outputpublic (default, active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0 eth1
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Kita dapat mengetahui dari output bahwa zona ini adalah default dan aktif dan bahwaeth0 dan eth1 antarmuka dikaitkan dengan zona ini (kami sudah tahu semua ini dari pertanyaan sebelumnya). Namun, kita juga dapat melihat bahwa zona ini memungkinkan operasi normal yang terkait dengan klien DHCP (untuk penugasan alamat IP) dan SSH (untuk administrasi jarak jauh).

Menjelajahi Zona Alternatif

Untuk mendapatkan daftar zona yang tersedia, ketik:

firewall-cmd --get-zones
outputblock dmz drop external home internal public trusted work

Kita dapat melihat konfigurasi spesifik yang terkait dengan zona dengan memasukkan parameter --zone= dalam command --list-all :

sudo firewall-cmd --zone=home --list-all
outputhome
  interfaces: 
  sources: 
  services: dhcpv6-client ipp-client mdns samba-client ssh
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:

Anda dapat menampilkan semua definisi zona dengan menggunakan pilihan --list-all-zones . Anda mungkin ingin menyalurkan output ke pager agar lebih mudah dilihat:

sudo firewall-cmd --list-all-zones | less

Memilih Zona untuk Antarmuka Anda

Kecuali jika Anda telah mengkonfigurasi antarmuka jaringan, jika tidak setiap antarmuka akan diletakkan di zona default ketika firewall di-boot.

Mengubah Zona Antarmuka

Anda dapat mentransisikan antarmuka antar zona selama sesi dengan menggunakan parameter --zone= dikombinasikan dengan parameter --change-interface= . Seperti semua perintah yang memodifikasi firewall, Anda harus menggunakansudo.

Sebagai contoh, kita dapat mentransisikan antarmuka kita eth0  ke zona “home” dengan mengetik:

sudo firewall-cmd --zone=home --change-interface=eth0
output
success

Catatan
Setiap kali Anda mentransisikan antarmuka ke zona baru, perlu diketahui bahwa Anda mungkin memodifikasi layanan yang akan dioperasikan. Sebagai contoh, di sini kita pindah ke zona “home”, yang menyediakan SSH. Ini berarti koneksi kita tidak boleh putus. Beberapa zona lain tidak mengaktifkan SSH secara default dan jika koneksi Anda terputus saat menggunakan salah satu zona ini, Anda mungkin tidak dapat masuk kembali.

Kami dapat memverifikasi bahwa ini berhasil dengan meminta zona aktif lagi:

firewall-cmd --get-active-zones
outputhome
  interfaces: eth0
public
  interfaces: eth1

Menyesuaikan Zona Default

Jika semua antarmuka Anda dapat ditangani dengan baik oleh satu zona, mungkin lebih mudah untuk hanya memilih zona default terbaik dan kemudian menggunakannya untuk konfigurasi Anda.

Anda dapat mengubah zona default dengan parameter --set-default-zone= . Hal tersebut akan mengubah antarmuka apa pun yang telah kembali ke default ke zona baru:

sudo firewall-cmd --set-default-zone=home
outputsuccess

Aturan Pengaturan untuk Aplikasi Anda

Merupakan hal mudah untuk mendefinisikan pengecualian firewall untuk layanan yang ingin Anda sediakan. Berikut merupakan panduannya.

Menambahkan Layanan ke Zona Anda

Metode termudah adalah dengan menambahkan layanan atau port yang Anda butuhkan ke zona yang Anda gunakan. Sekali lagi, Anda bisa mendapatkan daftar layanan yang tersedia dengan pilihan --get-services :

firewall-cmd --get-services
output
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

Catatan
Anda bisa mendapatkan detail lebih lanjut tentang masing-masing layanan ini dengan melihat file .xml  yang terkait dalam direktori /usr/lib/firewalld/services. Misalnya, layanan SSH didefinisikan seperti ini:

/usr/lib/firewalld/services/ssh.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

Anda dapat mengaktifkan layanan untuk zona menggunakan parameter --add-service=. Operasi akan menargetkan zona default atau zona apa pun yang ditentukan oleh parameter --zone=. Secara default, ini hanya akan menyesuaikan sesi firewall saat ini. Anda dapat menyesuaikan konfigurasi firewall permanen dengan memasukkan flag--permanent.

Misalnya, jika kami menjalankan server web yang melayani lalu lintas HTTP konvensional, kami dapat mengizinkan lalu lintas ini untuk antarmuka di zona “publik” kami untuk sesi ini dengan mengetik:

sudo firewall-cmd --zone=public --add-service=http

Anda dapat meninggalkan --zone= jika Anda ingin memodifikasi zona default. Kami dapat memverifikasi operasi berhasil dengan menggunakan operasi --list-all atau --list-services :

sudo firewall-cmd --zone=public --list-services
output
dhcpv6-client http ssh

Setelah Anda menguji apakah semuanya berfungsi sebagaimana mestinya, Anda mungkin ingin memodifikasi aturan firewall permanen sehingga layanan Anda akan tetap tersedia setelah reboot. Kita dapat menjadikan zona “publik” kami berubah secara permanen dengan mengetik:

sudo firewall-cmd --zone=public --permanent --add-service=http
output
success

Anda dapat memverifikasi bahwa ini berhasil dengan menambahkan flag --permanent ke operasi --list-services . Anda memerlukansudo untuk segala operasi --permanent:

sudo firewall-cmd --zone=public --permanent --list-services
output
dhcpv6-client http ssh

Zona “publik” Anda sekarang akan mengizinkan lalu lintas web HTTP di port 80. Jika server web Anda dikonfigurasi untuk menggunakan SSL / TLS, Anda juga ingin menambahkan layanan https . Kita bisa menambahkannya ke sesi saat ini dan aturan-permanen dengan mengetik:

sudo firewall-cmd --zone=public --add-service=https
sudo firewall-cmd --zone=public --permanent --add-service=https

Bagaimana Jika Tidak Ada Layanan Yang Sesuai?

Layanan firewall yang disertakan dengan instalasi firewalld mewakili banyak persyaratan paling umum untuk aplikasi yang mungkin ingin Anda akses. Namun, kemungkinan akan ada skenario di mana layanan ini tidak sesuai dengan kebutuhan Anda.

Dalam situasi ini, Anda memiliki dua opsi:

1. Membuka Port untuk Zona Anda

Cara termudah untuk menambahkan dukungan untuk aplikasi spesifik Anda adalah membuka port yang digunakannya di zona yang sesuai. Ini semudah menentukan port atau kisaran port, dan protokol terkait untuk port yang perlu Anda buka.

Misalnya, jika aplikasi kita berjalan pada port 5000 dan menggunakan TCP, kita bisa menambahkan ini ke zona “publik” untuk sesi ini menggunakan parameter --add-port=. Protokol dapat berupa keduanya tcp atau udp:

sudo firewall-cmd --zone=public --add-port=5000/tcp
output
success

Kami dapat memverifikasi bahwa ini berhasil menggunakan operasi --list-ports :

sudo firewall-cmd --zone=public --list-ports
output
5000/tcp

Dimungkinkan juga untuk menentukan kisaran port berurutan dengan memisahkan port awal dan akhir dalam kisaran dengan tanda hubung. Misalnya, jika aplikasi kita menggunakan port UDP 4990 hingga 4999, kita bisa membukanya di “publik” dengan mengetik:

sudo firewall-cmd --zone=public --add-port=4990-4999/udp

Setelah pengujian, kami mungkin ingin menambahkan ini ke firewall permanen. Anda dapat melakukannya dengan mengetik:

sudo firewall-cmd --zone=public --permanent --add-port=5000/tcp
sudo firewall-cmd --zone=public --permanent --add-port=4990-4999/udp
sudo firewall-cmd --zone=public --permanent --list-ports
output
success
success
5000/tcp 4990-4999/udp
2. Menentukan Layanan

Membuka port untuk zona Anda mudah, tetapi bisa sulit untuk melacak apa tujuan masing-masing. Jika Anda pernah menonaktifkan layanan di server Anda, Anda mungkin kesulitan mengingat port mana yang telah dibuka masih diperlukan. Untuk menghindari situasi ini, dimungkinkan untuk mendefinisikan layanan.

Layanan hanyalah kumpulan port dengan nama dan deskripsi yang terkait. Menggunakan layanan lebih mudah dikelola daripada port, tetapi membutuhkan sedikit pekerjaan di muka. Cara termudah untuk memulai adalah menyalin skrip yang ada (temukan di /usr/lib/firewalld/services) ke direktori /etc/firewalld/services  dimana firewall mencari definisi non-standar.

Misalnya, kita dapat menyalin definisi layanan SSH untuk digunakan untuk definisi layanan “contoh” kami seperti ini. Nama file dikurangi akhiran .xml akan menentukan nama layanan dalam daftar layanan firewall:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/example.xml

Sekarang, Anda dapat menyesuaikan definisi yang ditemukan dalam file yang Anda salin:

sudo vi /etc/firewalld/services/example.xml

Untuk memulai, file akan berisi definisi SSH yang Anda salin:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>SSH</short>
  <description>Secure Shell (SSH) is a protocol for logging into and executing commands on remote machines. It provides secure encrypted communications. If you plan on accessing your machine remotely via SSH over a firewalled interface, enable this option. You need the openssh-server package installed for this option to be useful.</description>
  <port protocol="tcp" port="22"/>
</service>

Mayoritas definisi ini sebenarnya adalah metadata. Anda akan ingin mengubah nama pendek untuk layanan di dalam tag <short> . Ini adalah nama yang bisa dibaca manusia untuk layanan Anda. Anda juga harus menambahkan deskripsi sehingga Anda memiliki lebih banyak informasi jika Anda perlu mengaudit layanan. Satu-satunya konfigurasi yang perlu Anda buat yang benar-benar memengaruhi fungsionalitas layanan kemungkinan adalah definisi port tempat Anda mengidentifikasi nomor port dan protokol yang ingin Anda buka. Ini dapat ditentukan beberapa kali.

Untuk layanan “contoh” kami, bayangkan bahwa kita perlu membuka port 7777 untuk TCP dan 8888 untuk UDP. Dengan memasuki mode INSERT dengan menekani, kita dapat memodifikasi definisi yang ada dengan sesuatu seperti ini:

<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Example Service</short>
  <description>This is just an example service.  It probably shouldn't be used on a real system.</description>
  <port protocol="tcp" port="7777"/>
  <port protocol="udp" port="8888"/>
</service>

Klik ESC, lalu tekan :x untuk menyimpan dan menutup file.

Muat ulang firewall Anda untuk mendapatkan akses ke layanan baru Anda:

sudo firewall-cmd --reload

Anda dapat melihat bahwa itu sekarang di antara daftar layanan yang tersedia:

firewall-cmd --get-services
output
RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch example freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server

Anda sekarang dapat menggunakan layanan ini di zona Anda seperti biasa.

Menciptakan Zona Anda Sendiri

Meskipun zona yang telah ditentukan mungkin akan lebih dari cukup untuk sebagian besar pengguna, akan sangat membantu untuk menentukan zona Anda sendiri yang lebih deskriptif dari fungsinya.

Misalnya, Anda mungkin ingin membuat zona untuk server web Anda, yang disebut “publicweb”. Namun, Anda mungkin ingin memiliki zona lain yang dikonfigurasi untuk layanan DNS yang Anda berikan di jaringan pribadi Anda. Anda mungkin menginginkan zona yang disebut “privateDNS” untuk itu.

Saat menambahkan zona, Anda harus menambahkannya ke konfigurasi firewall permanen. Anda kemudian dapat memuat ulang untuk membawa konfigurasi ke sesi berjalan Anda. Misalnya, kita bisa membuat dua zona yang kita bahas di atas dengan mengetik:

sudo firewall-cmd --permanent --new-zone=publicweb
sudo firewall-cmd --permanent --new-zone=privateDNS

Anda dapat memverifikasi bahwa ini ada dalam konfigurasi permanen Anda dengan mengetik:

sudo firewall-cmd --permanent --get-zones
output
block dmz drop external home internal privateDNS public publicweb trusted work

Seperti yang dinyatakan sebelumnya, ini tidak akan tersedia dalam contoh firewall saat ini:

firewall-cmd --get-zones
output
block dmz drop external home internal public trusted work

Muat ulang firewall untuk membawa zona baru ini ke konfigurasi aktif:

sudo firewall-cmd --reload
firewall-cmd --get-zones
output
block dmz drop external home internal privateDNS public publicweb trusted work

Sekarang, Anda dapat mulai menetapkan layanan dan port yang sesuai untuk zona Anda. Biasanya ide yang baik untuk menyesuaikan instance aktif dan kemudian mentransfer perubahan itu ke konfigurasi permanen setelah pengujian. Misalnya, untuk zona “jaringan publik”, Anda mungkin ingin menambahkan layanan SSH, HTTP, dan HTTPS:

sudo firewall-cmd --zone=publicweb --add-service=ssh
sudo firewall-cmd --zone=publicweb --add-service=http
sudo firewall-cmd --zone=publicweb --add-service=https
sudo firewall-cmd --zone=publicweb --list-all
output
publicweb
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh http https
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

Demikian juga, kita dapat menambahkan layanan DNS ke zona “privateDNS” kami:

sudo firewall-cmd --zone=privateDNS --add-service=dns
sudo firewall-cmd --zone=privateDNS --list-all
output
privateDNS
  interfaces: 
  sources: 
  services: dns
  ports: 
  masquerade: no
  forward-ports: 
  icmp-blocks: 
  rich rules:

Kami kemudian dapat mengubah antarmuka kami ke zona baru ini untuk mengujinya:

sudo firewall-cmd --zone=publicweb --change-interface=eth0
sudo firewall-cmd --zone=privateDNS --change-interface=eth1

Pada titik ini, Anda memiliki kesempatan untuk menguji konfigurasi Anda. Jika nilai-nilai ini sesuai untuk Anda, Anda ingin menambahkan aturan yang sama ke konfigurasi permanen. Anda dapat melakukannya dengan menerapkan kembali aturan dengan flag--permanent :

sudo firewall-cmd --zone=publicweb --permanent --add-service=ssh
sudo firewall-cmd --zone=publicweb --permanent --add-service=http
sudo firewall-cmd --zone=publicweb --permanent --add-service=https
sudo firewall-cmd --zone=privateDNS --permanent --add-service=dns

Setelah menerapkan aturan-aturan ini secara permanen, Anda dapat memulai ulang jaringan dan memuat ulang layanan firewall Anda:

sudo systemctl restart network
sudo systemctl reload firewalld

Validasi bahwa zona yang benar ditetapkan:

firewall-cmd --get-active-zones
output
privateDNS
  interfaces: eth1
publicweb
  interfaces: eth0

Dan validasi bahwa layanan yang sesuai tersedia untuk kedua zona:

sudo firewall-cmd --zone=publicweb --list-services
output
http https ssh
sudo firewall-cmd --zone=privateDNS --list-services
output
dnsdns

Anda telah berhasil mengatur zona Anda sendiri! Jika Anda ingin menjadikan salah satu zona ini sebagai default untuk antarmuka lain, ingatlah untuk mengonfigurasi perilaku itu dengan parameter--set-default-zone=:

sudo firewall-cmd --set-default-zone=publicweb