Skip to main content
  1. Posts/

Manajemen IPSet melalui Firewalld

·3 mins·
Table of Contents

IP sets pada firewalld berfungsi sebagai source (sumber) untuk memblokir atau mengizinkan sekumpulan alamat IP atau identifier tertentu, seperti:

  • IP Address
  • Port
  • Network
  • Interface (Iface)
  • MAC Address
  • Mark

Metode yang paling direkomendasikan adalah menggunakan IP sets yang dibuat untuk firewall direct rule.

Untuk melihat jenis IP sets yang didukung.

firewall-cmd --get-ipset-types

Konfigurasi IP Set
#

Membuat IP Set Baru
#

firewall-cmd --permanent --new-ipset=bad_ip --type=hash:ip

Membuat IP Set dari File XML
#

Buat file XML, misalnya bad_ip.xml:

<?xml version="1.0" encoding="utf-8"?>
<ipset type="hash:ip">
  <entry>192.168.0.2</entry>
  <entry>192.168.0.3</entry>
  <entry>192.168.0.4</entry>
</ipset>

Kemudian jalankan:

firewall-cmd --permanent --new-ipset-from-file=bad_ip.xml --name=bad_ip

Menampilkan Daftar IP Set
#

firewall-cmd --permanent --get-ipsets

Melihat Informasi IP Set
#

firewall-cmd --permanent --info-ipset=bad_ip

Menambahkan Entri ke IP Set
#

firewall-cmd --permanent --ipset=bad_ip --add-entry=192.168.0.2

Menambahkan banyak entri sekaligus dari file:

firewall-cmd --permanent --ipset=bad_ip --add-entries-from-file=iplist.txt

Menampilkan Entri dalam IP Set
#

firewall-cmd --permanent --ipset=bad_ip --get-entries

Menghapus Entri dari IP Set
#

firewall-cmd --permanent --ipset=bad_ip --remove-entry=192.168.0.2

Menghapus IP Set
#

firewall-cmd --permanent --delete-ipset=bad_ip

Menambahkan IPset ke Zone
#

Anda dapat menambahkan IPset sebagai source ke dalam sebuah zone. Semua lalu lintas dari IP yang tercantum di dalam IPset akan diperlakukan sesuai aturan zona tersebut.

Contoh: menambahkan bad_ip ke zone drop

firewall-cmd --permanent --zone=drop --add-source=ipset:bad_ip

Reload firewalld agar perubahan diterapkan:

firewall-cmd --reload

Menggunakan IPset dengan Direct Rule
#

Selain zona, IPset juga dapat digunakan dengan direct rule untuk kontrol yang lebih spesifik.

Contoh: memblokir semua koneksi masuk dari bad_ip:

firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -m set --match-set bad_ip src -j DROP

Reload firewalld:

firewall-cmd --reload

Example IPset types
#

Firewalld mendukung berbagai jenis IPset dengan kombinasi berbeda (IP, Network, Port, MAC, Iface, Mark). Berikut beberapa contoh penggunaannya:

hash:ip
#

Menyimpan daftar alamat IP individu.

firewall-cmd --permanent --new-ipset=myipset --type=hash:ip
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.1.10

hash:ip,mark
#

Menyimpan pasangan IP dengan mark.

firewall-cmd --permanent --new-ipset=myipset --type=hash:ip,mark
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.1.10,RED

hash:ip,port
#

Menyimpan pasangan IP dengan port tertentu.

firewall-cmd --permanent --new-ipset=myipset --type=hash:ip,port
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.1.10,80

hash:ip,port,ip
#

Menyimpan kombinasi IP sumber, port, dan IP tujuan.

firewall-cmd --permanent --new-ipset=myipset --type=hash:ip,port,ip
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.1.10,80,192.168.2.20

hash:ip,port,net
#

Menyimpan kombinasi IP sumber, port, dan network tujuan.

firewall-cmd --permanent --new-ipset=myipset --type=hash:ip,port,net
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.1.10,80,192.168.2.0/24

hash:mac
#

Menyimpan daftar alamat MAC.

firewall-cmd --permanent --new-ipset=myipset --type=hash:mac
firewall-cmd --permanent --ipset=myipset --add-entry=00:11:22:33:44:55

hash:net
#

Menyimpan daftar network (subnet).

firewall-cmd --permanent --new-ipset=myipset --type=hash:net
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.0.0/24

hash:net,iface
#

Menyimpan pasangan network dan interface.

firewall-cmd --permanent --new-ipset=myipset --type=hash:net,iface
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.0.0/24,eth0

hash:net,net
#

Menyimpan pasangan antar network.

firewall-cmd --permanent --new-ipset=myipset --type=hash:net,net
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.0.0/24,10.0.0.0/8

hash:net,port
#

Menyimpan kombinasi network dengan port tertentu.

firewall-cmd --permanent --new-ipset=myipset --type=hash:net,port
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.0.0/24,80

hash:net,port,net
#

Menyimpan kombinasi network sumber, port, dan network tujuan.

firewall-cmd --permanent --new-ipset=myipset --type=hash:net,port,net
firewall-cmd --permanent --ipset=myipset --add-entry=192.168.0.0/24,80,10.0.0.0/8

Related