Die letzten Meldungen

Wartungsankündigung für die FAU Zeiterfassung am 03.03.2017

28. Februar 2017

Wartungsankündigung für die FAU Zeiterfassung
Weiterlesen...

Wartung der FAUbox

28. Februar 2017

Am Mittwoch, 01.03.2017 wird die Online-Dokumentenbearbeitung der FAUbox auf ein neues Release upgedatet. Diese Funktionalität wird also am Mittwoch für ca. eine Stunde ausfallen.
Weiterlesen...

Wartungsankündigung für MSSQL-Datenbankserver zuvdb33

24. Februar 2017

Aufgrund einer Datenbankwartung wird die Kunden-Instanz des MSSQL-Datenbankservers zuvdb33.zuv.uni-erlangen.de am 28.02.2017 ab 15:00 Uhr nicht erreichbar sein.
Weiterlesen...

Meldungen nach Thema

 

Firewall mit iptables

Allgemeines

Seit Kernel-Version 2.4 beinhaltet jeder Linux-Kernel ein Firewall-Konzept namens Externer Link:  IPTables/Netfilter. Auch ältere Linux-Kernel hatten schon eingebaute Firewalls (ipfwadm in v2.0, ipchains in v2.2), IPTables ist jedoch die erste Version, die das sogenannte "Stateful inspection" beherrscht.

Stateful inspection

Die Firewalls in alten Kernelversionen (<=2.2) arbeiteten als sogenannte Paketfilter: Einzelne Netzwerk-Pakete konnten nach bestimmten Kriterien aussortiert werden.

Mit Stateful inspection ist es ab Kernel-Version 2.4.x nicht mehr nur möglich einzelne Pakete zu filtern, sondern man kann jetzt ganze Ströme relativ einfach analysieren und/oder blocken.

Optionen von iptables

Nur die wichtigsten:

-i	Interface (Paketeingang)
-o	Interface (Paketausgang)
-p	Protokoll [tcp,udp,icmp]
-s	Quell-Rechner/Netz
-d	Ziel-Rechner/Netz
-j	Reaktion, falls Paket den Filterregeln entspricht

TCP/UDP:
--sport Quell-Port 
--dport Ziel-Port
	

Mögliche Targets (-j):

DROP		Paket wird kommentarlos verworfen
REJECT		Paket wird verworfen, Absender wird aber informiert
LOG		Paket wird protokolliert (aber nicht gelöscht)
ACCEPT		Paket darf passieren
	

Ausführlichere Dokumentation findet man auf der Externer Link:  netfilter Homepage.

Probleme

Probleme beim Aufbau einer Firewall bereiten vor allem ältere Protokolle, wie

  • FTP
  • Portmap/NFS/YP
  • IRC

Während sich die Problematik mit FTP seit der Einführung von iptables gelegt hat, machen die Portmap-basierten Dienste wie NFS oder YP nach wie vor die Konfiguration einer sicheren Firewall problematisch.

FTP

Für die Probleme, die aus dem 2-Port Protokoll von FTP resultieren, schafft ein Kernel-Modul Abhilfe. Dieses observiert den Verbindungsaufbau einer FTP-Verbindung auf Protokoll-Ebene, und erkennt den Rückkanal automatisch.


/sbin/modprobe ip_conntrack_ftp
	

Konfigurationen für diverse Dienste

HTTP/HTTPS

/usr/sbin/iptables -A myfilter -m state --state NEW -i $DEV -p tcp --dport 80 -j ACCEPT
/usr/sbin/iptables -A myfilter -m state --state NEW -i $DEV -p tcp --dport 443 -j ACCEPT
	

SSH

/usr/sbin/iptables -A myfilter -m state --state NEW -i $DEV -p tcp --dport 22 -j ACCEPT
	

Nur Sachen die wir kennen ...

Die folgenden Zeilen findet man oft in iptables-Skripten. Sie sorgen schlichtweg dafür, daß nach einem gelungenen Verbindungsaufbau auch alle folgenden, zu dieser Verbindung gehörigen Pakete die Fireall passieren dürfen.


/usr/sbin/iptables -A myfilter -m state --state NEW,INVALID -i $DEV -j DROP
/usr/sbin/iptables -A myfilter -m state --state NEW -i ! $DEV -j ACCEPT
/usr/sbin/iptables -A myfilter -m state --state ESTABLISHED,RELATED -j ACCEPT
/usr/sbin/iptables -A myfilter -j DROP
	

Energie!

Bisher haben wir nur einen eigenen Filter definiert, der jedoch bislang nicht verwendet wird. Dafür sorgen erst diese Zeilen:

/usr/sbin/iptables -A FORWARD -j myfilter
/usr/sbin/iptables -A INPUT -j myfilter
	

Darin wird festgelegt, daß alle Pakete, die INPUT oder FORWARD passieren, an unseren Filter weitergereicht werden.

Einfaches Beispiel für Dialin-Rechner

Die Einstellungen sind so gewählt, daß der Benutzer möglichst wenig von der Firewall bemerkt, und doch gleichzeitig einen möglichst großen Schutz genießt. Der Rechner ist mit dieser Konfiguration nur per SSH (Port 22) von außen zu erreichen.

/etc/ppp/ip-up.local:


#!/bin/sh

#
# evaluate command line options
#
DEV=$1
DEVDUMMY=$2
SPEED=$3
LOCALIP=$4
REMOTEIP=$5
IPPARAM=$6

#
# default deny action: DROP
# (alternative: REJECT)
#
DROP=DROP

#
# some nice modules
#
/sbin/modprobe ipt_tcpmss
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

#
# masquerading
#
/usr/sbin/iptables -t nat -A POSTROUTING -o $DEV -j MASQUERADE

#
# create new table that logs and drops
#
/usr/sbin/iptables -N droplog
/usr/sbin/iptables -A droplog -j LOG
/usr/sbin/iptables -A droplog -j $DROP

#
# create my own filter queue
#
/usr/sbin/iptables -N myfilter

#
# allow SSH from everywhere
#
/usr/sbin/iptables -A myfilter -m state --state NEW -i $DEV -p tcp --dport 22 -j ACCEPT

#
# REJECT ident requests - DROP causes long delays
#
/usr/sbin/iptables -A myfilter -m state --state NEW -i $DEV -p tcp --dport 113 -j REJECT 

#
# by default: drop+log everything we don't want or know
#
/usr/sbin/iptables -A myfilter -m state --state NEW,INVALID -i $DEV -j droplog
/usr/sbin/iptables -A myfilter -m state --state NEW -i ! $DEV -j ACCEPT
/usr/sbin/iptables -A myfilter -m state --state ESTABLISHED,RELATED -j ACCEPT
/usr/sbin/iptables -A myfilter -j droplog

#
# send all packages from INPUT and FORWARD
# queue through my filter
#
/usr/sbin/iptables -A FORWARD -j myfilter
/usr/sbin/iptables -A INPUT -j myfilter

#
# set name on dialin dyndns.org
#
#/sbin/ddup --host linuxadmin.dyndns.org &
	

/etc/ppp/ip-down.local:

#!/bin/sh
/usr/sbin/iptables -F
/usr/sbin/iptables -F PREROUTING -t nat
/usr/sbin/iptables -X myfilter
/usr/sbin/iptables -X droplog
	

Letzte Änderung: 13. Maerz 2012, Historie

zum Seitenanfang

Startseite | Kontakt | Impressum

RRZE - Regionales RechenZentrum Erlangen, Martensstraße 1, D-91058 Erlangen | Tel.: +49 9131 8527031 | Fax: +49 9131 302941

Zielgruppennavigation

  1. Studierende
  2. Beschäftigte
  3. Einrichtungen
  4. IT-Beauftragte
  5. Presse & Öffentlichkeit