Introduzione:
Mi capita di avere degli attacchi provenienti da host specifici che ho deciso di bloccare l'accesso al server. Ecco come l'ho fatto utilizzando uno script che elimina e ricarica una CATENA iptables completa basata su un file contenente un elenco di IP/Range.
PASSAGGI:
Crea un file chiamato blacklist.txt con un IP/Range per riga nella stessa directory dello script.
es.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 da eseguire all'avvio#!/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
Nota: iptables si lamenterà dei seguenti errori. Non preoccuparti, farà comunque il suo dovere.iptables: Too many links.
iptables: Chain already exists.