Cara Konfigurasi FirewallD di AlmaLinux dan RockyLinux.
firewalld adalah alat manajemen firewall untuk sistem operasi Linux. Ini menyediakan fitur firewall dengan bertindak sebagai front-end untuk kerangka netfilter kernel Linux melalui backend iptables atau menyediakan fitur firewall dengan bertindak sebagai front-end untuk kerangka netfilter kernel Linux melalui utilitas nftables.
firewalld menggantikan iptables sebagai alat manajemen firewall default. Gunakan utilitas firewalld untuk mengonfigurasi firewall untuk firewall yang tidak terlalu rumit. Utilitas ini mudah digunakan dan mencakup skenario kasus penggunaan umum. FirewallD mendukung jaringan IPv4 dan IPv6 dan dapat mengelola zona firewall terpisah dengan berbagai tingkat kepercayaan seperti yang ditentukan dalam profil zona.
Net-Filter atau Firewall instalasi baru pada AlmaLinux 9 ini adalah firewalld, Dapat di cek dengan perintah berikut.
# ps axo pid,ppid,pgrp,comm |awk '$2==1' |awk '$1==$3'
# systemctl status firewalld
Apa itu Zona dan dan konfigurasi dasar zona
Mengetahui Zona yang ada.
# firewall-cmd --get-zones
block dmz drop external home internal nm-shared public trusted work
Default Zona yang digunakan adalah public zone
# firewall-cmd --get-default-zone
public
Melihat List rule pada Zona defaultnya akan menampilkan rules pada default zona yang digunakan.
# sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client http ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Merubah zona interface jaringan bernama enp0s8 ke zona external, opsi --permanen
digunakan untuk permanen setiap melakukan perubahan konfigurasi.
# firewall-cmd --change-interface=enp0s8 --zone=work --permanen
success
Mendapatkan informasi Zona yang digunakan oleh interface.
# firewall-cmd --get-zone-of-interface=enp0s8
work
Menampilkan informasi rule pada zona external yang digunakan oleh interface enp0s8 hanya dapat menerima service ssh saja. Dengan bgini lebih mudah dalam menerapkan rules untuk setiap zona.
# firewall-cmd --list-all --zone=work
work (active)
target: default
icmp-block-inversion: no
interfaces: enp0s8
sources:
services: ssh
ports:
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
menerapkan icmp block pada zona public sehingga ketika melakukan request melalui ping dari jaringan luar interface enp0s3 tidak akan menampilkan reply ping. Untuk penerapan konfigurasi gunakan opsi --reload
.
# firewall-cmd --add-icmp-block=echo-request --zone=public --permanen
success
# firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks: echo-request
rich rules:
# firewall-cmd --reload
success
Hasilnya adalah ketika di ping dair luar jaringan enp0s3 memiliki ip 192.168.147.23 dan enp0s8 memiliki ip 192.168.56.105.
Dengan zona kita bisa menerapkan rule dan konfigurasi network secara terorganisir, mempermudah admin yang bekerja dengan banyak interface.
Penambahan Service dan Port ke Zone.
firewalld juga memungkinan untuk melakukan penambahan service dan port agar bisa diakses dari luar network.
Dalam contoh dibawah ini menambahkan service httpd agar bisa diakses dari luar melalui zona work yang digunakan oleh interface enp0s8
# firewall-cmd --add-service=http --zone=work --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-services --zone=work
cockpit dhcpv6-client http ssh
# firewall-cmd --list-interfaces --zone=work
enp0s8
Dengan konfigurasi di atas maka yang dengan mengakses interface enp0s8 ip 192.168.56.105 makan dapat melayanan reuquest http.
Untuk menghapus service bisa gunakan perintah.
# firewall-cmd --remove-service=http --zone=work --permanent
# firewall-cmd --reload
Atau alternatif lainnya jika ingin menambahkan port tcp 80 untuk digunakan untuk melayani http. Konfigurasi dibawah ini akan berfungsi sama dengan konfigrasi diatas tehadap zona work.
# firewall-cmd --add-port=80/tcp --zone=work --permanent
success
# firewall-cmd --reload
success
# firewall-cmd --list-ports --zone=work
80/tcp
# firewall-cmd --list-services --zone=work
cockpit dhcpv6-client ssh
# firewall-cmd --list-interfaces --zone=work
enp0s8
Output dari Hasil penambahan port dan service pada zone work yang digunakan interface enp0s3 IP 192.168.147.23 dan zone public enp0s8 IP 192.168.56.105.
Untuk menghapus port bisa menggunakan perintah
# firewall-cmd --remove-port=80/tcp --zone=work --permanent
# firewall-cmd --reload
Konfigurasi Rich Rule firewalld
Rich Rule ada fitur yang digunakan untuk melakukan konfigurasi tingkat lanjut seperti filtering mem-block dan allow koneksi dari satu ip atau range ip tertentu. Fungsi yang biasa ada di iptables.
Dalam Contoh dibawah ini akan menerima koneksi service ssh dari 192.168.56.22/24 selain itu akan di block, rich rule ini diterapkan di zone work yang digunakan oleh interface enp0s8 ip 192.168.56.105
# firewall-cmd --zone=work --add-rich-rule='rule family=ipv4 source address=192.168.56.22/24 service name=ssh log prefix="SSH Logs" level="notice" accept' --permanent
success
# firewall-cmd --reload
# firewall-cmd --list-rich-rules --zone=work
rule family="ipv4" source address="192.168.56.22/24" service name="ssh" log prefix="SSH Logs" level="notice" accept
Kesimpulan
Dengan menggunakan firewalld penerapan net-filter atau firewall di Linux Almalinux dan RockyLinux lebih mudah. Adanya fitur Zona bisa lebih membantu dalam mendefinisikan rule yang diterapkan pada suatu interface dan bisa berpindah zona sesuai kebutuhan.