Intro:
Ich habe zufällig einige Angriffe von bestimmten Hosts, die ich entschieden habe, den Zugriff auf den Server zu blockieren. So habe ich es mit einem Skript gemacht, das eine vollständige iptables-KETTE löscht und neu lädt, basierend auf einer Datei, die eine Liste von IPs/Ranges enthält.
SCHRITTE:
Erstellen Sie eine Datei namens blacklist.txt mit einer IP/einem IP-Bereich pro Zeile im selben Verzeichnis wie das Skript.
zB.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
Skript zum Ausführen beim Booten#!/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
Hinweis: iptables wird sich mit den folgenden Fehlern beschweren. Keine Sorge, es wird immer noch den richtigen Job machen.iptables: Too many links.
iptables: Chain already exists.