Was ist Shorewall?

Man kann mit shorewall einfach netfilter, aus dem Linux-Kernel, nutzen. Shorewall an sich keine Firewall. Es werden iptables-Regeln generiert.

Backlisten von Spamhaus und DShield nutzen

Spamhaus und DShield veröffentlichen Blacklisten mit IP-Blöcken, welche von Spammern und Cyberkriminellen verwendet werden. Mit dem folgenden Skript kann man sie sehr einfach in shorewall als statische Blacklist nutzen.

#!/bin/sh

cat << EOF > /tmp/blrules
#ACTION         SOURCE                  DEST                    PROTO   DEST
#                                                                       PORTS(S)
EOF

wget -q -O - http://feeds.dshield.org/block.txt      | awk --posix '/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.0/          { print "DROP    net:" $1 "/24    all";}' >> /tmp/blrules
wget -q -O - https://www.spamhaus.org/drop/drop.txt  | awk --posix '/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/ { print "DROP    net:" $1 "    all";}' >> /tmp/blrules
wget -q -O - https://www.spamhaus.org/drop/edrop.txt | awk --posix '/^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}/ { print "DROP    net:" $1 "    all";}' >> /tmp/blrules
mv /tmp/blrules /etc/shorewall/blrules

/sbin/shorewall refresh

In der /etc/shorewall/shorewall.conf muss BLACKLIST_DISPOSITION auf DROP stehen. Bei Ubuntu 16.04 ist das nach der Installation von shorewall schon der Fall.

Achtung!

Man muss auf jeden Fall das Skript beim ersten mal ohne /sbin/shorewall refresh testen. Wenn ich eine neue Konfiguration für shorewall teste, dann gehe ich wie folgt vor:

shorewall check
shorewall try /etc/shorewall/ 30s