Mailinglist Archive: opensuse-de (4888 mails)
| < Previous | Next > |
Re: Firewall
- From: andreas.hein@xxxxxxxxxxxxx (Andreas Hein)
- Date: Thu Sep 16 20:47:23 1999
- Message-id: <Pine.LNX.4.10.9909162228550.17311-100000@xxxxxxxxxxxxxxxxxx>
Hallo!
markus schrieb am Tue, 14 Sep 1999:
kann mir jemand kurz und knapp erklären wie die ipchains-Befehl funktionieren
?!?!
Kurz ist relativ... ;-)
Also... als erstes vielleicht was dazu, wie so eine Firewall aufgebaut
sind, damit man nachher auch ungefähr weiß, was man da tut...
Die einzelnen Regeln, nach denen IP-Pakete vom Kernel behandelt werden,
sind in sog. Ketten aufgereiht. Standardmäßig gibt es eine Input-Kette
(für alles was auf der Netzwerkkarte "reinkommt"), eine Output-Kette (für
alles was gesendet wird) und eine Forward-Kette. Die IP-Regeln in den
einzelnen Ketten werden dabei für jedes IP-Paket von oben nach unten
durchlaufen. Passt eine Regeln auf das IP-Paket, wird es angewendet.
Sollte eine passende Regel auf DENY, REJECT oder REDIRECT stehen, wird
nicht mehr mit der Bearbeitung der nachstehenden Regel fortgesetzt sondern
abgebrochen... das aber nur als Bemerkung.
Um nun Regeln zu definieren, wird ab Kernel 2.2.x das Programm ipchains
verwendet. Damit lassen sich recht schnell und einfach Regeln zu den
Ketten hinzufügen.
Wenn Du z.B. auf Deinem Rechner Telnet nur für bestimmte IPs freigeben
möchtest, dann kann das z.B. so aussehen:
ipchains -A input -P tcp -S 192.168.0.100 -D 192.168.0.1 23 -j ACCEPT
ipchains -A input -P tcp -D 192.168.0.1 23 -j DENY
Jetzt ist der Port 23 (telnet) für den Rechner 192.168.0.100 auf dem
Rechner 192.168.0.1 freigegeben (1. Regel). Für alle anderen (Regel 2) ist
der Port gesperrt (DENY).
Das -A input bedeutet, das der Kette "input" eine Regel angehangen wird (A
= APPEND). Soll die Regel oben eingefügt werden, kann man auch "-I input"
(insert) schreiben.
-P gibt das Protokoll an. Im Beispiel ist das tcp, gültig sind auch udp
und icmp.
-S ist der Ursprung des IP-Paktes, das bearbeitet wird (S = Source).
-D (Destination) steht für das Ziel des IP-Paktes. Bei -S und -D kann man,
nach Angabe des verwendetetn Protokolls mit -P auch einen Port mit
angeben. Um ganze Portbereiche anzugeben schreibt man z.B. 1:110 - damit
sind alle Ports von 1 bis 110 gemeint. Aber auch sowas wie "1023:" ist
möglich - das bedeutet dann alles Ports > 1023.
-j (jump) gibt an, zu welcher Endgültigen Regel mit diesem IP-Paket
"gesprungen" werden soll. Hierbei sind ACCEPT (akzeptieren), DENY
(Verbieten), REJECT (Zurückwerfen) und REDIRECT (Umleiten) erlaubt. Der
Unterschied zwischen DENY und REJECT besteht darin, dass bei DENY das
IP-Paket einfach "fallen gelassen" wird - während bei REJECT das Paket
unzustellbar zurückgeschickt wird. Will man es einem potentiellen
Angreifer (wie ich dieses Wort mag) schwerer machen, dann sollte man DENY
sagen - der Angreifer muß dann nämlich bei z.B. einem Portscan einen
Timeout abwarten, da ja keine Antwort auf seine Pakete eingehen...
Mit Redirect kann man TCP- und UDP-Pakete auf einen anderen lokalen Port
umleiten - so läßt sich z.B. ein Proxyzwang basteln, indem man alle TCP-
und UDP-Pakete, die auf den Port 80 gehen, auf den internen Proxy-Port
umleitet...
So, das ist jetzt mal kurz ein bißchen was zu Firewalling mit ipchains -
natürlich läßt sich noch viel mehr machen, aber ich denke, das Prinzip,
wie man Regeln und Ketten bastelt, sollte ein bißchen klar sein - den Rest
kannst Du jetzt in der Manpage von ipchains lesen... ;-)
Viel Spaß beim rumprobieren... ;-)
--
----------------------------------------------------------
Andreas Hein HR-Hosting GbR
andreas.hein@xxxxxxxxxxxxx www.hr-hosting.de
----------------------------------------------------------
---------------------------------------------------------------------
To unsubscribe, e-mail: suse-linux-unsubscribe@xxxxxxxx
For additional commands, e-mail: suse-linux-help@xxxxxxxx
| < Previous | Next > |