in FOSS

Cara Setting Firewall dengan FirewallD di CentOS 7

FirewallD adalah perangkat lunak untuk manajemen firewall pada sistem operasi berbasis Linux, menjadi frontend dari iptables packet filtering yang sudah tersedia pada kernel Linux.

Konsep FirewallD

FirewallD menggunakan zones dan services, dibandingkan dengan iptables yang menggunakan chain dan rules. Berdasarkan pada zones dan services, kita dapat mengontrol koneksi jaringan apa yang diizinkan dan tidak diizinkan masuk atau keluar dari sistem.

FirewallD Zones

Zones adalah kumpulan aturan yang telah ditetapkan, koneksi jaringan apa yang harusnya diizinkan berdasarkan tingkat kepercayaan pada jaringan yang terhubung ke sistem. Kita dapat menetapkan nama interface jaringan dan sumber jaringan ke dalam zones.

Di bawah ini zones yang tersedia pada FirewallD yang disusun berdasarkan tingkat kepercayaan dari tidak terpercaya ke terpercaya.

  1. drop: Semua koneksi jaringan yang masuk didrop tanpa adanya notifikasi atau pesan error. Hanya koneksi jaringan yang keluar dari sistem yang diizinkan.
  2. block: Semua koneksi jaringan yang masuk direject dengan pesan icmp-host-prohibited untuk IPv4 dan icmp6-adm-prohibited untuk IPv6. Hanya koneksi jaringan yang keluar yang diizinkan.
  3. public: Jaringan publik, jaringan yang tidak bisa dipercaya. Kita dapat memilih koneksi jaringan apa yang diizinkan.
  4. external: Jaringan eksternal, jika kita menggunakan Linux sebagai gateway atau router. Dikonfigurasi sebagai NAT masquerading. Hanya trafik yang dipilih yang diizinkan.
  5. internal: Digunakan pada jaringan internal, saat Linux berfungsi sebagai gateway atau router. Sistem lain pada jaringan internal secara umum dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.
  6. dmz: Demilitarized zone, jika kita ingin memberikan akses terhadap services ke jaringan publik. Hanya koneksi jaringan yang dipilih saja yang diizinkan.
  7. work: Zona yang diperuntukkan jaringan internal kantor. Semua sistem dalam jaringan kantor dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.
  8. home: Zona yang diperuntukkan jaringan internal rumah. Semua sistem dalam jaringan kantor dapat dipercaya, hanya koneksi jaringan yang dipilih yang diizinkan.
  9. trusted: Zona yang paling terbuka, semua sistem pada jaringan dipercaya, dan semua koneksi jaringan diizinkan.

Install FirewallD

Secara default FirewallD sudah terinstall di CentOS 7, tetapi jika belum terinstall jalankan perintah di bawah ini untuk install.

Aktifkan service FirewallD pada saat boot lalu jalankan

Mengecek status firewall

Hasilnya adalah running atau not running.

Konfigurasi Zones

Menampilkan semua zones

Hasilnya

Membuat zone baru

Menghapus zone

Melihat seluruh zone beserta konfigurasinya

Hasilnya

Hanya menampilkan konfigurasi satu zone, misalnya zone public.

Menampilan default zone

Hasil dari CentOS yang saya gunakan adalah trusted.

Mengganti default zone

Menampilkan zones yang aktif

Hasilnya

Zone yang aktif bisa lebih dari satu zone, setiap zone minimal ada satu interface jaringan.

Menambahkan interface pada zone

Mengubah interface pada zone

Menampilkan zone dari interface

Konfigurasi Services

Menampilkan nama services yang didukung oleh FirewallD

Hasilnya

Menampilkan services pada zone

Hasilnya

Menambahkan service pada zone

Tambahkan opsi –permanent agar service yang sudah ditambahkan tetap ada setelah reboot

Reload konfigurasi firewall setelah melakukan konfigurasi, tapi jika tanpa opsi –permanent konfigurasi itu akan hilang setelah reload.

Menghapus service

Jika nama services yang ingin dimasukkan pada zone tidak tersedia secara default, kita dapat menggunakan nomor port dari service tersebut atau membuat nama service baru.

File deskripsi services berada di direktori /usr/lib/firewalld/services/ dengan ektensi file xml.

Membuka isi file ssh.xml

Isinya

Membuat deskripsi service baru dengan mengcopy file service.xml yang sudah ada

Contoh isinya

Reload dan cek services

Konfigurasi Port

Menampilkan port pada satu zone

Menambahkan port dari protokol TCP atau UDP

Menambahkan range port

Menghapus port

Port Forwarding

Port Forwarding adalah mengalihkan koneksi dari satu port ke port lainnya, misalnya client mengakses port 80 kemudian diteruskan ke port 12345.

Forward port ke server lain

Aktifkan masquerade pada zone, lalu tambahkan rule forward.

Jika ingin menghapus masquerade ubah opsi –add-masquerade menjadi –remove-masquerade

Rich Rules

Rich Rules adalah rule firewall yang lebih luas tidak hanya memasukkan nama services saja tetapi juga IP address.

Menampilkan rich-rules

Izinkan koneksi jaringan dari IP 192.168.0.14

Tolak koneksi jaringan dari IP 192.168.1.10 pada port 22

Izinkan koneksi TCP dari IP 10.1.0.3 untuk mengakses port 80 yang kemudian diteruskan ke port 6532

Izinkan koneksi TCP pada port 80 yang diteruskan ke IP 172.31.4.2 port 8080 (Masquerade harus aktif pada zone)

Izinkan network 192.168.0.0/24 mengakses https

Tambahkan opsi –permanent agar rule tetap ada setelah reload dan reboot sistem. Jika ingin menghapus rich rule, ganti opsi –add-rich-rule menjadi –remove-rich-rule.

IP Set

IP Set adalah sekumpulan IP address yang digunakan sebagai source rule firewall.

Menampilkan IP Set

Membuat IP Set baru dengan nama blacklist

Menambah IP address pada IP Set blacklist

Menghapus IP address dari IP Set

Menampilkan info IP Set

Menampilkan IP address dari IP Set

IP Set yang sudah dibuat kemudian dimasukkan ke rule sebagai source

Menghapus IP Set

IP Set juga dapat berisi 2 atau lebih network yang berbeda

selamat mencoba 🙂

Seorang penggiat teknologi digital yang saat ini fokus menggeluti profesi system administrator dengan sistem operasi Linux dan FreeBSD. Anda membutuhkan jasa sysadmin, silakan hubungi melalui email hai[at]musaamin.web.id, Telegram @musaamin, dan WhatsApp 081354302717.