Intro:
Kebetulan saya mendapat serangan yang datang dari host tertentu yang saya putuskan untuk memblokir akses ke server. Inilah cara saya melakukannya menggunakan skrip yang menghapus dan memuat ulang RANTAI iptables lengkap berdasarkan file yang berisi daftar IP/Rentang.
LANGKAH:
Buat file bernama blacklist.txt dengan satu IP/Range per baris dalam direktori yang sama dengan skrip.
mis.14.141.107.206
23.180.0.0/14
37.59.34.120
46.140.157.157
46.218.35.59
47.74.0.40
51.15.56.170
59.62.0.0/15
59.63.188.3
61.177.172.60
Script untuk dijalankan pada saat boot#!/bin/bash
# Tiny firewall protecting rpcbind (port 111)
scriptdir=$(dirname $(readlink -f $0))
blacklist="$scriptdir/blacklist.txt"
# Load the blacklists
HOSTS="$(cat $blacklist | egrep -v '^$|#')"
# Delete the existing custom chain
/sbin/iptables --flush BLACKLIST
/sbin/iptables -X BLACKLIST
/sbin/iptables -t filter -D INPUT -j BLACKLIST
# Create the BLACKLIST Chain and jump
/sbin/iptables -N BLACKLIST
/sbin/iptables -t filter -I INPUT -j BLACKLIST
# Fill-in the BLACKLIST Chain with rejected hosts list
for host in $HOSTS ; do
/sbin/iptables -A BLACKLIST -s $host -p tcp -j DROP
done
# Return from Blacklist
/sbin/iptables -A BLACKLIST -j RETURN
#eof
Catatan: iptables akan mengeluh dengan kesalahan berikut. Tidak perlu khawatir, ini akan tetap berfungsi sebagaimana mestinya.iptables: Too many links.
iptables: Chain already exists.