Email Anda tiba-tiba ditolak server tujuan, atau layanan online tertentu memblokir akses dari IP Anda? Kemungkinan besar IP address Anda masuk blacklist. IP blacklist — atau secara teknis disebut DNSBL (DNS-based Blackhole List) — adalah database yang mencatat IP address yang pernah digunakan untuk spam, malware, atau aktivitas berbahaya. Server email dan layanan online di seluruh dunia menggunakan daftar ini sebagai filter otomatis. Memahami cara kerja blacklist dan cara mengatasinya adalah pengetahuan penting bagi siapapun yang mengelola server atau domain email.
Apa itu IP Blacklist dan DNSBL?
DNSBL (DNS-based Blackhole List) adalah database IP address yang dikenal sebagai sumber spam, malware, atau aktivitas berbahaya. Cara kerjanya memanfaatkan sistem DNS — ketika server email menerima pesan, ia melakukan DNS query ke database DNSBL untuk mengecek apakah IP pengirim terdaftar sebagai sumber masalah. Jika IP ditemukan di blacklist, email ditolak otomatis atau dikirim ke folder spam.
Ada puluhan database blacklist yang dioperasikan oleh organisasi berbeda, masing-masing dengan kriteria dan prosedur yang berbeda. Blacklist paling berpengaruh antara lain: Spamhaus ZEN, SpamCop, SORBS, Barracuda, CBL (Composite Blocking List), dan PSBL (Passive Spam Block List).
Penyebab IP Masuk Blacklist
Ada beberapa skenario yang bisa menyebabkan IP address Anda masuk ke daftar blacklist. Memahami penyebabnya penting agar Anda bisa mengatasi masalah dari akar dan mencegah terulang kembali:
Penyebab paling umum. Server yang mengirim email massal tanpa opt-in yang jelas, atau mengirim ke alamat email tidak valid dalam jumlah besar, akan dilaporkan oleh penerima dan otomatis masuk blacklist.
Jika server atau komputer Anda terinfeksi malware, ia bisa digunakan sebagai bagian dari botnet untuk mengirim spam tanpa sepengetahuan Anda. IP Anda akan masuk blacklist meskipun Anda tidak sengaja mengirim spam.
Mail server dengan konfigurasi "open relay" memungkinkan siapapun menggunakannya untuk mengirim email — termasuk spammer. Server seperti ini hampir pasti akan masuk blacklist dalam waktu singkat.
Pengguna ISP dengan CGNAT berbagi satu IP publik dengan banyak pelanggan lain. Jika satu pengguna lain di CGNAT yang sama mengirim spam, IP yang dibagikan tersebut bisa masuk blacklist — meskipun Anda tidak melakukan apa-apa.
IP address dinamis dari ISP bisa saja pernah digunakan oleh pelanggan lain sebelumnya yang sudah masuk blacklist. Ketika IP tersebut dialokasikan ulang ke Anda, reputasi buruk dari pemilik sebelumnya ikut terbawa.
IP yang terdeteksi melakukan port scanning masif atau terlibat dalam serangan DDoS juga bisa masuk blacklist tertentu, terutama blacklist yang fokus pada keamanan jaringan.
Cara Kerja Blacklist Check
Ketika Anda melakukan blacklist check di CekIPSaya, berikut proses yang terjadi di balik layar untuk memeriksa status IP Anda di semua database blacklist:
Masukkan IP yang ingin dicek
IP Anda atau IP server
IP dibalik untuk DNS query
1.2.3.4 → 4.3.2.1.dnsbl
Cek Spamhaus, SpamCop, SORBS…
Query paralel ke semua database
Listed / Not Listed per DNSBL
Tampil lengkap dengan status
Dampak IP Masuk Blacklist
Dampak IP masuk blacklist bervariasi tergantung blacklist mana yang mencatat IP Anda dan seberapa luas penggunaannya. Berikut dampak umum yang bisa terjadi:
- Email ditolak (bounce) — server tujuan menolak email dari IP Anda dengan kode error 550 atau 421
- Email masuk folder spam — bahkan jika tidak ditolak, email lebih sering dianggap spam
- Reputasi domain email turun — domain yang berasosiasi dengan IP blacklist mendapat reputasi buruk
- Akses layanan online diblokir — beberapa layanan memblokir request dari IP yang ada di blacklist
- CAPTCHA berlebihan — Google dan layanan lain menampilkan CAPTCHA lebih sering untuk IP dengan reputasi buruk
- Rate limiting ketat — beberapa API dan layanan membatasi request dari IP blacklist
Studi Kasus: Email Server Tiba-tiba Ditolak Gmail
Cara Cek Apakah IP Anda Masuk Blacklist
Langkah pertama sebelum melakukan delist adalah memastikan IP Anda benar-benar masuk blacklist dan mengetahui blacklist mana yang mencatatnya. Ada dua cara untuk melakukan pengecekan:
Cara Delist IP dari Blacklist — Per Provider
Setiap provider blacklist memiliki prosedur delist yang berbeda. Sebelum mengajukan delist, pastikan masalah akar sudah diselesaikan — jika Anda delist tanpa memperbaiki masalah, IP Anda akan masuk blacklist lagi dalam waktu singkat.
Cara Mencegah IP Masuk Blacklist
Mencegah jauh lebih mudah daripada memperbaiki reputasi IP yang sudah masuk blacklist. Berikut langkah-langkah preventif yang bisa diterapkan:
Diagnostic CLI — Query DNSBL Manual (Engineer Workflow)
Untuk teknisi tingkat menengah ke atas, mengandalkan tool web saja tidak cukup — Anda perlu cara scriptable untuk audit batch (mis. seluruh pool IP edge gateway, IP outbound LB, atau IP di-NAT setiap PoP). Format query DNSBL adalah reverse-octet IP + zona DNSBL. Resolver mengembalikan A record 127.0.0.x jika listed, atau NXDOMAIN jika clean. Setiap zona punya kode return berbeda — baca interpretasi-nya di dokumentasi masing-masing (mis. 127.0.0.4 di Spamhaus = CSS, 127.0.0.10 = PBL).
# Reverse octet IP: 203.0.113.45 → 45.113.0.203
IP=203.0.113.45
REV=$(echo $IP | awk -F. '{print $4"."$3"."$2"."$1}')
# Query ke ZEN (gabungan semua list Spamhaus)
dig +short $REV.zen.spamhaus.org A
# Output: 127.0.0.X → listed (cek mapping kode)
# Output kosong → clean
# Cek alasan listing
dig +short $REV.zen.spamhaus.org TXT
# Output: "https://www.spamhaus.org/query/ip/$IP"
#!/bin/bash
IP=${1:-203.0.113.45}
REV=$(echo $IP | awk -F. '{print $4"."$3"."$2"."$1}')
DNSBL=(
zen.spamhaus.org
bl.spamcop.net
cbl.abuseat.org
b.barracudacentral.org
psbl.surriel.com
dnsbl.sorbs.net
spam.dnsbl.sorbs.net
ix.dnsbl.manitu.net
combined.rbl.msrbl.net
truncate.gbudb.net
dnsbl-1.uceprotect.net
bl.mailspike.net
)
for LIST in "${DNSBL[@]}"; do
RESULT=$(dig +short +time=2 +tries=1 "$REV.$LIST" A 2>/dev/null)
if [ -n "$RESULT" ]; then
printf '\033[31m[LISTED]\033[0m %s → %s\n' "$LIST" "$RESULT"
else
printf '\033[32m[CLEAN ]\033[0m %s\n' "$LIST"
fi
done
0 6 * * * dan kirim alert ke Slack/Teams jika ada listed. Untuk monitoring banyak IP, parallelize dengan xargs -P atau GNU parallel.127.0.0.2 = SBL (manual listing), 127.0.0.3 = SBL CSS (compromised IPs), 127.0.0.4–7 = XBL (exploit/botnet), 127.0.0.9 = SBL DROP, 127.0.0.10–11 = PBL (policy block — IP residensial). Investigasi pertama Anda: cek kode → tentukan kategori → arahkan remediation yang tepat.Forensik Insiden — Identifikasi Sumber Spam di Mail Server
Begitu IP listed dan Anda yakin server Anda sumber masalahnya, jangan langsung restart atau hapus log — itu menghancurkan bukti forensik. Ikuti workflow berurutan: (1) freeze queue, (2) identifikasi sumber, (3) containment, (4) eradication, (5) recovery. Workflow di bawah berbasis Postfix (paling umum); adaptasi untuk Exim/Sendmail di catatan.
# Lihat antrian — banyak email asing = indikator compromise
postqueue -p | tail -n 5
# Freeze semua: hold queue (jangan delete, untuk forensik)
postsuper -h ALL
# Hitung per sender — siapa pengirim terbanyak?
mailq | awk 'NR>2 && /^[A-F0-9]/ {getline; print $NF}' \
| sort | uniq -c | sort -rn | head -20
# Hitung per domain tujuan (spam target indicator)
mailq | awk '/^[[:space:]]+[A-Za-z]/ {print $1}' \
| awk -F@ '{print $2}' | sort | uniq -c | sort -rn | head
exim -bp (queue), exim -Mvh ID (header). Untuk Sendmail: mailq + /var/spool/mqueue/.# Cari sender yang paling banyak mengirim 24 jam terakhir
zgrep -h 'sasl_username' /var/log/maillog* \
| awk -F'sasl_username=' '{print $2}' | awk '{print $1}' \
| sort | uniq -c | sort -rn | head
# Identifikasi script PHP yang trigger sendmail (compromised CMS)
grep 'sendmail' /var/log/maillog | grep -oE '/[a-zA-Z0-9/_.-]+\.php' \
| sort | uniq -c | sort -rn | head
# Cek user shell yang menjalankan PHP/script — dari /var/log/messages
grep -E 'php|cron' /var/log/messages | grep -i 'mail\|smtp' | tail -50
# Audit web access log: spike POST request ke /upload, /admin, /xmlrpc
awk '$9~/^2/ && $6~/POST/' /var/log/nginx/access.log \
| awk '{print $7}' | sort | uniq -c | sort -rn | head
# Containment: matikan port 25 outbound dari user/IP tertentu
sudo iptables -I OUTPUT -m owner --uid-owner www-data \
-p tcp --dport 25 -j DROP
# Cabut credential semua user mail (paksa reset)
doveadm pw -s SHA512-CRYPT -p $(openssl rand -hex 16) > /tmp/lockout.txt
# (lalu inject ke userdb / SQL auth)
# Cari file PHP dimodifikasi 7 hari terakhir di webroot
find /var/www -name '*.php' -mtime -7 -ls | tee /tmp/suspect.txt
# Cari backdoor signature umum
grep -rEl 'eval\(base64_decode|gzinflate\(base64_decode|str_rot13' /var/www
# Cek crontab user web — backdoor sering pakai cron persistence
for U in www-data nginx apache; do
echo "=== $U ==="; crontab -u $U -l 2>/dev/null
done
postsuper -d ALL sebelum forensik selesai — Anda menghapus bukti vektor serangan. Jika butuh keluarkan email legit yang ter-hold, gunakan filter selektif: mailq | awk '/legit-domain/ {print \$1}' | xargs -n1 postsuper -H.Email Authentication Deep Dive — SPF, DKIM, DMARC, MTA-STS, BIMI
Konfigurasi email auth yang benar adalah pertahanan tier-1 melawan IP listing. Server email modern (Gmail, Microsoft 365, Yahoo) memberi bobot reputasi berbeda untuk pesan yang lulus alignment SPF+DKIM+DMARC vs yang lulus salah satu saja. Sejak 2024 (kebijakan Gmail/Yahoo bulk sender), domain pengirim ≥5.000 email/hari wajib punya DMARC. Berikut spesifikasi lengkap untuk engineer.
SPF — Sender Policy Framework
SPF mendefinisikan IP/host mana yang diizinkan mengirim email atas nama domain Anda. Hard-rule: maksimum 10 DNS lookup dalam evaluasi SPF — lebih dari itu = SPF PermError → pesan ditolak. Hindari include: chain yang dalam (mis. include:_spf.google.com sudah 4 lookup).
domain.com. IN TXT "v=spf1 ip4:203.0.113.0/28 include:_spf.google.com include:mailgun.org -all"
# Dissection:
# v=spf1 → versi SPF
# ip4:203.0.113.0/28 → 16 IP edge MX outbound (langsung, tidak konsumsi lookup)
# include:_spf.google.com → relay via Google Workspace
# include:mailgun.org → relay via Mailgun
# -all → fail tegas (HARDFAIL) — di-reject di MTA
#
# ⚠ Hindari ~all (softfail) di production — banyak receiver treat sama dgn -all
# tapi attacker bisa lebih mudah menyamar. Pakai -all setelah confident.
www, api) yang TIDAK kirim email, set SPF kosong eksplisit: "v=spf1 -all" — mencegah backscatter spoofing.DKIM — DomainKeys Identified Mail
DKIM menambahkan signature kriptografis ke header email — receiver bisa verifikasi pesan tidak diubah dan benar dari domain pengirim. Best practice: RSA 2048-bit minimum, rotate key 6 bulan sekali dengan strategi dual-selector, dan signing semua header termasuk From, Subject, Date, To, Message-ID.
# Selector aktif (di-publish di setiap email outgoing)
selector1._domainkey.domain.com. IN TXT \
"v=DKIM1; k=rsa; t=s; p=MIIBIjANBgkqhkiG9w0BAQ...key-current...IDAQAB"
# Selector siap rotate (publish 30 hari sebelum cutover)
selector2._domainkey.domain.com. IN TXT \
"v=DKIM1; k=rsa; t=s; p=MIIBIjANBgkqhkiG9w0BAQ...key-next...IDAQAB"
# Rotation timeline:
# Day -30 : publish selector2, signing tetap pakai selector1
# Day 0 : MTA cutover ke selector2 (signing pakai key baru)
# Day +30 : selector1 di-revoke (publish 'p=' kosong = revocation)
# Day +60 : hapus selector1 record
# Tag t=s = strict (subdomain TIDAK boleh sign atas nama domain).
# Hilangkan t=s kalau subdomain butuh sign sendiri.
DMARC — Alignment, Policy Ramp, Aggregate Reports
DMARC mengikat SPF + DKIM dengan alignment domain (header From cocok dengan domain SPF/DKIM) lalu memberitahu receiver apa yang harus dilakukan kalau tidak align: monitor (none), kirim ke spam (quarantine), atau reject (reject). Deploy DMARC WAJIB ramping bertahap — langsung p=reject di domain yang aktif kirim email = email legit ikut hilang.
# Tahap 1 — Monitor (Week 1-4): collect data tanpa enforcement
_dmarc.domain.com. IN TXT \
"v=DMARC1; p=none; rua=mailto:[email protected]; ruf=mailto:[email protected]; sp=none; aspf=r; adkim=r; pct=100; fo=1"
# Tahap 2 — Quarantine 25% (Week 5-8): mulai enforcement parsial
_dmarc.domain.com. IN TXT \
"v=DMARC1; p=quarantine; rua=mailto:[email protected]; sp=quarantine; aspf=r; adkim=r; pct=25"
# Tahap 3 — Quarantine 100% → Reject (Week 9-12)
_dmarc.domain.com. IN TXT \
"v=DMARC1; p=reject; rua=mailto:[email protected]; sp=reject; aspf=s; adkim=s; pct=100; fo=1"
# Tag dissection:
# p / sp : policy untuk org-domain / subdomain
# aspf / adkim r=relaxed (subdomain match OK), s=strict (exact match)
# pct : persentase pesan yang di-enforce (ramp gradually)
# fo=1 : kirim forensic report kalau salah satu SPF/DKIM gagal
# rua / ruf : aggregate / forensic report endpoint
parsedmarc) untuk identify legit sender yang belum di-whitelist sebelum eskalasi ke reject.MTA-STS, TLS-RPT, BIMI — Lapisan Transport & Visual
MTA-STS memaksa semua incoming SMTP ke domain Anda lewat TLS (memitigasi downgrade attack). TLS-RPT kirim laporan kalau ada gagal TLS. BIMI menampilkan logo brand Anda di inbox Gmail/Yahoo (butuh DMARC p=quarantine/reject + VMC certificate).
# DNS TXT pointer
_mta-sts.domain.com. IN TXT "v=STSv1; id=20260429T1430"
# DNS TXT untuk TLS-RPT
_smtp._tls.domain.com. IN TXT "v=TLSRPTv1; rua=mailto:[email protected]"
# Policy file di https://mta-sts.domain.com/.well-known/mta-sts.txt
version: STSv1
mode: enforce
mx: mx1.domain.com
mx: mx2.domain.com
max_age: 86400
# id WAJIB di-bump setiap update policy (mis. timestamp YYYYMMDDTHHMM)
testing dulu 2-4 minggu sebelum enforce — TLS-RPT laporan akan menunjukkan apakah ada MX yang gagal handshake.r) membolehkan subdomain match (mail.domain.com sign untuk From [email protected] = pass). Strict (s) butuh exact match. Default r aman; gunakan s hanya kalau Anda kontrol penuh semua subdomain pengirim.Postmaster Tools & Reputation Monitoring
Blacklist DNSBL adalah indikator publik & lagging — saat Anda lihat IP listed, reputasi sudah dikenali receiver mainstream sejak hari sebelumnya. Reputation tools dari mailbox provider memberi sinyal internal & realtime (delivery rate, spam complaint rate, IP reputation score). Ini wajib di-instrument untuk operasional skala produksi.
IP Warming Protocol — Setelah Delist atau Provisi IP Baru
IP yang baru dialokasikan (atau baru di-delist setelah inkiden) belum punya sejarah di mata receiver — kirim 100k email langsung di hari-1 = throttling otomatis atau langsung re-listed. IP warming adalah ramp volume bertahap supaya receiver belajar pola Anda dan membangun reputasi positif. Biasanya 4-6 minggu untuk IP baru, 2-3 minggu untuk IP post-delist.
Best Practices Lanjutan — Tier Engineering
Setelah email auth + warming established, ini lapisan pengetatan untuk operasional matang yang sering jadi pembeda inbox vs spam folder di kasus marginal:
- PTR (Reverse DNS) match HELO/EHLO — tiap IP pengirim wajib punya PTR yang resolve forward kembali ke IP itu. Mismatch = banyak receiver auto-reject. Contoh:
mx1.domain.com → 203.0.113.10dan10.113.0.203.in-addr.arpa → mx1.domain.com. - Feedback Loop (FBL) — daftarkan domain Anda di FBL setiap mailbox provider (Yahoo, AOL, Comcast). Receiver kirim notifikasi tiap user mark spam → Anda bisa suppress recipient itu otomatis di list.
- List hygiene wajib — bounce hard (5xx) langsung suppress permanen. Bounce soft (4xx) > 5x berturut = suppress. Complaint dari FBL = suppress permanen + investigasi.
- Pisahkan stream transactional vs marketing — gunakan IP/sub-domain berbeda. Transaksi (password reset, order receipt) butuh deliverability tertinggi; marketing punya complaint rate lebih tinggi yang tidak boleh "racuni" reputasi transactional.
- Sub-domain strategy — gunakan
mail.domain.comuntuk marketing,txn.domain.comuntuk transactional,notify.domain.comuntuk notifikasi sistem. Reputation dipisah otomatis di tingkat domain. - Hindari rotating IP pool besar — ekspektasi receiver: 1 domain pengirim = pool IP konsisten kecil. Rotasi besar = signal botnet. Gunakan ESP yang manage stream secara konsisten (mis. SendGrid dedicated IP).
- Monitor blocklist eskalasi — di luar Spamhaus, monitor juga: Cloudmark CSI, ProofPoint, Cisco Talos. Listing di salah satu = leading indicator sebelum Spamhaus.
- Kontrak SLA dengan ESP — kalau pakai third-party (Mailgun, SES, SendGrid), pastikan SLA termasuk: dedicated IP option, FBL access, DKIM key custom (bukan shared), dan abuse desk responsive <24 jam.
- Implementasi outbound rate-limiting — di MTA edge: 50–100 connection/menit ke 1 receiver, jangan burst. Postfix:
smtp_destination_rate_delay,smtp_destination_concurrency_limit. - Audit konfigurasi 90-hari sekali — DNS bisa berubah karena migrasi DNS provider, key DKIM bisa expire/lupa rotate, MTA-STS policy bisa stale. Re-audit rutin = sebagian besar incident dicegah.
FAQ — Pertanyaan yang Sering Ditanyakan
Kesimpulan
IP masuk blacklist bisa terjadi karena berbagai sebab — mulai dari pengiriman spam, infeksi malware, hingga berbagi IP via CGNAT dengan pengguna lain yang bermasalah. Langkah pertama selalu: cek status blacklist IP Anda di Blacklist Check CekIPSaya. Jika IP Anda masuk blacklist, ikuti prosedur delist di masing-masing provider. Untuk pencegahan jangka panjang, pastikan server Anda bersih dari malware dan konfigurasi email sudah benar dengan SPF, DKIM, dan DMARC.