Firewall adalah cara untuk melindungi sistem Anda dari lalu lintas yang tidak diinginkan dari jaringan luar. Alat firewall gratis dan komersial berlimpah; beberapa di antaranya termasuk Iptables, UFW, Juniper, pfSense, SonicWall, dan banyak lagi.
Di antara mereka, FirewallD adalah alat perangkat lunak firewall gratis untuk sistem operasi CentOS/RHEL/Fedora. Ini adalah pengontrol frontend untuk iptables dan menyediakan antarmuka baris perintah untuk menerapkan aturan firewall. Dibandingkan dengan Iptables, FirewallD menggunakan zona dan layanan alih-alih rantai dan aturan dan mengelola kumpulan aturan secara dinamis. FirewallD menyediakan alat baris perintah firewall-cmd untuk mengelola waktu proses dan konfigurasi permanen.
Fitur
- Mendukung protokol IPv4 dan IPv6
- Daftar Zona Standar
- CLI dan konfigurasi grafis
- API D-Bus Lengkap
- Jembatan Ethernet
- Log sederhana dari paket yang ditolak
- Daftar aplikasi yang diizinkan
- Integrasi boneka
Dalam tutorial ini, kita akan mempelajari cara mengatur firewall dengan FirewallD di CentOS 8.
Prasyarat
- VPS CentOS 8 baru di Platform Cloud Atlantic.Net
- Kata sandi root yang dikonfigurasi di server Anda
Langkah 1:Buat Server Cloud Atlantic.Net
Pertama, masuk ke Server Cloud Atlantic.Net Anda. Buat server baru, pilih CentOS 8 sebagai sistem operasi dengan setidaknya 1GB RAM. Hubungkan ke Server Cloud Anda melalui SSH dan masuk menggunakan kredensial yang disorot di bagian atas halaman.
Setelah Anda masuk ke server CentOS 8 Anda, jalankan perintah berikut untuk memperbarui sistem dasar Anda dengan paket terbaru yang tersedia.
dnf update -y
Langkah 2:Instal Firewalld
dnf install firewalld -y
Setelah terinstal, mulai layanan FirewallD dan aktifkan untuk memulai pada sistem reboot dengan perintah berikut:
systemctl start firewalld systemctl enable firewalld
Anda juga dapat memverifikasi status FirewallD menggunakan perintah berikut:
firewall-cmd --state
Keluaran:
running
Langkah 3:Penggunaan Dasar FirewallD
FirewallD mengelola seperangkat aturan menggunakan zona. Setiap zona memiliki konfigurasinya sendiri untuk menerima atau menolak paket tergantung pada tingkat kepercayaan yang Anda miliki dalam jaringan yang terhubung dengan komputer Anda.
Anda dapat membuat daftar semua zona yang tersedia menggunakan perintah berikut:
firewall-cmd --get-zones
Anda akan melihat daftar berikut:
block dmz drop external home internal public trusted work
Untuk mendapatkan daftar semua zona aktif, jalankan perintah berikut:
firewall-cmd --get-active-zones
Anda akan melihat daftar berikut:
public interfaces: eth0 eth1
Anda dapat membuat daftar zona default yang ditetapkan untuk koneksi jaringan menggunakan perintah berikut:
firewall-cmd --get-default-zone
Keluaran:
public
Untuk mengubah zona default dari publik ke rumah menggunakan perintah berikut:
firewall-cmd --set-default-zone=home --permanent
Untuk menampilkan informasi lebih lanjut tentang zona apa pun menggunakan perintah berikut:
firewall-cmd --info-zone public
Anda akan mendapatkan output berikut:
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Anda juga dapat membuat daftar semua layanan yang tersedia dengan menjalankan perintah berikut:
firewall-cmd --get-services
Anda akan mendapatkan output berikut:
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
Langkah 4:Izinkan dan Tolak Port dengan Firewalld
Firewalld menyediakan alat baris perintah firewall-cmd untuk menambah dan menghapus port di sistem Anda.
Misalnya, untuk mengizinkan TCP port 80 dan 22 di zona publik, jalankan perintah berikut:
firewall-cmd --zone=public --permanent --add-port=80/tcp --add-port=22/tcp
Selanjutnya, muat ulang daemon FirewallD untuk menyimpan konfigurasi:
firewall-cmd --reload
Sekarang, daftarkan port yang ditambahkan dengan perintah berikut:
firewall-cmd --info-zone public
Anda akan melihat output berikut:
public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: cockpit dhcpv6-client ssh ports: 80/tcp 22/tcp protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:
Anda juga dapat menolak atau menghapus port dari zona dengan mudah menggunakan opsi –remove-port.
Misalnya, untuk menolak atau menghapus port 80 dari zona publik, jalankan perintah berikut:
firewall-cmd --zone=public --permanent --remove-port=80/tcp
Langkah 5:Izinkan dan Tolak Layanan dengan FirewallD
Anda juga dapat mengizinkan dan menolak berdasarkan nama layanan alih-alih menggunakan port dengan FirewallD.
Misalnya, izinkan layanan FTP di zona publik dengan menjalankan perintah berikut:
firewall-cmd --zone=public --permanent --add-service=ftp firewall-cmd --reload
Anda dapat menolak atau menghapus layanan FTP dari zona publik menggunakan perintah berikut:
:
firewall-cmd --zone=public --permanent --remove-service=ftp firewall-cmd --reload
Langkah 6:Siapkan Penyamaran IP dengan FirewallD
Penyamaran IP adalah proses atau metode yang memungkinkan komputer Anda dalam jaringan dengan alamat IP pribadi untuk berkomunikasi dengan Internet menggunakan alamat server Anda. Ini sangat berguna ketika Anda ingin komputer lain berkomunikasi ke Internet tanpa membeli IP tambahan dari ISP Anda.
Sebelum mengatur penyamaran IP, periksa apakah penyamaran aktif atau tidak dengan perintah berikut:
firewall-cmd --zone=public --query-masquerade
Anda akan melihat bahwa penyamaran IP dinonaktifkan di zona publik seperti yang ditunjukkan di bawah ini:
no
Sekarang, atur penyamaran IP menggunakan perintah berikut:
firewall-cmd --zone=public --add-masquerade firewall-cmd --reload
Anda juga dapat menonaktifkan penyamaran IP menggunakan opsi –remove-masquerade:
firewall-cmd --zone=public --remove-masquerade firewall-cmd --reload
Kesimpulan
Dalam panduan di atas, Anda mempelajari cara menggunakan FirewallD untuk memblokir lalu lintas yang tidak diinginkan di sistem Anda. Anda sekarang harus dapat membatasi semua koneksi yang tidak perlu dan melindungi server Anda dari penyerang. Coba FirewallD di VPS Atlantic.Net!