go-linux.info

 Start

1. Überblick
 Was ist Linux?
 Programme
 Security
 Root
 Dienste konfigurieren
 Paketfilter
 Encryption
 kmail+gnupg

2. Arbeiten mit Linux
 Einleitung
 Grundlagen
 Berechtigungskonzept
 Textbearbeitung
 Was ist eine Shell?
 Prozesse / Jobs

3. Anwendungen Shell
 Einleitung
 Die Kommandozeile
 Systemverwaltung
 Netzwerk
 Dateien
 Multimedia

4. Look and Feel
 Einleitung
 Windowmanager
 Desktop Environments


Start arrow Security arrow Paketfilter
Paketfilter   PDF  Drucken 
IPTables: ein Paketfilter für Linux und anderes mehr

Die heißgeliebte Firewall, die eigentlich ein Packetfilter ist. Kommt je nach Kernelversion als ipchains (2.2.xx) oder als iptables (2.4.xx) daher. Bevor wir dazu kommen, noch einige Einstellungen am System:

  • /etc/host.deny

Kontrolliert die Zugriffsrechte von außen. Tragt dort ein (wenn ihr keinen Server etcpp...):

ALL:ALL

Das bedeutet: allen Hosts werden alle Dienste nicht erlaubt.

  • /etc/host.allow

Ebenso, nur umgekehrt. Und einzutragen ist:

ALL:LOCAL

Also keiner kann rein, mit Ausnahme der als local erkannten Rechner (alle, die keinen Punkt im Namen haben). Deswegen empfiehlt sich, seine eigenen Rechner in der Datei /etc/hosts mit sinnreichen oder luschtigen Namen zu versehen. Ohne Punkt!

Detaillierte Informationen findet man, wie immer, mittels "man hosts.deny", "man hosts.allow", "man hosts".

  • /etc/security/access.conf

Kontrolliert den Zugriff auf die Konsole. Sehr wichtig! Und einzutragen ist:

-ALL:ALL EXCEPT LOCAL

Die Firewall

Hier zwei absolut primitive Beispielkonfigurationen für einen Router (der NAT machen muß, also einen Client bedient):

  • Kernel 2.2.x (ipchains):

-#!/bin/sh
-#
-# firewall-masq
-# This script sets up firewall rules for a machine
-# acting as a masquerading gateway
-#

-# Interface to Internet
EXTIF=ppp+
ANY=0.0.0.0/0

ipchains -P input ACCEPT
ipchains -P output ACCEPT
ipchains -P forward DENY

ipchains -F forward
ipchains -F input
ipchains -F output

-# Deny TCP and UDP packets to privileged ports
ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p udp -j DENY
ipchains -A input -l -i $EXTIF -d $ANY 0:1023 -p tcp -j DENY

-# Deny TCP connection attempts
ipchains -A input -l -i $EXTIF -p tcp -y -j DENY

-# Deny ICMP echo-requests
ipchains -A input -l -i $EXTIF -s $ANY echo-request -p icmp -j DENY

-# Do masquerading
ipchains -A forward -j MASQ
echo 1 > /proc/sys/net/ipv4/ip_forward

  • Kernel 2.4.x (iptables):

-#!/bin/sh
-# firewall-masq
-# This script sets up firewall rules for a machine
-# acting as a masquerading gateway
-#

-# Interface to Internet
EXTIF=ppp+
ANY=0.0.0.0/0

-# Load the NAT module (this pulls in all the others).
modprobe iptable_nat

-# Turn on IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

-# In the NAT table (-t nat), Append a rule (-A) after routing (POSTROUTING)
-# which says to MASQUERADE the connection (-j MASQUERADE).
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE

-#Default policy
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT

-# Allows forwarding specifically to our LAN
/sbin/iptables -A FORWARD -s 192.168.0.0/24 -j ACCEPT

-# Deny TCP and UDP packets to privileged ports
/sbin/iptables -A INPUT -i $EXTIF -p UDP -d $ANY --dport 0:1023 -j DROP
/sbin/iptables -A INPUT -i $EXTIF -p TCP -d $ANY --dport 0:1023 -j DROP

-# Deny TCP connection attempts
/sbin/iptables -A INPUT -i $EXTIF -p TCP --syn -j DROP

-# Allow dns requests
/sbin/iptables -A INPUT -i $EXTIF -p UDP --dport domain -j ACCEPT
/sbin/iptables -A INPUT -i $EXTIF -p TCP --dport domain -j ACCEPT

-#Logging of rejected packets
/sbin/iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG

Das ist eine sehr freizügige Konfiguration, gestattet aber dem Client das Nutzen praktisch beliebiger Spielereien (ICQ, IRC, Napster, Gnutella, alle Spiele, etcpp.) Hier muß jeder selbst wissen, was er will, und ich werde daher im folgenden auch nicht auf Details eingehen. Selbst die ausgewiesenen Experten bei news://de.comp.security.firewall sind da sehr verschiedener Meinung, und ein "NACK - das löst Du besser so" jagt das andere.

Wer sich damit auseinandersetzen will (was man muß, um einigermaßen durchzublicken), dem sei folgender Link sehr empfohlen: http://www.little-idiot.de/firewall

Und noch was: natürlich könntet ihr jetzt zu http://check.lfd.niedersachsen.de/check.php sausen und Eure Ports checken lassen. Natürlich sind die jetzt alle auf Stealth (sollten sie zumindest sein), also genauso wie bei Zonealarm unter Stufe "High". Naja, logisch: oben steht ja auch "Deny ICMP echo-requests", also tut die Firewall nur das, was ihr aufgetragen wurde. Über Sicherheit sagt das gar nichts aus ... wartet lieber bis Teil III, da wird's dann richtig ernst.

Apropos Testseiten: die gibt's wie Sand am Meer, aber es gibt Perlen und ... Zu letzterem zählt z.B. Symantecs Test, der so unverschämt schlecht ist, daß sich der Link nicht lohnt. Eine solide Seite, die eigentlich immer funktioniert, ist die oben genannte. Deutlich aussagekräftiger: http://www.vulnerabilities.org/analysis.html mit einem Online Nessus-Scan, sowie http://www.kryptocrew.de/scanner/ mit einem geradezu monströs konfigurierbaren Scanner. Bei aktiviertem Packetfilter dauern diese Scans allerdings Stunden bis Tage! Ein Schnelltest für Eilige ist ShieldsUp! von Steve Gibson http://grc.com. Dessen geheimnisvolle NanoProbe-Technologie ist geradezu unbegreiflich schnell, testet allerdings auch nur einige wenige Ports.

Nachtrag: Einige der genannten Seiten sind zur Zeit außer Dienst oder nicht erreichbar. Dann versucht es hier: http://scan.sygatetech.com/
 


Miro International Pty Ltd. ©2000 - 2003 All rights reserved.
Mambo Open Source is Free Software released under the GNU/GPL License.
Powered by Mambo Open Source