Easy Debian iptables Firewall Script

Ein einfaches und übersichtliches iptables Firewall Script.
Ich habe das von gargi.org stammende Script für meine Zwecke etwas erweitert.

  • Erlaubte Ports eingehend nur von bestimmten IP Sourcen (Ranges)
  • GeoIP (Country) Blocking mithilfe des <ipset> Paketes, und den IP Listen von http://www.ipdeny.com/ipblocks/

Die Installation des Scriptes wird im Scriptinhalt auch beschrieben, und ist mit wenigen Befehlen abgeschlossen. Der Inhalt des Firewall Script ist hier zu finden.

Installation des Easy Debian iptables Firewall Scripts:  (Download, Rechte setzen, Daemon aktivieren, Alias Befehle eintragen, Bash Aliases neuladen)

wget https://www.flurweg.net/linux/debian/tips/firewall.txt -O /etc/init.d/firewall
chmod +x /etc/init.d/firewall
update-rc.d firewall defaults
echo "alias fw='/etc/init.d/firewall'" >> /root/.bashrc
echo "alias fwe='nano /etc/init.d/firewall'" >> /root/.bashrc
ReloadAliases   . /root/.bashrc

Der Konfigurationsblock im Script: (selbsterklärend)

#*******************************************************************************************************
# Ping
IN_ALLOWED_ICMP="yes"
OUT_ALLOWED_ICMP="yes"

# Ports inbound
IN_ALLOWED_TCP="21 22 25 80"
IN_ALLOWED_UDP=""

# Ports outbound
OUT_ALLOWED_TCP="21 22 25 53 80 1024:1033"
OUT_ALLOWED_UDP="53 123"

# Ports inbound from IP-Range
IN_ALLOWED_TCP_RANGE=(
"110 192.168.0.1/24"
"110 192.168.32.0/28"
#"443 194.108.32.0/28"
#"8080 192.168.0.1/24"
)

# Country blocking | Required: ipset | see available lists: http://www.ipdeny.com/ipblocks/
#IN_BLOCK_COUNTRYS="cn ru"
#*******************************************************************************************************

 

GeoIP/Country Blocking

Vorraussetzung dafür ist das ipset Paket:

apt-get install ipset

Um Country Blockierung im Script zu aktivieren muss das “#” vor der Zeile IP_BLOCK_COUNTRY entfernt und die gewünschten Länder Kurzzeichen eintragen werden.

Vorab muss die ipset Liste noch heruntergeladen und erstellt werden, das geschieht mit folgendem Befehl:

fw cu

Bei einem Systemneustart sind die GeoIP Einträge verloren, ein automatisches generieren bei Systemstart kann mit einfügen der folgenden Zeilen in /etc/rc.local erreicht werden:

#Firewall Geoblocking
/etc/init.d/firewall cu
/etc/init.d/firewall reload

Nach Anpassung der Regeln bzw. des Scriptes ist (immer!) ein Reload notwendig:

fw reload

2016-01-08 15_27_14-192.168.0.145 - KiTTY

 

Aktive Regeln anzeigen per (Normaler Befehl | Alias Befehl | iptables):

/etc/init.d/firewall rules
fw rules
iptables -L

2016-01-08 15_29_13-192.168.0.145 - KiTTY

Viel Spass beim blockieren 🙂

Schreibe einen Kommentar