Integrating AbuseIPDB with CSF

AbuseIPDB adalah layanan yang dibuat untuk membantu webmaster, administrator sistem, dan profesional TI dalam melawan hackers, spammers, dan aktivitas abuse lainnya di internet. Layanan ini memungkinkan Anda untuk melaporkan alamat IP yang terlibat dalam aktivitas yang mengganggu server dan jaringan.

AbuseIPDB juga menyediakan API gratis yang bisa diintegrasikan dengan layanan firewall seperti CSF dan Fail2Ban untuk mendapatkan daftar blacklist IP serta dapat digunakan untuk melaporkan IP secara otomatis.

Prequites

Install ConfigServer Security & Firewall (CSF) di server Anda.

Kemudian buat AbuseIPDB API key melalui https://www.abuseipdb.com/account/api. Jika belum memiliki akun, Anda bisa register terlebih dahulu.

create api key

Integrating our Blacklist

Edit file /etc/csf/csf.blocklists dan tambahkan baris berikut.

# AbuseIPDB blacklist
# Details: https://docs.abuseipdb.com/#blacklist-endpoint
ABUSEIPDB|86400|10000|https://api.abuseipdb.com/api/v2/blacklist?key=YOUR_API_KEY&plaintext

Penjelasan:

  • ABUSEIPDB: Merupakan nama penyedia IP blacklist.
  • 86400: Interval dalam detik saat daftar blacklist diperbarui.
  • 10000: Jumlah IP yang akan diambil dari daftar blacklist.

Selanjutnya restart CSF+LFD untuk menerapkan perubahan.

csf -ra

Cek file log untuk memastikan blocklist berhasil ditambahkan.

# cat /var/log/lfd.log
Jun 20 18:34:30 testbed lfd[9475]: Retrieved and blocking blocklist ABUSEIPDB IP address ranges
Jun 20 18:34:30 testbed lfd[9475]: IPSET: loading set new_ABUSEIPDB with 9999 entries
Jun 20 18:34:30 testbed lfd[9475]: IPSET: switching set new_ABUSEIPDB to bl_ABUSEIPDB

Reporting to AbuseIPDB

Buat file /usr/local/csf/bin/abuseipdb_block.sh kemudian tambahkan script untuk report ke AbuseIPDB.

#!/usr/bin/sh

# Set your AbuseIPDB API key here.
key="f4635bfa5be867bcd3543064934716df3506bf8dbfe9daaedd896331b465851f0e3049daa6add6d2"

# Choose the appropriate AbuseIPDB category ID depending on what LFD is scanning.
# https://www.abuseipdb.com/categories
categories="18,22"

# Rename arguments for readability.
ports=$2
inOut=$3
message=$6
logs=$7
trigger=$8

# Concatenate details to form a useful AbuseIPDB comment.
comment="${message}; Ports: ${ports}; Direction: ${inOut}; Trigger: ${trigger}; Logs: ${logs}"

curl https://api.abuseipdb.com/api/v2/report \
  --data-urlencode "ip=$1" \
  -d categories=$categories \
  --data-urlencode "comment=$comment" \
  -H "Key: $key" \
  -H "Accept: application/json"

Kemudian beri permission supaya script dapat dieksekusi.

chmod 700 /usr/local/csf/bin/abuseipdb_block.sh

Selanjutnya edit file /etc/csf/csf.conf lalu sesuaikan BLOCK_REPORT dengan path script.

BLOCK_REPORT = "/usr/local/csf/bin/abuseipdb_block.sh"

Restart CSF+LFD untuk menerapkan perubahan.

csf -ra

Referensi: