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