de.comp.security.firewall FAQ
English version.
Welche Firewall ist die Beste?
Das ist eine sehr schwere Frage. Am besten, Du liest die folgenen Fragen und Antworten durch. Danach sollte Dir klar sein, auf welche Eigenschaften es bei dem Produkt "Firewall" ankommt. Welches Du dann so gerüstet auswählst, hängt von vielen persönlichen Vorlieben und Randbedingungen ab. Die Situation ist bei jedem anders.

Was ist eine Firewall?
Als Firewall bezeichnet man ein organisatorisches und technisches Konzept zur Trennung von Netzbereichen, dessen korrekte Umsetzung und dauerhafte Pflege. Ein oft benutztes Instrument der Umsetzung ist ein Stück Hardware, das zwei physisch getrennte Netzbereiche genau so verbindet, wie es im Konzept zugelassen wird. Dieses Stück Hardware bezeichnet man als Firewall-Rechner/System oder verkürzt als Firewall.

Wie sieht eine typische technische Umsetzung einer Firewall aus?
Zwischen den beiden Netzen wird zuerst je ein Paketfiler gesetzt, die direkt verbunden sind. (Netz1 -- Paketfilter -- Zwischennetz -- Paketfilter -- Netz2) Die Paketfilter lassen auschließlich Daten von dem jeweils direkt angebundenen Netz ins Zwischennetz und zurück durch. Eine Verbindung aus einem Netz zu dem Paketfilter des anderen Netzes oder gar ins andere Netz ist verboten.

Das Zwischennetz heißt DMZ (Demilitarisierte Zone). In ihm befinden sich Vermittlungsrechner für alle Protokolle/Dienste, die von einem Netz zum anderen funktionieren sollen. Solch einen Vermittlungsrechner nennt man Proxy, da er im Auftrag handelt (wie ein Sektretariat). Proxies arbeiten auf Anwendungsebene, d.h. sie verstehen die über sie laufende Kommunikation.

Eine Sonderstellung nimmt die »grafische Firewall« ein, die die Arbeitsplatzsysteme nur noch zur Bildschirmdarstellung und als Eingabesystem benutzt. Die Anwendungen laufen auf einem zentralen System, auf dem die Schwachstellen von Anwendungssoftware und Konfiguration zentral in Angriff genommen werden können. Dies entspricht dem klassischen IBM-Hostsystem der fünziger Jahre.

Ich bin Anwender. Unsere Firma hat eine Firewall, aber ich muß mit einem Geschäftspartner Daten austauschen. Wie kann ich die Firewall umgehen?
Das Sicherheitskonzept Deiner Firma sieht vor, daß Du genau das nicht tust. Wenn Du es wirklich benötigst, wende Dich an Deinen Admin und kläre mit ihm die zulässigen Möglichkeiten des Datenaustausches. Solltest Du die Firewall trotz Verbots umgehen, ist eine fristlose Kündigung berechtigt.

Ich bin Firewall-Admin. Mein Chef verlangt, daß eine bestimmte Kommunikation durchgeführt wird, obwohl es gegen das Sicherheitskonzept der Firma verstößt. Was soll ich tun?
Kündigen. Deine Arbeitsaufgabe ist es, genau diese Kommunikation zu verhindern. Dazu benötigst die Mittel (LART), diese Vorgaben auch umzusetzen. Fehlen Dir diese Mittel gegenüber irgendeiner Hierarchieebene, so hast Du einen Posten, auf dem Du verheizt werden sollst. Dein Kopf ist es, der rollt, wenn etwas passiert. Wirst Du für das Risiko, auf mindestens zehn Jahre in diesem Beruf keinen Job mehr zu bekommen, ausreichend entlohnt? Denke daran: Die Firma betrachtet Dein Gehalt als Versicherungsprämie für einen Schadensfall.

Was ist ein Portscan?
Als Scan bezeichnet man alles, was durch extensives Probieren versucht herauszubekommen, welche Dienste ein Rechner oder eine Rechnergruppe anbietet. Ein Portscan fragt höflich und formgerecht alle möglichen Dienste -- das sind 65535 statusbehaftete und nochmal soviele statuslose Quellen auf Basis von IP -- ab. Das ist praktisch ungefährlich, weil man ja keine Dienste anbieten wird, die man nicht kennt. Es ist im praktischen Leben vergleichbar mit der gründlichen Betrachtung eines Hauses. Im Internet "sieht" man eben mit Paketen statt mit Lichtquanten.

Ein Netzscan ist die höfliche und formgerechte Abfrage von ausgewählten Diensten über eine ganze Rechnergruppe. Es ist im praktischen Leben vergleichbar mit der Betrachtung einer Straße auf der Suche nach einem offenen Laden.

Ebenso wie ein Betrachter eines Hauses einen Einbruch planen kann, kann ein Scan einen Angriff vorbereiten. Allerdings ist dieses Indiz praktisch sehr schwach.

Ein etwas tiefer gehender Scan ist der Bannerscan. Dabei wird jeder öffentlich angebotene Dienst kontaktiert und die Server-Software incl. Versionsnummer ermittelt. Auch dies ist legal.

Kein Scan ist notwendigerweise eine Angriffsvorbereitung und schon gar kein Angriff.

Ich habe eine "persönliche Firewall" oder auch "Desktop-Firewall" für meinen Rechner. Ist der jetzt sicher?
Nein. Ohne ein Konzept, was vor wem geschützt werden soll, ist ein Firewall-System für den Betreiber gefährlich. Ohne tiefgreifendes Verständnis zur Ausarbeitung eines solchen Konzeptes darf kein solches System entworfen und aufgebaut werden.

Eine Desktop-Firewall kann Dir helfen, mehr über Dein System zu lernen. Sie kann Dir aber nicht ohne weiteres helfen, sicherer zu sein. Besser ist es präventiv aktiv zu werden, wie in "Ich habe offene Ports, wofür sind die?" und "Wie kann ich sehen was auf meinem Interface/Netzwerk passiert?" beschrieben.

Wieso kann eine Sicherheitslösung per se gefährlich sein?
man Risikokompensation.

Wer glaubt, die unverstandene Sicherheitslösung hätte irgendeinen Effekt, wird unbewußt diesen mit einer gewissen Laxheit kompensieren, weil ihn das System ja schützt.

Wer nicht glaubt, daß das Firewallsystem wirksam sei, muß sich fragen lassen, warum er es dann installiert.

Ich habe zwei Desktop-Firewalls installiert. Bin ich sicherer?
Nein, es ist eher wahrscheinlich, daß sich beide Produkte gegenseitig so behindern, daß neue Lücken entstehen.

Aber ich werde ständig gescannt!
Sicher? Na und?

Viele sogenannten Desktop-Firewalls melden jedes ankommende Paket erstmal als Angriff. Das verursacht Panik beim Nutzer und das wohlige Gefühl, sein Geld richtig angelegt zu haben. Außerdem können die Bekannten ja auch nicht ohne diesen perfekten Schutz leben, also sofort anrufen ...

In den meisten Fällen sind die gemeldeten Pakete aber nur die Antworten auf Anfragen, die man selbst generiert hat, bspw. als man eine Webseite betrachten, seine Post lesen oder einfach nur rumdaddeln wollte.

Bei einer Einwahl mit dynamischer Adressvergabe (wie bei den meisten Providern üblich), ist es wahrscheinlich, daß man nach der Einwahl noch die Pakete von Verbindungen seines Vorgängers bekommt. Das ist nichts schlimmes und schon gar kein Angriff.

Ich bekomme aber Pakete an Trojanerports!
Ja und?

Wenn Du einen Trojaner installiert hast, so hast Du das absichtlich getan. Davor konnte Dich die Firewall nicht schützen. Und es ist sowieso zu spät.

Wenn Du keinen Trojaner installiert hast, so wird die Anfrage an diesen Port zurückgewiesen. Die Firewall macht genau das Gleiche. Wo ist da der Nutzen?

Die Firewall schützt mich aber vor Zugriffen auf meine Windowsfreigaben!
Warum hast Du Deine Festplatte und Deinen Drucker denn an jeden im Internet freigegeben? Warum stellst Du es nicht einfach ab?

Ich habe gehört, man könne auch ohne die gewollte Freigabe der Festplatte auf meinen Rechner zugreifen. Die Firewall würde mich doch in diesem Fall schützen, oder?
Du hast Angst vor Crackern (Du magst sie Hacker nennen) weil Du so viele üble Berichte gehört hast. Allerdings ist es so, daß niemand auf Deinem Rechner irgendetwas tun kann, ohne daß dafür ein Ansatzpunkt existiert. Das können Sicherheitslücken, absichtliche installierte Hintertüren etc. pp. sein. Sorge dafür, daß Du weißt, was auf Deinem System los ist.

Sicher, ein Firewall kann helfen. Auch eine Desktop-Firewall. Vorausgesetzt, sie ist richtig durchdacht und gewartet. Allerdings bleibt die Frage offen, warum Du nicht einfach die Fehler behebst. Schließlich werden die Patches i.d.R. mit der Ankündigung veröffentlicht.

Der Hersteller meiner Software bietet aber keine Patches zur Fehlerbehebung an. Also brauche ich eine Firewall!
Du hast Regressansprüche gegen den Hersteller, da sein Produkt fehlerhaft ist. Nur, indem auch Du diese Ansprüche geltend machst, wird der Hersteller lernen, für Geld auch Leistung zu liefern.

Andererseits: Warum kaufst Du bekanntermaßen defekte Technik? Wenn Du diesen Fehler erst nach dem Kauf bemerkst, hast Du rechtlich die Möglichkeit, auf Wandlung oder Geldrückzahlung zu bestehen. Fehler zu machen ist nicht schlimm, sie nicht einzusehen, dagegen unverzeihlich.

Kann meine Desktop-Firewall zufällig installierte Trojaner abblocken?
Nicht generell. Der Trojaner kann sich auf die gleiche Weise im System installieren, wie die Firewall-Software. Wie soll sie ihn dann noch bemerken?

Ich will meine Firewall richtig konfigurieren, wie gehe ich vor?
Verbiete alles.

Wenn irgendetwas nicht funktioniert, lerne, was diese Software wirklich braucht und warum. Dann schalte es bei Bedarf frei.

Nochmals: Schalte nichts frei, von dessen sachlicher Notwendigkeit Du nicht von Grund auf überzeugt bist.

Ich mußte alles zulassen, sonst geht Napster nicht mehr!
Deinstalliere die Firewall. Du brauchst das nicht.

Wo kann ich etwas über die Protokolle und die Anwendungen lernen?
Ein paar Informationsquellen:

Empfehlenswerte Lernreihenfolge: Grundlagen IP, ICMP, UDP und TCP. Danach die Protokolle der Reihe nach durch. Beginnen mit DNS über UDP (alle Richtungen) und dann telnet. Als nächstes POP3. Danach SMTP und HTTP. Nach FTP kann man sich mit SSH und HTTPS befassen. Zum Einstieg ist http://www.netzmafia.de/skripten/netze/netz8.html und folgende Kapitel gut geeignet.

Einige einleitende Bemerkungen und Beispiele findet man auch beim BSI: http://www.bsi.bund.de/literat/doc/sinetdoc/sinetstd.htm.

Was bedeuten die ganzen Abkürzungen?
Die meisten Abkürzungen sind Netzbegriffe, die in den RFCs (Internetstandards) definiert werden. Die Antwort zur vorhergehenden Frage enthält einen Link dazu. Die FU-Berlin hat ein schönes Online-Recherchetool für solche Kurzworte: http://www.chemie.de/tools/acronym.php3

Wie reagiere ich bei einem Angriff?
  1. Wurde mein System in irgendeiner Weise kompromittiert?
    Nein
    weiter bei 2
    Ja
    Gerät vom Netz trennen und Kompromitierung festellen, dokumentieren, archivieren und beseitigen und weiter bei 2
  2. Ist mir ein Schaden entstanden?
    Nein
    weiter bei 3
    Ja
    Feststellung des Schadens und weiter bei 3
  3. Kann dieser "Angriff" in Zukunft verhindert werden?
    Nein
    Evaluation der Alternativen, Alternativen umsetzen
    Ja
    Massnahme(n) durchführen
  4. Ist der Aufwand gerechtfertigt eine Anzeige zu erstatten?
    Nein
    Zurücklehnen
    Ja
    Anzeige erstatten, den richtigen ISP benachrichtigen.

Wie finde ich den richtige ISP heraus?
whois -h whois.thur.de anfrage

Alternativ kannst Du auch mit telnet whois.thur.de 43 Deine Anfrage stellen. Einfach im Telnet lostippen.

Ich habe offene Ports, wofür sind die?
Die meisten Ports haben eine vereinbarte Bedeutung, sonst würde ja niemand unabhängig vom Server eine Anwendung schreiben können. http://www.iana.org/assignments/port-numbers enthält die aktuelle Liste offiziell angemeldeter Port-Dienste-Kombinationen.

Natürlich ist niemand verpflichtet, sich an diese Liste zu halten. Wenn also ein Trojaner einen Server installieren will, so wird er sinnvollerweise bekannte Ports benutzen. So ist er von den bekannten Diensten erstmal ununterscheidbar. Die sogenannten Trojanerports stammen aus den letzten Jahren. Sie liegen meist über 1024 und sind somit ohne besondere Berechtigungen auf einem Unix zu eröffnen. Alle Internetanwendungen tun dies, um zu kommunizieren. Die meisten sogenannten Trojaner sind keine Trojaner sondern normale Fernwartungsserver, die eben nicht zugewiesene Ports benutzen. Ein allgemeines Lauschen an einem bestimmten Port - also Serverdienste -sind selten, bspw. FTP, Napster, Gnutella, ICQ, ... benutzen diese Technik mit zufällig gewählten Ports.

Welche Programm momentan auf welchen Ports lauschen kann man mit lsof -i, welche Kommunikationsstränge gerade aktiv sind mit netstat -tu und welche Server gerade aktiv sind mit netstat -lp herausbekommen. Unter Windows kann auch TDIMon helfen: http://www.sysinternals.com/ntw2k/freeware/tdimon.shtml.

Was ist XYZ für ein Protokoll/Dienst?
Protokolle und Dienste gibt es viele. Suche nach diesem Begriff auf der Homepage deines Betriebsystemherstellers oder der Firma besuchst, deren Software Du benutzt. Standarddienste sind per RfC definiert: http://www.rfc-editor.org

Ich bekomme eine Meldung das ein mir unbekanntes Programm eine Verbindung öffnen möchte. Was kann ich tun?
Ablehnen. Ohne genaue Kenntnis der Ursache, mußt Du davon ausgehen, daß Dein System korrumpiert wurde. Beachte aber, daß "Desktop-Firewalls" oft nur den Namen des Programms zurückliefern, den sie von diesem Programm selbst erfragt haben. Glaubst Du wirklich, daß Trojaner nicht lügen können? Würdest Du dem Programm 'exporer.exe' einen Zugriff nach außen gestatten? Wie sieht es 'outlook.exe', 'netscape.exe' aus?

Wie kann ich sehen was auf meinem Interface/Netzwerk passiert?
Du kannst die Logfiles Deiner "Desktop-Firewall" auswerten. Dafür sind diese Produkte gar nicht mal so schlecht.

Obwohl man eigentlich einen zweiten Rechner braucht, um ein möglicherweise befallenes System zu kontrollieren, ist es zu Lernzwecken schon sinnvoll mal den Normalbetrieb zu untersuchen. Unter den Unix-Derivaten gibt es tcpdump mit dem man Netzwerkverkehr beobachten kann. Für die Windows-Derivate findest Du Informationen unter: http://netgroup-serv.polito.it/winpcap/. Ein brauchbaren Einblick in die Netzgeschehnisse liefert Ethereal.

Für eine längerfristige Überwachung des Netzverkehrs ist Snort http://www.snort.org/ einen Blick wert.

Ist REJECT oder DENY sinnvoller?
Als REJECT bezeichnet man die aktive Ablehnung einer Verbindungsanfrage mit einem ICMP Paket vom Inhalt "Der Admin hat's verboten" oder "Dienst nicht verfügbar".

Als DENY bezeichnet man das kommentarlose Wegwerfen der Verbindungsanfrage. Damit läuft der Anfragende in einen Timeout.

Admins, die sich über Script Kiddies ärgern, glauben oft, diese durch DENY aufhalten zu können. Dies ist jedoch falsch. Es ist problemlos möglich, viele tausend Scans gleichzeitig zu starten und so auf alle Timeout gleichzeitig zu warten. Ein Scanner wird so nicht gebremst. Andererseits bremst man mit DENY alle legitimen Nutzer und Server massiv aus. Das betrifft insbesondere die ident Anfragen.

Ident dient dazu, dem Admin eines ordentlich gepflegten Systems eine Hilfestellung bei der Identifizierung seiner, sich daneben benehmenden Nutzer zu geben. DENY für ident bewirkt nur, daß diese Hilfestellungen bei anderen Servern nicht mehr aufgezeichnet werden. Wenn Du als Schutzpatron für Spammer und Scriptkiddies auftreten willst, nimm DENY.

Sieh das Ganze doch so, wie in einer offenen Beziehung:
Es ist besser seinem Partner direkt zu sagen, daß man über ein bestimmtes Thema nicht sprechen möchte (REJECT): Der Partner weiß sofort, was Sache ist und und kann dann ohne Zeitverzögerung seine Entscheidung darüber treffen, ob er die Beziehung fortsetzen möchte oder nicht.

Geht man auf ein Thema allerdings gar nicht ein (DENY) und stellt die Ohren auf Durchzug, kostet das a) einem selber Zeit dem Geschwafel des Partners zuzuhören und b) dem Partner ebenfalls Zeit; er möchte nämlich ein für ihn wichtiges Thema/Problem loswerden, und hätte das dann ja wohl besser woanders getan.

Ein anderes Beispiel aus dem Leben:
Du gehst durch die Einkaufstraße deiner Stadt, und irgendein "Penner" quatscht dich an, und will 'nen Euro. Hier könnte man sagen "Ach ne, habe selbst kein Geld" (REJECT) oder einfach die fortgesetzte Bettelei ertragen.

Ich bin Firewall-Admin. Einige Anwender haben Software im Einsatz, die unerlaubte Zugriffe über erlaubte Protokolle tunnelt. Was soll ich tun?
Es ist praktisch nicht möglich halbwegs freien Zugriff auf externe Ressourcen zu gestatten, ohne daß die Möglichkeit von Tunnels besteht. Da diese Tunnel Gegenstellen benötigen, könnte man versuchen, alle diese Gegenstellen zu sperren. Aber diesen Wettlauf verliert man immer.

Es bleiben so nur die Möglichkeiten des LART gegenüber dem Anwender, oder die Einrichtung von Weißlisten, d.h. es dürfen nur als gutartig im Sinne der Policy bekannte Gegenstellen erreicht werden. Von einem Internet-Zugang kann jetzt natürlich keine Rede mehr sein.

Man muß sich darüber klar sein, daß es unmöglich ist soziale Probleme technisch zu erschlagen, egal wieviel Geld man auf das Problem wirft.

netstat zeigt offene Ports, aber da läuft garantiert nichts! Was übersehe ich?
Windows (oder netstat für Windows) hat da tatsächlich einen Fehler. Wenn eine TCP-Verbindung vom lokalen Rechner aufgebaut wurde, zeigt netstat -an fälschlicherweise auch den Sourceport als LISTEN an. LISTEN heißt aber im TCP/IP Begriffsuniversum: Hier hängt ein Server, der neue TCP Verbindungen annehmen will.
Proto  Local Address           Foreign Address         State      
tcp    217.17.192.37:1213      217.17.192.67:119       ESTABLISHED 
tcp    0.0.0.0:1213            0.0.0.0:*               LISTEN

Welche Besonderheiten gibt es bei FTP zu beachten?
Eine FTP-Verbindung besteht aus einem Kommandokanal, der üblicherweise zum TCP-Port 21 des Servers aufgebaut wird, und einem Datenkanal der üblicherweise Port 20 benutzt. In welche Richtung der Datenkanal aufgebaut wird, unterscheidet aktives (vom FTP-Server zum Nutzer) und passives (in die gleiche Richtung, wie der Kommandokanal) FTP.

Damit der FTP-Server weiß, wohin er eine Datenverbindung aufbauen soll, wird ein PORT-Kommando zum Server geschickt. Diese enthält die IP und Port-Adresse des Nutzersystems. Das Gefährungspotential hier ist offensichtlich. Eine Firewall muß dieses aktive FTP analysieren, das PORT Kommando bei Bedarf im Transport umschreiben und die eigenen Filterreglen dynamisch anpassen.

Deswegen sollte man grundsätzlich versuchen, nur passives FTP zu benutzen.

Welche Besonderheiten gibt es bei Netmeeting zu beachten?
Netmeeting ist eine Anwendung für Sprach/Bild-Übertragung über paketvermittelte Netze. Für diesen Zweck sind zwei Protokollfamilien im Einsatz:
  • IETF
    • RSVP (Ressourcenverwaltung für QoS)
    • SIP (Verbindungsaufbau)
    • SAP (Verbindungsankündigungen - für öffentliche Verbindungen)
    • SDP (Verbindungsbeschreibungen - für öffentliche Verbindungen)
    • MGCP (Endgeräteverwaltung, Nachfolger von SGCP)
    • "skinny" station protocol (proprietäre Form von MGCP)
    • RTP (Sprach/Bild-Datenstrom)
    • RTCP (End-2-End Steuerungkanal für RTP)
    • Codecs werden von ITU-T übernommen
  • ITU-T (H.323 Protokollfamilie):
    • H.235 (Steuerungskanal u.a. für Sicherheit und Abrechnung)
    • H.225 (Verbindungsaufbau der Signalisierung)
      • H.225.0 (Signalisierung nach Q.931)
      • RAS (Rufnummern-, Bandbreitenverwaltung)
      • RTP Initialisierung
    • H.245 (Verbindungsaufbau des Sprach/Bild-Datenstrom, Codec-Abgleich)
    • H.450 (Zusatzdienste wie Halten, Weiterleiten, Verbinden, Konferenz)
    • T.120 (Sonstiger Datenverkehrs)
    • RTP (Sprach/Bild-Datenstrom)
    • RTCP (End-2-End Steuerungkanal für RTP)
    • Codecs: G.711(a/ulaw), G.729(a)(b), G.723.x, ... (audio), H.26x (video)
Da fast alle Protokolle dynamische Adressen aus einem großen Portbereich (RTP benutzt z.B. UDP 16384-32767) verwenden, ist es zwingend notwendig, auf den Firewalls die Protokolle mitzulesen und die Filterregeln anzupassen. Für Linux existiert unter http://www.coritel.it/coritel/projects/nat/index.html ein Modul, das Voice-Unicast zu einer Gegenstelle mit offizieller IP, ohne Management von Ressourcen und Nummern ermöglicht.

Ich möchte einen weiteren Dienst freischalten, komme aber bei der Konfiguration meines Paketfilters nicht weiter. Wie bekomme ich Hilfe?
Erste Anlaufstelle ist die Anleitung Deines Paketfilters. Reicht diese nicht aus, so kontaktiere den Support Deines Lieferanten oder des Herstellers. Bekommst Du auf diesem Wege keine ausreichende Unterstützung, ist die Wahl des Produktes möglicherweise falsch gewesen.

Bei besonders obskuren Problemen kann man auch in der Newsgruppe de.comp.security.firewall fragen. Hierbei ist zu beachten, daß man eine möglichst detailierte Protokollbeschreibung mitliefert (Verweise auf irgendwelche Unterlagen per URL), das Problem (insbesondere den zu konfigurierenden Paketfilter) exakt schildert und erkennen läßt, welche Schritte zur Problemlösung bereits ergriffen wurden. Auch aktuelle Workarounds sind aufzählenswert.

Es ist sehr nützlich, darzulegen, warum dieser Dienst benutzt werden soll und in welchem Umfang die Nutzung durch die Policy gedeckt wird. Ohne diese Angabe ist der Ratschlag, den Paketfilter komplett zu entfernen, angemessen.

Wie konfiguriere ich mein lokales System richtig?
Schau in die Handbücher. Fehlen diese oder sind sie unbrauchbar, so hast Du einen Minderungs und Wandlungsgrund im schlimmsten Falle kannst Du Regreß geltend machen.

Für einige Systeme gibt es Webseiten, die das Problem einkreisen:

Warum will man mich in de.comp.security.firewall verarschen? Newsgruppen dienen doch dazu, einander zu helfen!
Die Leute, die in dieser Newsgruppe miteinander reden, haben zum Teil äußerst unterschiedliche Vorkenntnisse. Absolute Neulinge treffen hier auf erfahrene Sicherheitsexperten. Letztere werden von einem nicht enden wollenden Strom von Anfängern immer wieder mit den gleichen Fragen konfrontiert.

Mit der Zeit sind dann die schon länger mitdiskutierenden Fachleute genervt, insbesondere wenn deutlich wird, daß ein Frager zu wenig eigene Anstrengungen unternimmt, um die von ihm gewünschte Information zu recherchieren. Dies führt gelegentlich bei den Experten bzw. Expertinnen zu einer sarkastisch wirkenden Schreibweise.

Vom Fragenden ganz unbeabsichtigt liest sich der Beitrag eines Anfängers aus der Sicht einer Fachperson leider nicht selten so: "Mein Haus steht an einer öffentlichen Straße. Ich möchte nicht, daß man das Haus von dort aus sehen kann. Ich habe gehört, daß man mit Hilfe von Taschenlampen auch bei ausgeschalter Sonne, Mond und Beleuchtung mein Haus sehen kann. Wie kann ich mich nun schützen?"

Die Antwort, die Du hören willst lautet: "Es gibt da extrem coole Folien mit dem Aufdruck 'Das ist kein Haus.', die man in die Fenster kleben kann. Kostenlos und besonders bunt sind die von Zonealarm."

Diese FAQ soll dazu beitragen, dass derartige offenkundig unerfüllbare Wünsche seltener oder am besten gar nicht an die Gruppe herangetragen werden. Sie soll zum Nachdenken anregen.

Wie kann ich mich unsichtbar machen?
Um "unsichtbar" zu sein, müßtest Du mit der IP Adresse Deines nächsten Routers "ICMP - Host/Network unreachable" senden.

Merke: Bei ICMP ist keine Antwort gleichbedeutend mit "ich bin hier". Weil wenn Du nicht da wärst, würde jemand anderes sagen "Der ist nicht da". Nämlich der nächste Router. (Der steht bei Deinem Provider und Du hättest kein Internet.)

Worin besteht der Unterschied zwischen einer Hardware- und einer Softwarefirewall?
Fast alle Hardwarefirewalls basieren auf Software, die nur auf einer speziell ausgewählten Hardware läuft. Die eigentlichen Vorteile dieser speziellen Hardware sind: a) nur gut ausgetestete Geräte mit gut getesteten Treibern können verwendet werden und b) es gibt keine fehleranfällige Festplatte. Der erste Punkt beseitigt mögliche Sicherheitsrisiken durch einen dramtisch verkleinerten Code. Der zweite Punkt erhöht die Uptime.

Anderseits sind Softwarefirewalls dank des höheren Marktdrucks aktueller und haben mehr Features. (Verkaufte Hardware bindet Kunden längerfirstig.) Der Nachteil besteht in einer höheren Fehlerquote in der größeren Codebasis.

Schließlich gibt es noch Hardwarefirewalls ohne Software. Diese nutzen physikalische Effekte aus. Bspw. genügen zwei Zentimeter Luft, um einen PC vor Netzangriffen zu schützen.

Ich bekomme keinen Tunnel zu anderen Endgeräten auf, wonach muß ich schauen?
Ist es IPSec oder proprietär? Wenn es IPSec ist, werden die IPSec Tunnel händisch oder über ISAKMP aufgebaut? Wenn über ISAKMP, welche IKE Einstellungen werden vorgenommen? Ist die Kommunikationsstrecke für die UDP Pakete auf Port ISAKMP und für AH/ESP Protkolle durchlässig? Kannst Du pingen?

Für mobile Nutzer wird oft IKE mit shared key Authentifizierung benutzt. Welche Parameter sind sonst noch eingestellt? DES/3DES, SHA1/MD5, DH-Group1/2? Wird beidesmal das gleiche shared Secret verwendet (evtl. Gruppenpasswort genannt) oder geht's über Zertifikate? Werden die IKE-IDs auf Namen oder Addressen aufgebaut? Evtl. muß man als Peer-Addresse (wenn die dynamisch ist) 0.0.0.0 oder besser eine Netzmaske angeben.

Kannst Du den IKE-Managementtunnel aufgebaut sehen? Debugausgaben? Wenn der steht, hast Du fast gewonnen.

Um jetzt einen Client konfigurieren zu können werden (noch nicht genormte) Protokolle wie Uauth (Wer ist der Anfragende?) und Mode-Config (Welche IP, DNS, WinS, ... bekommt er?) ausgeführt. Scheitert es daran? Wenn ja, bleibt Dir kaum etwas anderes als über den IPSec Tunnel PPP zu legen. Willst Du dann auch noch Broadcasts übertragen (Windows :-/), dann legst Du über diesen PPP Tunnel auch noch L2TP. Und dann gehst Du kotzen.

Hat auch Mode-Config geklappt, brauchst Du die IPSec Tunnel. Dort werden zuerst mal IDs ausgetauscht, die den interessanten Traffic definieren. Das muß passen! Und dann natürlich die Algorithmen für jeden Tunnel. Ist es Transport oder Tunnel-Mode? Nur bei Tunnel-Mode kannst Du ganze Netze erreichen! Wird ein Authentication Header eingefügt, darf der Paketheader unterwegs nicht angefaßt werden! Minimal solltest Du mit ESP und einem einfachen Chipher anfangen. AH solltest Du meiden, das bekommst Du stabiler mit ESP und einer HMAC hin.

NAT ist praktisch immer sehr schädlich für IPSec, da kann schon IKE auf die Nase fallen. weil der Absendeport nicht stimmt.

Heißt es der oder die Firewall?
Es heißt 'die Firewall', 'der Feuerwall' und 'die Feuerwand'. Regional verschieden bestimmt sich das Geschlecht eines Fremdwortes nach dem seiner Übersetzung oder bleibt sächlich. Oft wird einfach nach Sprachgefühl ein Geschlecht vergeben. Da 'the' und 'die' am ähnlichsten klingen, hat sich 'die Firewall' durchgesetzt. Die Form 'der Firewall' entsteht bei einer unvollständigen Übersetzung zu 'Feuerwall' statt 'Feuerwand'. Diese Form ist unter Lektoren verbreitet.

Was ist eigentlich sicher?
Die Frage nach Sicherheit, zieht sofort die Gegenfrage "Wogegen?" nach sich. Wie schützt man ein System gegen bspw. Fehlbedienung?

Der Begriff Sicherheit bezieht sich auf ein bestimmtes Szenario und ist dort binär: Entweder ein System ist gegenüber genau diesem Szenario sicher oder eben nicht.

Trotzdem hört man immer wieder davon, etwas "sicherer" zu machen. Dies bezieht sich auf die Gesamtmenge aller denkbaren Szenarien und versucht den Prozentsatz der Szenarien zu ermittlen, in denen das System sicher ist. Da aber ein unsicheres Szenario genügt, um ein System zu kompromittieren, ist diese Denkweise höchst gefährlich. Es gibt überabzählbar unendlich viele Szenarien, man kann sich aber nur gegen konkrete Szenarien schützen. Das Maß der so entstehenden Gesamtsicherheit ist aber nicht zwangsweise Null, da man sich gegen Sicherheitsklassen schützen kann (Pufferüberläufe, Rechner wegtragen, Stromausfall bis zu einer Stunde).

Erstes Fazit: Man braucht eine Liste von Szenarien, in denen man Sicherheit erreichen will. => Ein Konzept.

Was ist aber nun sicher? Es gibt viele Antworten, meine ist: "Sicher ist ein System genau dann, wenn die Kosten des Angriffs den erzielbaren Nutzen niemals unterschreiten." Diese Definition gestattet es, die Sicherheit von Systemen zu ermitteln, da man theoretische Untergrenzen des Aufwandes ermitteln kann und somit weiß, wieviel Wert man einem solchen System anvertrauen kann. Z.B. ist der Wert einer Pressemitteilung auf die Zeit vor deren Veröffentlichung begrenzt. Ein Schutz, der mit einem Aufwand von einer Mio EUR nicht unter einem Monat zu brechen ist, reicht also, um wöchentliche Meldungen zu schützen, aus denen man weniger Nutzen ziehen kann.

Andere Definitionen befassen sich mit der Wahrscheinlichkeit möglicher Schäden und setzen das in Verhältnis zum getriebenen Aufwand. Dies ist besonders in der Versicherungsbranche üblich und eine rein betriebswirtschaftliche Kalkulation über die Menge aller möglichen Szenarien. Es ist keine Aussage zur Sicherheit in einem Szenario, sondern Eine zur Gesamtsicherheit. Viele Industrieversicherer bieten eine von den Schutzvorkehrungen abhängige Prämie. Dies ist einer der besten Tests für eine Firewall.

Warum muß man die MTU Größe anpassen, wenn Paketfilter eingesetzt werden?
Man darf nicht planlos ICMP sperren, dann gibt es die Probleme nicht mehr. Der Hintergrund ist eigentlich ganz einfach: Path MTU Discovery.

Wenn man ein IP Paket auf die Reise schickt, dann kann es passieren, daß unterwegs die Leitungs-MTU kleiner wird und das Paket nicht mehr durchpaßt. Normalerweise zerlegt der Router, dem das passiert, das IP Paket in Fragmente und schickt die durch. Einfach, trival, funktioniert.

Manchmal will man das nicht, so daß man ein "Don't Fragment" Bit im IP Header setzen kann, wenn das Paket nicht zerlegt werden darf. In dem Fall schickt der Router, dem das trotzdem passiert, ein ICMP 'Destination unreachable: Fragmentation needed, but DF set.' an den Absender zurück. Der weiß nun, daß es nicht geklappt hat.

Nun hat jemand sich vor einigen Jahren gedacht, daß es prima wäre, den Routern die Arbeit zu erleichtert. Er hat nun alle Pakete mit gesetztem DF Bit gesendet. Kam von einem Router eine ICMP Fehlermeldung zurück, dann hat er die in der Fehlermeldung mit angegebene maximale Größe der Strecke genommen und nur für diese Verbindung kleinere Pakete gesendet. Das Ganze nennt man PMTUD.

Darüberhinaus gibt es Buffergrenzen, die ein IP-Stack vorhält, wenn er TCP-Segmente verarbeitet. Um der Gegenseite mitzuteilen, welche maximalen Segmentgrößen er verträgt, setzt er beim Verbinungsaufbau (SYNC) die Option TCPMSS (TCP Maximum Segment Size).

Irgendwann beobachtete jemand anderes, daß die "dünneren" Leitungen, die also kleinere MTUs haben, meist beim Endpunkt einer Verbindung stehen und dachte sich, man könne die Buffergrenzen des TCP Stacks ebenfalls als Obergrenze der MTU interpretieren. Der Gedanke allein ist derartig schwachsinnig, daß es schmerzt: Hier wurde Kausalität und Korrelation verwechselt. Man setzt nämlich die Puffergrenzen so, daß sie in der lokalen Umgebung sinnvoll sind, und das ist zufällig die LeitungsMTU am nächsten Interface, weil ja einkommende Pakete eh' nicht größer sein können. Das sagt natürlich gar nichts über die MTU der Leitungen zwischen den Endgeräten aus, besonders, da die allerletzte Strecke meist ein "dickes" Ethernetinterface ist.

Kurz gesagt hat sich der Letztgenannte also eine Modifikation des TCP/IP Stacks dahingehend einfallen lassen, daß der den TCPMSS Parameter als Startwert für PMTUD nimmt.

Neu in dem Szenario sind jetzt die strunzdämlichen Paketfilter-Admins, die ICMP als Angriff werten und abschalten. Danach geht nichts mehr, wenn einer von beiden PMTUD probiert. Die Pakete können grundsätzlich nicht durchkommen, weil die Fehlermeldungen weggeworfen werden. Und anstatt nun einfach PMTUD abzuschalten, so daß es gar keine Fehlermeldungen mehr gibt, setzt man die MTU auf dem Interface so geschickt niedrig, daß die ausgehenden Pakete grundsätzlich klein genug sind, um überall durchzukommen. Außerdem signalisiert man mit TCPMSS der Gegenstelle, doch bitte kleine Pakete zu senden. Das ist zwar ineffizient, aber es gibt keine Fehlermeldungen mehr, die von dem strunzdämlichen Paketfilter-Admins des Serverproviders weggeworfen werden könnten.

Anstatt den Wunsch der betreffenden Firma zu respektieren und die Webseiten links liegen zu lassen, setzen die Leute ihre MTU auf den Interfaces herab und produzieren so kleinere Buffer im TCP-Stack, der von anderen Systemen bequem überschrieben werden kann, so daß man sich selbst eine Sicherheitslücke baut und von der Kommunikation mit anderen Systemen ausschließt. Es sei denn, man sagt die kleinere MTU /allen/ Geräten im lokalen Netz, auch dem Server. Oder man sagt seinem Außenrouter, er möge doch bitte die TCPMSS Optionen, so sie mal gesetzt sind, an die MTU der Außenleitung anpassen. Das nennt man MSS-Clamping. Es funktioniert dann aber nur für TCP Verbindungen, die man selbst mit TCPMSS Optionen begann. UDP und andere Protokolle sind davon unberührt.

Wo kann ich meinen Rechner scannen lassen?
Es gibt einige frei zugängliche Scanner. U.a.:

Ist NAT ein ausreichender Schutz für Surfer?
Adressumsetzung (NAT) wurde entwickelt, um Kommunikation zwischen Anwendungen auch dann zu ermöglichen, wenn die Adressen der Gegenstellen nicht direkt gegenseitig erreichbar sind.

Die meisten Anwendungen verwenden nicht allein eine Verbindung, die von dem Surfersystem zum jeweiligen Server aufgebaut wird, sondern eine Vielzahl von unterstützenden Diensten und damit auch unterschiedlichen Protokollen. Die Richtung dieser unterstützenden Verbindungen ist dabei oft auch vom Server zum Client(Surfer).

Erreicht einen NAT-Router ein Paket für eine umgesetze Adresse, so wird er versuchen, irgendwie den eigentlichen Empfänger zu erraten und das Paket zuzustellen. Das gilt insbesondere dann, wenn der NAT-Router keine intime Protokollkenntnis der Anwendung hat. Oft besteht keine Chance für den NAT-Router, selbst bei Kenntnis des Protokolls, den Empfänger sicher zu ermitteln. Dann wird mittels einer Heuristik der Empfänger erraten. Dies gilt insbesondere bei verschlüsselten Verbindungen und verbindungslosen Protokollen.

Ein NAT-Router ist deswegen keine Sicherheitskomponente.

Danksagung an: Stefan Heinecke, Heiko Schlenker, Lars Holste, Felix von Leitner, Jens Hektor, Juergen Ilse, Manfred Koerkel, Urs Traenkner und viele andere.
zur ckzurück © 1996-2024 Lutz Donnerhacke @ IKS GmbH Jena Tuesday | 19.Mar.2024