[linux-l] iptables (Eheamals: Fedora3 Firewall)

Mike Dornberger Mike.Dornberger at gmx.de
Mi Nov 16 06:17:06 CET 2005


Hi,

On Wed, Nov 16, 2005 at 10:32:21AM +1100, Peter Ross wrote:
> Volker Grabsch wrote:

> > Generell willst du mit dem OUTPUT-Chain nichts zu tun haben, das ist
> > für spezielle Sachen. Ich hab's noch nie wirklich gebraucht. Wenn
> > du dort sowieso nichts sperrst, kannst du die Zeile natürlich weghauen,
> > weil "ACCEPT" ja sowieso die Default-Einstellung von iptables ist.
> > Kurz: Ignorier das einfach.
> 
> Autsch.. Bitte nicht.
> 
> Was Du machst, ist das Erlauben aller ausgehenden Verbindungen. Das macht
> ein gehacktes System zu einem phantastischen Relay. Alkle ausgehende Ports
> sind offen.

äh, ja und? Wenn ein Angreifer es geschafft hat, einen Prozeß zu kapern hat
er sowieso mindestens einen ausgehenden Port zur Verfügung und kann damit
genug Unsinn anrichten. Schlimmstenfalls erlangt er eh Root-Rechte und
löscht einfach die Netfilter-Regeln.

> Besser ist es, sich zu fragen - was muss ich als ausgehende Verbindung
> erlauben? Fuer ein gewoehnliches Desktop-System sind das z.B. DNS, SSH,
> SMTP, HTTP, HTTPS, wenn's denn sein muss, auch FTP, und Chat-Protokolle
> (z.B. ICQ)

Naja, wenn Du Deinen Usern nicht vertraust, kannst Du ihnen damit ein paar
Steine in den Weg legen, gewisse Dinge wie P2P nicht so einfach zu machen.
Alle Zuordnungen Ports-Dienste sind ja nicht wirklich "in Stein gemeißelt",
sondern das, was in /etc/services steht sind die defaults. Du machst es
Deinen Usern nur unnötig schwer, Dienste zu erreichen, die nicht auf
Standard-Ports laufen.

Gib den Leuten eine halbwegs mächtige Scripting-Sprache oder nen Compiler
und die cleveren Fangen eh an, Protokoll-Tunneling zu betreiben, zur Not
über ICMP.

Auch machst Du es Dir als Admin unnötig schwer. Für jeden lokalen Service
mußt Du mindestens eine --sport Regel definieren und für jeden Remote-Dienst
mindestens eine --dport-Regel. Vergiß bei komplizierten Protokollen wie z.
B. FTP dann nicht, daß es 2 Verbindungen gibt, eine nach außen, eine von
außen kommend oder 2 nach außen, je nachdem ob aktiv oder passiv. Spätestens
hier mußt Du dann mit --state RELATED anfangen, da
--sport und --dport der Datenverbindung bei FTP Dir vollkommen unbekannt
sind. Das Loopback-Interface nicht vergessen... Der Aufwand lohnt doch
nicht: also KISS

Ich denke, daß zumindest auf Home-Rechnern, wo die User-Anzahl gegen 1
tendiert, die OUTPUT-Chain leer und die Policy ACCEPT sein kann. Bei
dedizierten Servern kann ich mir noch vorstellen, daß man in der
OUTPUT-Chain was macht oder wenn Du extra ne Linux-Kiste als Router und
Firewall abgestellt hast, die dann wirklich nichts anderes macht.

Ohne das jetzt nochmal genau nachgelesen zu haben, hat OUTPUT seine Stärken,
wenn man Quality-of-Service/Traffic-Shaping machen will, um die
entsprechenden Pakete zu markieren.

> Ein Rechner sollte in der Regel keine ACCEPT-Default-Policy haben, egal
> fuer welche Chain.

Bis auf table filter, chain OUTPUT stimme ich Dir zu.

Gruß,
 Mike



Mehr Informationen über die Mailingliste linux-l