14.2 Host Zugriffskontrolle
14.2.1 iptables
'iptables' ist ein Packet filterndes Konfigurationsprogram für Linux 2.4 und darüber. Der 2.4 Kernel (2.4.5, um
genau zu sein) war zuerst in Slackware in der Version 8.0 vorhanden und wurde dann später der Standard
in Slackware 8.1. Dieser Sachverhalt bezieht sich lediglich auf die Grundinhalte und deren Gebrauch für nähere
Informationen sollte ein Blick auf folgende Seite http://www.netfilter.org/ von Vorteil sein.
Dererlei Eingaben in '/etc/rc.d/rc.firewall' werden als ausführbar gesetzt, um beim nächsten Start wirksam zu sein.
Zu beachten ist, das inkorrekt eingegebene 'iptables' Kommandos den betreffenden 'user', Anwender von seinem
Arbeitsplatz ausschließen können. Sind sie nicht so 100% von ihren Kentnissen überzeugt, stellen sie besser
sicher, daß sie einen direkten Zugang zum Rechner behalten.
Was es für die meisten von uns zunächst für richtig erscheinen läßt alle ankommenden Verbindungen
vorerst auszuschließen.
# iptables -P INPUT DROP # iptables -P FORWARD DROP
Ist erst einmal alles unterbunden, kann es an den Aufbau einzelner Verbindungen gehen. Hier nun scheint es
angezeigt die Verbindungen zu erlauben die bereits etabliert, hergestellt sind:
# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Das es zu keinen Funktionsstörungen derer Inhalte kommt, die der Loopback Adresse benötigen, scheint
es sinnvoll die Regel wie folgt zu formulieren:
# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT
Dieser Art gestatten es jeglicher Verbindung von und zu 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) der 'loopback' (lo)
Schnittstelle. Bei dem Entwerfen von Regeln kann es nicht schaden, so genau wie nur möglich zu sein, um nicht
unbeabsichtigt das Falsche zu veranlassen. Will sagen, dass Regeln die zu wenig erlauben letztlich mehr Aufwand
bedeuten können.
Der nächste Schritt den es zu tuen gilt ist einen Zugang zu bestimmten Diensten herzustellen. Als Beispiel sei hier an-
geführt, daß wenn sie beabsichtigen einen eigenen Web-Server aufzulegen,
eine Regel ähnlich wie dieser erstellt werden könnte.
# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT
Dieses ermöglicht dann den Zugang eines jeden Rechners auf Port 80 mittels der Schnittstelle 'ppp0'.
Wenn sie es wünschen kann der Zugang zu diesem Dienst auch eingeschränkt werden, indem nur bestimmte
Rechner darauf zugreifen können.
Diese Ausnahme (z.b) erlaubt einen Zugang auf ihren Web-Server nur der IP-Adresse 64.57.102.34:
# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT
Einen ICMP Verkehr zu Testzwecken einrichten:
# iptables -A INPUT -p icmp -j ACCEPT
Um ihren Web-Server für andere zugänglich zu machen ist es ratsam die IP-Adresse in einen Namen umzuwandeln (s. NAT).
Hierzu kann folgende Regel angewandt werden:
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Die Möglichkeit des "IP Forwarding" Weiterleiten wird temporär mit folgendem Befehl erreicht:
# echo 1 > /proc/sys/net/ipv4/ip_forward
Einer dauerhaften, also auch nach einem Neustart erhaltenden IP Weiterleitung Rechnung zu tragen,
muß folgender Eintrag in der Datei '/etc/rc.d/rc.inet2'
IPV4_FORWARD=0
zu
IPV4_FORWARD=1
geändert werden.
Für genauere Information der NAT, schauen sie nach dem http://www.netfilter.org/documentation/HOWTO/NAT-HOWTO.txt
14.2.2 tcpwrappers
tcpwrappers kontrolliert die Zugänge direkt zu den Daemonen /Diensten der Anwendungen, anstatt über die IP Zuordnung.
Dies bedeutet eine zusätzliche Sicherungsquelle auch für den Fall, daß es zum Ausfall der IP seitigen Zugangskontrolle
(wie Netfilter) kommt.
Wenn sie z.b den Kernel neu kompilieren und vergaßen zusätzlich die Unterstützung von 'iptables' zu aktivieren,
fällt der Schutz über die IP Zuordnung aus, sodann hilft 'tcpwrappers' noch ihr System gegenüber Angriffen zu erhalten.
Der Zugang zu den Diensten die von 'tcpwrappers' geschützt werden, kann über die Dateien '/etc/hosts.allow' und
'/etc/hosts.deny" gesteuert werden.
Meistens beinhaltet die Datei '/etc/hosts.deny' nur einen einzigen Satz, der festlegt, daß zunächst alle Zugänge zu
den möglichen Diensten /Daemonen gesperrt sind. Was wie folgt aussieht:
ALL : ALL
Ist dies geschehen, kann man damit beginnen den Zugang (zu den Diensten) bestimmten Rechnern,
Gruppierungen, oder IP Adressen zu ermöglichen. Dies kann in der gleichen Weise wie zuvor mittels der
Datei '/etc/hosts.allow' bewerkstelligt werden.
Meist sorgt ein Eintrag zu Beginn der Datei dafür das alle Verbindungen, die von 'localhost' stammen,
akzeptiert werden. Der Eintrag lautet hier:
ALL : 127.0.0.1
Um z.b einen Zugang zum SSHd der IP-Adresse 192.168.0.0/24 zu ermöglichen, kann eine der folgenden
Regeln Verwendung finden.
sshd : 192.168.0.0/24 sshd : 192.168.0.
Es ist ebenso auch möglich den Zugang bestimmten Rechnern einer Gruppierung zu verwehren. Dies kann durch
folgende Regel erreicht werden, (hierbei ist jedoch zu beachten, daß es der angeschlossenen Rechner
die Rückantwort der DNS für vertrauenswürdig halten, und somit würde ich im laufenden Betrieb davon abraten):
sshd : .slackware.com