1. Einleitung 1.1 Was ist Netfilter? 1.2 Was stimmte nicht, was wir im 2.0er u. 2.2er Kernel hatten? 1.3 Wer bist Du? 1.4 Wieso stürzt es ab?

Größe: px
Ab Seite anzeigen:

Download "1. Einleitung 1.1 Was ist Netfilter? 1.2 Was stimmte nicht, was wir im 2.0er u. 2.2er Kernel hatten? 1.3 Wer bist Du? 1.4 Wieso stürzt es ab?"

Transkript

1 Linux netfilter Hacking HOWTO Rusty Russell, mailing list ins Deutsche übersetzt von Melanie Berg Überarbeitung von Martin Heidenreich v1.0 Thu Mar 29 13:38:03 CST 2005 Dieses Dokument beschreibt die netfilter-architektur für Linux, wie man sie hacken kann und einiger darauf aufbauende größere Systeme, wie Paketfilter, connection tracking und Network Address Translation (NAT). Diese deutsche Übersetzung steht unter den Bedingungen der GNU General Public License (http://www.gnu.org/copyleft/gpl.html). Inhaltsverzeichnis 1. Einleitung 1.1 Was ist Netfilter? 1.2 Was stimmte nicht, was wir im 2.0er u. 2.2er Kernel hatten? 1.3 Wer bist Du? 1.4 Wieso stürzt es ab? 2. Wo kann ich die neueste Version herbekommen? 3. Netfilter Architektur 3.1 Netfilter Grundlagen 3.2 Paketauswahl: iptables Paketfilter NAT Masquerading, Portforwarding, transparente Proxies 3.3 Connection Tracking 3.4 Sonstige Möglichkeiten 4. Informationen für Programmierer 4.1 ip_tables verstehen ip_tables Datenstruktur ip_tables aus Sicht der Anwender ip_tables verwenden und erforschen 4.2 iptables erweitern Der Kernel Neue Match-Funktionen Neue Targets Neue Tabellen Anwendertools Neue Match-Funktionen Neue Targets `libiptc' verwenden 4.3 NAT verstehen Connection Tracking 4.4 NAT/Connection Tracking erweitern Standard NAT-Targets Neue Protokolle Der Kernel von innen Neue NAT-Targets Protokoll-Hilfen für TCP und UDP 4.5 Netfilter verstehen (lernen) 4.6 Neue Netfilter-Module schreiben Netfilter-Schnittstellen benutzen Eingereihte Pakete behandeln Kommandos vom Anwender empfangen 4.7 Behandlung von Paketen aus Sicht der Anwender

2 5. 2.0er und 2.2er Paketfilter-Module übersetzen 6. Die Testsuite 6.1 Einen Test schreiben 6.2 Variablen und Umgebung 6.3 Nützliche Tools gen_ip rcv_ip gen_err local_ip 6.4 Einige Ratschläge 7. Motivation 8. Danke 1. Einleitung Hi Leute. Dieses Dokument ist eine Reise; manche Teile sind gut besucht, und in anderen Bereichen wirst Du Dich fast alleine fühlen. Der beste Rat, den ich Dir geben kann, ist Dir eine große, heiße Tasse Kaffee oder Schokolade zu besorgen, Dich in einen bequemen Stuhl zu setzen, und den Inhalt in Dich aufzunehmen, bevor Du Dich in die gefährliche Welt des Netzwerk-Hackens begibst. Um die Verwendung der Infrastruktur auf dem Netfilter-Rahmenwerk besser zu verstehen, empfehle ich, das Paketfiltering-HOWTO und das NAT-HOWTO zu lesen. Für Informationen über Kernel-Programmierung empfehle ich meine anderen Tutorials. Dieses Dokument enthält Flüche. Das ist ein natürliches Gewürz in meiner Sprache, aber Du kannst die Originalversion dieses HOWTOs in American Broadcast übersetzen, wenn Du den Filter benutzt: sed 's/[^]aeio]ck/reak/' 1.1. Was ist Netfilter? Netfilter ist eine Basis der Paketbehandlung, gehört aber nicht zu dem normalen Berkeley Socket Interface. Es besteht aus vier Teilen. Zuerst definiert jedes Protokoll 'Hooks' (IPv4 definiert 5), welche wohl definierte Punkte auf der Reise eines Pakets durch den Protokoll- Stack sind. An jedem dieser Punkte wird das Protokoll Netfilter mit dem Paket und der Hook-Nummer aufrufen. Zweitens können Teile des Kernels sich für das Aufpassen auf verschiedene Hooks für jedes Protokoll registrieren. Wenn ein Paket also an Netfilter gereicht wird, wird überprüft, ob irgendjemand für dieses Protokoll oder für diesen Hook registriert ist; Wenn ja, bekommt jeder von ihnen der Reihe nach die Chance, das Paket zu untersuchen (es möglicherweise zu verändern), das Paket zu verwerfen, es durchzulassen oder Netfilter zu beauftragen, das Paket für Userspace einzureihen.

3 Der dritte Teil besteht darin, dass eingereihte Pakete gesammelt werden (von ip_queue-treiber), um an den Userspace geschickt zu werden; diese Pakete werden asynchron behandelt. Der letzte Teil besteht aus coolen Kommentaren im Code und Dokumentation. Das ist Bestandteil eines jeden experimentellen Projekts. Das Netfilter- Motto ist (schamlos von Cort Dougan gestohlen): '' Also... wo ist das hier besser als KDE? '' (Dieses Motto hat sich ein wenig ausgeweitet: ''Peitsch mich aus, schlag mich, lass mich ipchains benutzen''). Zusätzlich zu diesem einfach Rahmenwerk wurden verschiedene Module geschrieben, welche Funktionalitäten ähnlich zu früheren (pre-netfilter) Kernel bieten, im Besonderen ein erweiterbares NAT-System, und ein erweiterbares Paketfilter-System (iptables) Was stimmte nicht, was wir im 2.0er und 2.2er Kernel hatten? 1. Keine ausgebaute Infrastruktur, um Pakete an Userspace weiterzugeben: o Kernelprogrammierung ist schwer o Kernelprogrammierung muss in C/C++ gemacht werden o Dynamische Filter-Policies gehören nicht in den Kernel o 2.2 führte ein, Pakete via netlink zum Userspace zu kopieren, aber das ist langsam, und 'sanity checks' (wenn ein Paket z.b. nur behauptet, von einer existierenden Schnittstelle zu kommen) sind nicht möglich. 2. Transparente Proxies sind eine Qual: o Wir untersuchen jedes Paket, um zu sehen, ob ein Socket an diese Adresse gebunden ist o Root darf an fremde Adressen binden o Lokal-generierte Pakete können nicht redirected werden o REDIRECT behandelt keine UDP-Antworten: Ein UDP-Named-Paket an 1153 weiterleiten funktioniert nicht, weil manche Clients Antworten von anderen Ports als 53 nicht mögen. o REDIRECT koordiniert sich nicht mit der TCP/UDP Portzuordnung: Ein Benutzer kann einen Port durch eine REDIRECT-Regeln shadowen. o Es ist während der 2.1er-Serie mindestens zweimal zusammengebrochen.

4 o Code ist extrem aufdringlich. Denk an die Statistiken von #ifdef CONFIG_IP_TRANSPARENT_PROXY in 2.2.1: es tritt in 11 Dateien insgesamt 34mal auf. Im Vergleich dazu taucht CONFIG_IP_FIREWALL in 5 Dateien nur insgesamt 10mal auf. 3. Es ist nicht mögliche, Paketfilter-Regeln unabhängig von der Adresse der Schnittstelle zu erstellen: o Um lokal generierte oder lokal bestimmte Pakete von durchgehenden Paketen unterscheiden zu können, muss die lokale Adresse der Schnittstelle bekannt sein. o Sogar das reicht bei Redirection oder Masquerading nicht aus. o Die FORWARD-Kette besitzt nur Informationen über die ausgehende Schnittstelle, was bedeutet, dass Du herausfinden musst, woher ein Paket kam, indem Du Dein Wissen über die Netzwerk-Topologie anwendest. 4. Masquerading ist abhängig von Paketfiltern: Interaktionen zwischen Paketfiltern und Masquerading machen eine Firewall komplex: o Beim Eingangsfilter scheinen Antwortpakete für den Rechner selbst bestimmt zu sein o Beim Forward-Filter werden demaskierte Pakete überhaupt nicht gesehen o Beim Ausgangsfilter scheinen Pakete vom lokalen Rechner zu kommen 5. TOS-Manipulation, Redirect, ICMP unreachable und mark (welche Effekte auf Portforwarding, Routing und QoS haben können) hängen ebenfalls vom Paketfilter-Code ab. 6. ipchains-code ist weder modular noch erweiterbar (zum Beispiel MAC- Adressen Filter, Filtern nach Optionen, etc). 7. Mangel an ausreichender Infrastruktur hat zu einem Überfluss von von verschiedenen Techniken geführt: o Masquerading plus Per-Protokoll Module o Schnelles, statisches NAT durch Routing Code (hat keine Per- Protokoll Routinen) o Portforwarding, Redirect, Auto-Forwarding o Das Linux NAT und virtuelle Server Projekte. 8. Inkompatibilität zwischen CONFIG_NET_FASTROUTE und Paketfiltern: o Weitergeleitete Pakete gehen trotzdem durch drei Ketten o Keine Möglichkeit, zu sagen, ob diese Ketten umgangen werden können

5 9. Wegen Routing-Protection (z.b. Verifikation der Quelladresse) keine Möglichkeit, verworfene Pakete zu untersuchen. 10.Keine Möglichkeit, automatisch die Zähler auf Paketfilter-Regeln zu lesen. 11.CONFIG_IP_ALWAYS_DEFRAG ist eine Compilezeit-Option, die das Leben für Distributionen, die einen general-purpose Kernel wollen, schwer macht Wer bist Du? Ich bin der einzige, der dumm genug ist, das zu tun. Als ipchains Co- Autor und jetziger Linux Kernel IP Firwall Maintainer sehe ich viele der Probleme, die die Leute mit dem jetzigen System haben, da ich erkenne, was sie alles machen wollen Wieso stürzt es ab? Woah! Du hättest es letzte Woche sehen sollen! Weil ich kein so guter Programmierer bin, wir alle es uns wünschen würden und ich natürlich aus Zeitmangel nicht alle Szenarien getestet habe, Ausstattung und/oder Inspiration. Ich habe eine Testumgebung und ich will Dich ermutigen, daran teilzunehmen. 2. Wo kann ich die neueste Version herbekommen? Es gibt einen Server auf netfilter.org der die neuesten HOWTOs, Anwenderprogramme und Testseiten enthält.

6 3. Netfilter Architektur Netfilter ist mehr eine Serie von Hooks auf bestimmten Positionen in einem Protokoll-Stack (Zurzeit IPv4, IPv6 und DECnet). Das (idealisierte) IPv4 Reise-Diagramm sieht folgendermaßen aus: Ein Paket, das das Netfilter System durchreist: --->[1]--->[ROUTE]--->[3]--->[4]---> ^ [ROUTE] v [2] [5] ^ v Links geht das Paket ein: Den einfachen sanity-check überstanden (ich meine, nicht verstümmelt, Checksumme OK, kein promiscuous receive), werden sie an den NF_IP_PRE_ROUTING [1] Hook des Netfilter Rahmenwerks weitergereicht. Als nächstes kommen sie in den Routing-Code, welcher entscheidet, ob das Paket für eine andere Schnittstelle oder für einen lokalen Prozess bestimmt ist. Der Routing-Code kann nicht routebare Pakete verwerfen. Wenn es für den Rechner selbst bestimmt ist, wird der NF_IP_LOCAL_IN [2] Hook des Netfilter Rahmenwerks wieder aufgerufen, bevor das Paket an den Prozess (wenn es einen gibt) geschickt wird. Wenn der Zielort stattdessen eine andere Schnittstelle ist, wird der NF_IP_FORWARD [3] Hook des Netfilter Rahmenwerks stattdessen aufgerufen. Das Paket durchläuft dann den letzten Netfilter Hook, den NF_IP_POST_ROUTING [4] Hook, bevor es wieder in die Leitung geschickt wird. Für Pakete, die lokal generiert wurden, wird der NF_IP_LOCAL_OUT [5] Hook aufgerufen. Hier kannst Du sehen, dass Routing erst dann einsetzt, wenn dieser Hook aufgerufen wurde: Tatsächlich wird zuerst der Routing-Code aufgerufen (um Angaben über Quelladresse und IP- Optionen zu bestimmen) und wird erneut aufgerufen, wenn das Paket geändert werden sollte Netfilter Grundlagen Jetzt haben wir ein Beispiel von netfilter für IPv4, Du kannst sehen, wann jeder Hook aktiviert wird. Das ist die Essenz von Netfilter.

7 Kernelmodule können sich registrieren, um an irgendeinem dieser Hooks lauschen. Wenn dieser Netfilter Hook dann vom Networking-Code aufgerufen wird, hat an diesem Punkt jedes registrierte Modul die Möglichkeit, das Paket zu verändern. Das Modul kann Netfilter sagen, eine von drei Sachen zu tun: 1. NF_ACCEPT: Die Reise wie gewöhnlich fortsetzen. 2. NF_DROP: das Paket verwerfen, die Reise nicht fortsetzen. 3. NF_STOLEN: Ich habe das Paket übernommen, setz die Reise nicht fort. 4. NF_QUEUE: Das Paket einreihen (gewöhnlich für Userspace). 5. NF_REPEAT: Diesen Hook erneut aufrufen. Die anderen Teile von Netfilter (eingereihte Pakete behandeln, coole Kommentare) werden später in der Kernel-Sektion erklärt. Auf diesem Fundament können wir ziemliche komplexe Paketfilter- Manipulationen aufbauen, wie in den nächsten zwei Sektionen gezeigt werden wird Paketauswahl: iptables Ein System zur Paketauswahl mit dem Namen IP-Tables wurde über das Netfilter Rahmenwerk gebaut. Es ist ein direkter Abkömmling von ipchains (welches von ipfwadm abstammt, welches, wenn ich mich richtig erinnere, von BSD's ipfw abstammt), mit Erweiterungen. Kernelmodule können eine neue Tabelle registrieren und von einem Paket verlangen, eine vorgegebene Tabelle zu durchwandern. Diese Methode zur Paketauswahl wird für Paketfilter (die 'Filter'-Tabelle), Network Address Translation (die 'NAT'-Tabelle) und allgemeine Behandlung von pre-routing Paketen (die 'mangle'-tabelle) verwendet Paketfiltern Diese Tabelle, 'filter', sollte die Pakete niemals verändern: sie soll sie nur filtern. Einer der Vorteile von iptables Filtern gegenüber ipchains ist, dass es klein und schnell ist, und es die Netfilter-Hooks NF_IP_LOCAL_IN, NF_IP_FORWARD und NF_IP_LOCAL_OUT verwendet. Das bedeutet, dass es für jedes gegebene Paket einen (und nur einen) möglichen Ort gibt, um es zu filtern. Dies vereinfacht die Dinge ungemein. Außerdem bedeutet der Fakt, dass das Netfilter Rahmenwerk beides, eingehende und ausgehende Schnittstellen für den NF_IP_FORWARD Hook bietet, dass viele Arten des Filterns weitaus einfacher werden. Beachte: Ich habe die Kernelteile sowohl von ipchains als auch von ipfwadm zu Modulen auf Netfilter portiert, was es ermöglicht, die alten ipfwadm und ipchains Anwendungstools ohne ein Upgrade weiter zu verwenden.

8 NAT Dies ist das Königreich der NAT-Tabelle, welche mit Paketen von drei Netfilter-Hooks gefüttert wird: für nicht-lokale Pakete sind für Quell- und Zielveränderungen jeweils der NF_IP_PRE_ROUTING und der NF_IP_POST_ROUTING Hook perfekt. Um das Ziel von lokalen Paketen zu verändern, wird der NF_IP_LOCAL_OUT Hook verwendet. Diese Tabelle unterscheidet sich insoweit leicht von der 'Filter'-Tabelle, als dass nur das erste Paket einer neuen Verbindung die Tabelle durchwandern wird: Das Resultat dieser Untersuchung wird dann auf alle weiteren Pakete derselben Verbindung angewandt Masquerading, Portforwarding, transparente Proxies Ich unterteile NAT in Source NAT (wo die Quelle des ersten Pakets verändert wird) und in Destination NAT (wo das Ziel der ersten Pakets verändert wird). Masquerading ist eine spezielle Form von Source NAT: Port-Forwarding und transparente Proxies sind eine spezielle Form von Destination NAT. Dies wird nun alles mit dem NAT-Rahmenwerk erledigt, anstatt unabhaengige Einheiten zu sein Connection Tracking Connection Tracking ist ein Fundament von NAT, wurde aber als separates Modul implementiert; dies erlaubt es, durch eine Erweiterung der Paketfilter einfach und sauber Connection Tracking zu verwenden (das 'state' Modul) Sonstige Möglichkeiten Die neue Flexibilität bietet sowohl die Möglichkeit, wirklich abgefahrene Dinge zu tun, als auch Erweiterungen oder einen kompletten Ersatz zu schreiben, die auch vermischt werden können. 4. Informationen für Programmierer Ich weihe Dich in ein Geheimnis ein: mein Hamster hat alles programmiert. Ich war nur das Medium, wenn Du es so willst das 'Front-End', im großen Plan meines Hamsters. Also mach mich nicht für irgendwelche Bugs verantwortlich. Mach den schlauen mit dem Fell verantwortlich ip_tables verstehen iptables besteht einfach aus einem benannten Array von Regeln im Speicher (daher der Name 'iptables') und Informationen darüber, wo Pakete von jedem Hook die Reise beginnen sollen. Nachdem eine Tabelle registriert wurde, kann ihr Inhalt von Anwenderseite her gelesen oder ersetzt werden, indem getsockopt() und setsockopt() benutzt werden.

9 iptables registriert nicht mit irgendwelchen Netfilter Hooks: es verlässt sich auf andere Module, die das tun und es angemessen mit Paketen füttern sollen ip_tables Datenstruktur Der Bequemlichkeit halber wird dieselbe Datenstruktur verwendet, um eine Regel von Anwenderseite her oder im Kernel selbst zu repräsentieren, obwohl einige Felder nur im Kernel selbst benutzt werden. Jede Regel besteht aus folgenden Teilen: 1. Einem 'struct ip_entry'. 2. Null oder mehr 'struct ipt_entry_match' Strukturen, an jede Platz für Variablen (0 oder mehr Bytes) von Daten angehängt. 3. Einer 'struct ipt_entry_target' Struktur, an jede Platz für Variablen (0 oder mehr Bytes) von Daten angehängt. Die Variablen-Natur der Regeln gibt eine große Flexibilität für Erweiterungen, wie wir sehen werden, besonders, da jeder Treffer oder jedes Ziel eine willkürliche Menge von Daten tragen können. Dies birgt zwar auch ein paar Fallen, aber wie auch immer: Wir müssen aufpassen. Wir tun dies, indem wir uns darüber versichern, dass die 'ipt_entry', die 'ipt_entry_match' und die 'ipt_entry_target' Strukturen eine angenehme Größe haben, und dass alle Daten auf die maximale Auslastung des Rechners aufgerundet werden, indem wir den IPT_ALIGN() Makro verwenden. `struct ipt_entry' hat die folgenden Felder: 1. Einen 'struct ipt_ip' Teil, der die Bestimmungen für den IP-Header enthält, der zutreffen soll. 2. Ein 'nf_cache' Bitfeld, das zeigt, welche Teile des Pakets diese Regel untersucht hat. 3. Ein 'target_offset' Feld, das den Absatz vom Anfang dieser Regel angibt, wo die ipt_entry_target Struktur beginnt. 4. Ein 'next_offset' Feld, das die absolute Größe dieser Regel angibt, einschließlich Treffer und Ziele. 5. Ein 'comefrom' Feld, das vom Kernel benutzt wird, um die Reise des Pakets zurückzuverfolgen. 6. Ein 'struct ipt_counters' Feld, was die Paket- und Bytezaehler für Pakete, die auf diese Regel gepasst haben, enthaelt. ipt_entry_match' und 'struct ipt_entry_target' sind sehr ähnlich darin, dass sie ein Feld für die Gesamtlänge (jeweils 'match_size' und `target_size') enthalten, einen Union, der den Namen des Treffers oder des Ziels (auf Anwenderseite) enthält, und einen Pointer (für den Kernel).

10 Wegen der trickreichen Natur der Datenstruktur einer Regel werden einige Hilfsroutinen angeboten: ipt_get_target() Diese Funktion liefert einen Pointer auf das Target einer Regel. IPT_MATCH_ITERATE() Dieser Makro ruft die gegebene Funktion für jeden Treffer einer Regel auf. Das erste Argument der Funktion ist 'ipt_match_entry' und andere Argumente (wenn es welche gibt) sind die, die im IPT_MATCH_ITERATE() Makro angeboten werden. IPT_ENTRY_ITERATE() Diese Funktion macht einen Pointer zu einem Eintrag, der Gesamtgröße der Tabelle der Einträge und einer Funktion, die aufzurufen ist. Das erste Argument der Funktion ist 'struct ipt_entry', und andere Argumente (wenn es welche gibt) sind die, die im IPT_ENTRY_ITERATE() Makro angeboten werden ip_tables aus Sicht der Anwender Userspace hat vier Operationen: Es kann die aktuelle Tabelle lesen, die Info lesen (Hook-Positionen und Größe der Tabelle), die Tabelle ersetzen (und die alten Zähler nehmen), und neue Zähler einbauen. So kann Userspace eine kleine Operation simulieren: Dies wird von der libiptc Library getan, welche die einfachen "add/delete/replace" semantics für Programme bietet. Da diese Tabellen in den Kernel transferiert werden, stellt sich die Frage der Auslastung der Maschinen, die unterschiedliche Userspaceund Kernel- space Typ-Regeln haben (z.b. Sparc mit 32-Bit Userland). Diese Fälle werden mit dem Überschreiben der Definition von IPT_ALIGN für diese Plattformen in 'libiptc.h' behandelt ip_tables verwenden und erforschen Der Kernel beginnt die Untersuchung an der Stelle, die durch einen bestimmten Hook definiert ist. Diese Regel wird überprüft; wenn das 'struct ipt_ip' Element zutrifft, wird jedes 'struct ip_entry_match' der Reihe nach untersucht (es wird die match-funktion entsprechend dem Treffer aufgerufen). Wenn die match-funktion 0 liefert, endet die Iteration auf dieser Regel. Wenn sie den 'hotdrop' Parameter auf 1 setzt, wird das Paket ebenfalls sofort verworfen werden (Dies wird für einige verdächtige Pakete benutzt, so wie in der TCP-match Funktion). Wenn diese Iteration bis zum Ende durchläuft, werden die Counter erhöht, `struct ipt_entry_target' wird untersucht: Wenn es ein Standardtarget ist, wird das 'verdict' Feld gelesen (negativ bedeutet ein Urteil über das Paket, positiv steht für ein Offset, zu dem man springen kann). Wenn die Antwort positiv ist und das Offset nicht das der nächsten Regel ist, wird die 'back' Variable gesetzt, und der vorige 'back' Wert wird in das 'comefrom' Feld der Regel geschrieben.

11 Für nicht-standard Targets wird die target Funktion aufgerufen: Sie liefert ein Urteil (nicht-standard Ziele können zu nichts springen, das würde den statischen Loop-Detection-Code brechen). Das Urteil kann IPT_CONTINUE sein, um bei der nächsten Regel weiterzumachen iptables erweitern Weil ich so faul bin, ist iptables leicht erweiterbar. Dies ist hauptsächlich der Versuch, die Arbeit auf die anderen zu schieben, worum es bei Open Source eigentlich geht (Bei Freier Software, wie RMS sagen würde, geht es um Freiheit und ich saß bei einem seiner Gespräche dabei, als ich das hier schrieb). iptables erweitern besteht aus zwei Teilen: den Kernel erweitern, indem man ein neues Modul schreibt, und möglicherweise das Anwendungsprogramm iptables erweitern, indem man eine neue Shared Library schreibt Der Kernel Ein Kernelmodul selbst zu schreiben ist ziemlich einfach, wie Du an den Beispielen sehen kannst. Eine Sache, auf die Du achten musst, ist, dass Dein Code integriert werden muss: Es kann ein Paket von Anwenderseite her ankommen, während ein anderes an einem Interrupt eintrifft. Tatsächlich kann es ab bei SMP vorkommen, dass ein Paket an einem Interrupt pro CPU eintrifft. Folgende Funktionen musst Du kennen: init_module() Das ist der Eintrittspunkt des Moduls. Es liefert eine negative Zahl oder 0, wenn Netfilter es erfolgreich registriert. cleanup_module() Das ist der Austrittspunkt des Moduls; es soll die Registration beim Kernel wieder aufheben. ipt_register_match() Dies wird verwendet, um einen neuen, zutreffenden Typ zu registrieren. Du übergibst ihm ein 'struct ip_match', was gewöhnlich als statische Variable deklariert wird (file-scope). ipt_register_target() Dies wird verwendet, um einen neuen Typ zu registrieren. Du übergibst ihm ein 'struct_ip_target', was gewöhnlich als statische Variable deklariert wird (file-scope). ipt_unregister_target() Um die Registration des Ziel aufzuheben. ipt_unregister_match() Um die Registration des Treffers aufzuheben.

12 Eine Warnung zu trickreichen Dingen (wie das Verwenden von Countern) für Deine neuen Treffer oder Ziele. Auf SMP-Maschinen wird die vollständige Tabelle mit Hilfe von memcpy für jede CPU dupliziert: Wenn Du die Information wirklich zentral halten willst, solltest Du Dir die Treffermethode zu 'limit' ansehen Neue Match-Funktionen Neue Match-Funktionen werden gewöhnlich als allein stehende Module geschrieben. Es ist möglich, diese Module der Reihe nach zu erweitern, obwohl es normalerweise nicht nötig ist. Eine Möglichkeit, um den Benutzern zu erlauben, direkt mit Deinem Modul zu sprechen, ist es, die `nf_register_sockopt' Funktion des Netfilter Rahmenwerks zu nutzen. Eine andere Möglichkeit ist es, Symbole für andere Module zu exportieren, damit sie sich registrieren können; auf diese Weise machen es Netfilter und iptables. Das Wesentliche Deiner neuen Match-Funktion ist 'struct ipt_match', was an 'ipt_register_match()' übergeben wird. Diese Struktur hat die folgenden Felder: list Dieses Feld ist auf irgendeinen Blödsinn gesetzt, z.b. '{NULL, NULL}'. name Dieses Feld ist der Name der Match-Funktion, auf die sich der Anwender bezieht. Der Name sollte dem Modul entsprechend gewählt werden (wenn der Name "mac" ist, muss das Modul "ipt_mac.o" heißen), damit es automatisch geladen werden kann. match Diese Feld ist ein Pointer auf eine Match-Funktion, welche aus einem skb, dem Pointer auf ein Eingangs- und ein Ausgangsgerät (eins davon kann NULL sein, das hängt von dem Hook ab), einem Pointer auf die Match-Daten der zutreffenden Regel, der Größe dieser Regel, dem IP-Offset (nicht Null steht für ein non-head Fragment), einem Pointer auf den Protokoll-Header (ich meine nur den IP-Header), der Gesamtlänge der Daten (ich meine die Paketlänge minus der IP-Header Länge) und schließlich einem Pointer auf die 'hotdrop' Variable besteht. Es soll nicht Null liefern, wenn die Regel auf das Paket zutrifft, und kann 'hotdrop' auf 1 setzen, wenn es Null liefert, um anzuzeigen, dass das Paket sofort verworfen werden soll. checkentry Dieses Feld ist ein Pointer auf eine Funktion, die die Bestimmungen für eine Regel untersucht; Wenn es 0 liefert, wird die Regel des Benutzers nicht akzeptiert werden. Zum Beispiel wird der "tcp" Match Typ nur TCP-Pakete akzeptieren, wenn also der 'struct ipt_ip' Teil der Regel nicht spezifiziert, dass das Protokoll TCP sein muss, wird Null geliefert. Das Tablename Argument erlaubt Deinem Match, zu kontrollieren, in welchen Tabellen es eingesetzt werden kann, und `hook_mask' ist eine Bitmaske von Hooks, von denen diese Regel möglicherweise aufgerufen wurde: Wenn Dein Match von einem der Netfilter-Hooks keinen Sinn macht, kannst Du das hier umgehen.

13 destroy Dieses Feld ist ein Pointer auf eine Funktion, die aufgerufen wird, wenn ein Eintrag, der dieses Match verwendet, gelöscht wird. Dies erlaubt Dir auch, Resourcen in checkentry dynamisch zuzuordnen und sie hier wieder aufzuräumen. me Dieses Feld ist auf '& this_module' gesetzt, welches Deinem Modul einen Pointer gibt. Es bewirkt, dass der usage-count steigt und fällt, je nachdem, ob Regeln dieses Typs erstellt oder gelöscht werden. Das bewahrt den Benutzer davon, das Modul zu entfernen (und somit das cleanup_module aufzurufen), wenn sich eine Regel darauf bezieht Neue Targets Neue Targets werden auch gewöhnlich als allein stehende Module geschrieben. Die Diskussionen der oberen Sektion 'Neue Match Funktionen' können hier ähnlich angewandt werden. Das Wesentliche Deines neuen Targets ist 'struct ipt_target', das an `ipt_register_target()' übergeben wird. Diese Struktur hat die folgenden Felder: list Dieses Feld ist auf irgendeinen Blödsinn gesetzt, z.b. '{NULL, NULL}'. name Dieses Feld ist der Name der Ziel-Funktion, auf die sich der Anwender bezieht. Der Name sollte dem Modul entsprechend gewählt werden (wenn der Name "REJECT" ist, muss das Modul "ipt_reject.o" heißen), damit es automatisch geladen werden kann. target Diese Feld ist ein Pointer auf eine Ziel-Funktion, welche aus einem skbuff, dem Pointer auf ein Eingangs- und ein Ausgangsgerät (eins davon kann NULL sein) einem Pointer auf die Ziel-Daten, der Größe der Ziel-Daten, und der Position der Regel in der Tabelle besteht. Die Target-Funktion liefert eine nicht-negative, absolute Position, zu der zu springen ist, oder ein negatives Urteil (was das negierte Urteil minus 1 ist). checkentry Dieses Feld ist ein Pointer auf eine Funktion, die die Bestimmungen für eine Regel überprüft; wenn das 0 liefert, wird die Regel des Benutzers nicht akzeptiert werden.

14 destroy Dieses Feld ist ein Pointer auf eine Funktion, die aufgerufen wird, wenn ein Eintrag, der dieses Match verwendet, gelöscht wird. Dies erlaubt Dir auch, Resourcen in checkentry dynamisch zuzuordnen und sie hier wieder aufzuräumen. me Dieses Feld ist auf '& this_module' gesetzt, welches Deinem Modul einen Pointer gibt. Es bewirkt, dass der usage-count steigt und fällt, je nachdem, ob Regeln dieses Typs erstellt oder gelöscht werden. Das bewahrt den Benutzer davon, das Modul zu entfernen (und somit das cleanup_module aufzurufen), wenn sich eine Regel darauf bezieht Neue Tabellen Wenn Du willst, kannst Du für einen speziellen Zweck eine neue Tabelle erstellen. Um das zu tun, rufst Du 'ipt_register_table()' mit `struct ipt_table' auf, was die folgenden Felder hat: list Dieses Feld ist auf irgendeinen Blödsinn gesetzt, z.b. '{NULL, NULL}'. name Dieses Feld ist der Name der Ziel-Funktion, auf die sich der Anwender bezieht. Der Name sollte dem Modul entsprechend gewählt werden (wenn der Name "nat" ist, muss das Modul "ipt_nat.o" heißen), damit es automatisch geladen werden kann. table Dies ist ein voll ausgenutztes 'stuct ipt_replace', wie es vom Anwender genutzt werden kann, um eine Tabelle zu ersetzen. Der `counters' Pointer sollte auf NULL gesetzt sein. Diese Datenstruktur kann als ' initdata' deklariert werden, damit es nach dem Booten verworfen werden kann. valid_hooks Dies ist eine Bitmaske der IPv4 Netfilter Hooks, mit der Du die Tabellen betreten wirst: Sie wird verwendet, um zu überprüfen, dass diese Eintrittspunkte gültig sind und um die möglichen Hooks für die ipt_match und die ipt_target 'checkentry() Funktionen zu berechnen. lock Dies ist das read-write Lock für die vollständige Tabelle, initialisiere es auf RW_LOCK_UNLOCKED. private Dies wird vom ip_tables Code intern verwendet.

15 Anwendertools Jetzt, wo Du Dein nettes cooles Kernelmodul geschrieben hast, möchtest Du vielleicht seine Optionen von Anwenderseite her kontrollieren. Lieber, als für jede Erweiterung von iptables eine abgespaltene Version zu haben, benutze ich eine Technologie der späten 90er: Furbies. Sorry, ich meine shared Libraries. Gewöhnlich benötigen neue Tabellen keine Erweiterungen von iptables: Der Benutzer verwendet einfach die '-t' Option, um auf eine neue Tabelle zugreifen zu können. Die shared Libraries sollten eine '_init()' Funktion haben, die beim Laden automatisch aufgerufen wird: Das moralische Gegenstück zu der `init_module()' Funktion der Kernelmodule. Dies sollte 'register_match()' oder 'register_target()' aufrufen, abhängig davon, ob Deine shared Library ein neues Match oder ein neues Ziel ist. Du brauchst nur dann eine shared Library, wenn Du einen Teil der Struktur initialisieren oder eine zusätzliche Option bieten willst. Das Ziel `REJECT' zum Beispiel benötigt nichts dergleichen, hat also auch keine shared Library. Es gibt nützliche Funktionen, die in 'iptables.h.' beschrieben werden, besonders: check_inverse() Überprüft, ob eins der Argumente ein '!' ist, und wenn ja, setzt es das 'invert' Flag, wenn das noch nicht geschehen sein sollte. Wenn sie 'true' liefert, solltest Du optind wie im Beispiel erhöhen. string_to_number() Konvertiert einen String zu einer Zahl in der gegebenen Größenordnung. Sie liefert -1, wenn der String ungültig ist oder außerhalb der Größenordnung liegt. exit_error() Diese Funktion sollte aufgerufen werden, wenn ein Fehler gefunden wird. Das erste Argument ist gewöhnlich 'PARAMETER_PROBLEM', was bedeutet, dass der User die Kommandozeile nicht richtig benutzt hat.

16 Neue Match-Funktionen Die _init() Funktion Deiner shared Library übergibt einen Pointer auf ein statisches 'struct iptables_match' an 'register_match()', was die folgenden Felder hat: next Dieser Pointer wird verwendet, um eine verlinkte Liste von Matches zu erstellen (wie sie für die listing-regeln verwendet wird). Am Anfang sollte er auf NULL gesetzt sein. name Der Name der Match-Funktion. Er sollte entsprechend dem Namen der Library gewählt sein (z.b. "tcp" für 'libipt_tcp.so'). version Dies wird gewöhnlich auf den NETFILTER_VERION Makro gesetzt: Es stellt sicher, dass das iptables Binary nicht aus Versehen die falsche Library auswählt. size Die Größe der Match-Daten für dieses Match; damit Du Dir keine Sorgen machen musst, wird sie von IPT_ALIGN() automatisch aufgerundet werden. userspacesize Für einige Matches ändert der Kernel intern einige Felder (z.b. im Fall von 'limit'). Das bedeutet, dass ein einfaches 'memcmp' nicht mehr ausreicht, um zwei Regeln zu vergleichen (benötigt für die delete-matching-rule Funktionalitaet). Wenn dies der Fall ist, platziere all die Felder, die sich nicht ändern, an den Anfang der Struktur, und lege die Größe der sich nicht ändernden Felder hier ab. help Eine Funktion, die die Synopsis der Option ausdruckt. init Dies kann verwendet werden, um etwas mehr Platz (wenn vorhanden) in der ipt_entry_match Stuktur zu schaffen, und um jegliche nfcache Bits zu setzen; Wenn Du etwas untersuchst, das Du nicht ausdrücken kannst, indem Du den Inhalt von '/linux/include/ netfilter_ipv4.h' verwendest, wende im NFC_UNKNOWN Bit einfach OR an. Dies wird vor 'parse()' aufgerufen werden. parse Dies wird aufgerufen, wenn eine nicht erkannte Option auf der Kommandozeile gesehen wird: Es sollte nicht NULL liefern, wenn diese Option tatsächlich für Deine Library bestimmt war. 'invert' liefert `true', wenn bereits ein '!' gesehen wurde. Der 'flags' Pointer ist für die exklusive Verwendung Deiner Match- Library und wird gewöhnlich dazu verwendet, eine Bitmaske von bestimmten Optionen zu speichern. Vergiss nicht, das nfcache Feld auszurichten. Wenn nötig, kannst Du die Größe der 'ipt_entry_match' Struktur erhöhen, indem Du Sie erneut

17 zuordnest, dann musst Du aber auch sicherstellen, dass die Größe durch den IPT_ALIGN Makro gehen muss. final_check Dies wird nach überstandener Kommandozeileneingabe aufgerufen. Ihm werden die für Deine Library reservierten Integer'flags' übergeben. Dies gibt Dir die Gelegenheit, zu überprüfen, ob alle benötigten Optionen angegeben wurden, zum Beispiel 'exit_error()' aufzurufen, wenn dies der Fall sein sollte. print Dies wird von Chain-Listing-Code verwendet, um jegliche zusätzliche Match-Information einer Regel (wenn vorhanden) ausdrucken (zum Standard Output). Das numerische Flag wird gesetzt, wenn der User es mit der '-n' Option angegeben hat. save Dies ist das Gegenteil von parse: Es wird von 'iptables-save' verwendet, um die Optionen, die die bestimmte Regel erstellt haben, zu reproduzieren. extra_opts Dies ist eine NULL-terminierte Liste von Extra-Optionen, die Deine Library anbietet. Dies wird vermischt mit den jetzigen Optionen und so an getopt_long übergeben; Für Details siehe Manpage. Es gibt noch extra Elemente am Ende dieser Struktur, die iptables intern verwendet: Du brauchst sie hier nicht zu setzen Neue Targets Die _init() Funktionen Deiner shared Libraries übergeben 'register_target()' einen Pointer auf ein statisches 'struct iptables_target', welches ähnliche Felder hat wie die iptables_match Strukturen, die oben detailliert beschrieben wurden. Manchmal braucht ein Target keine Library für den Userspace; Eine triviale musst Du sowieso erstellen: Es gab früher zu viele Probleme mit schlecht platzierten Libraries. [1m `libiptc' verwenden[0m libiptc ist die Kontrolle Library für iptables, entworfen, um Regeln im iptables Kernelmodul aufzulisten und zu manipulieren. Während seine jetzige Verwendung sich auf das iptables Tool beschränkt, macht es das Schreiben neuer Tools recht einfach. Um diese Funktionen nutzen zu können, musst Du root sein. Die Kerneltabellen selbst bestehen nur aus ein paar Tabellen mit Regeln und einer Anzahl von Nummern, die die Eintrittspunkte repräsentieren. Die Namen der Ketten ("INPUT") werden als Abstraktion von der Library unterstützt. Benutzerdefinierte Ketten werden benannt, indem ein Fehlerverweis vor dem Beginn der benutzerdefinierten Kette eingefügt wird, der den Kettennamen in

18 einer speziellen Datensektion des Targets enthält (Die Positionen der eingebauten Ketten werden durch die drei Eintrittspunkte der Tabelle definiert). Wenn 'iptc_init()' aufgerufen wird, wird die Tabelle einschließlich der Counter gelesen. Diese Tabelle wird von der `iptc_insert_entry()', `iptc_replace_entry()', `iptc_append_entry()', `iptc_delete_entry()', `iptc_delete_num_entry()', `iptc_flush_entries()', `iptc_zero_entries()', `iptc_create_chain()' `iptc_delete_chain()', und `iptc_set_policy()' Funktion manipuliert. Die Änderungen an der Tabelle werden nicht eher zurück geschrieben, bis die 'iptc_commit()' Funktion aufgerufen wird. Das bedeutet, dass es für zwei Benutzer der Library gleichzeitig möglich ist, auf derselben Kette zu operieren, um jeweils der Schnellere zu sein; Um das zu verhindern, ist Locking nötig, was aber Zurzeit nicht eingesetzt wird. Es gibt kein Wettrennen mit bei Countern, wie auch immer; Counter werden so in den Kernel zurück addiert, dass eine Erhöhung der Zähler zwischen dem Lesen und dem Schreiben der Tabelle immer noch in der neuen Tabelle auftauchen wird. Es gibt verschiedene Hilfsfunktionen: iptc_first_chain() Diese Funktion liefert den Namen der ersten Kette in dieser Tabelle. iptc_next_chain() Diese Funktion liefert den Namen der nächsten Kette in dieser Tabelle: NULL bedeutet, es gibt keine weiteren Ketten. iptc_builtin() Liefert true, wenn der Name der gegebenen Kette der Name einer eingebauten Kette ist. iptc_first_rule() This returns a pointer to the first rule in the given chain name: NULL for an empty chain. iptc_next_rule() Dies liefert einen Pointer auf die erste Regel im Namen der gegebenen Kette: NULL für eine leere Kette. iptc_get_target() Dies gibt das Target der gegebenen Regel. Wenn es kein erweitertes Target ist, wird der Name dieses Targets geliefert. Wenn es ein Sprung auf eine andere Kette ist, wird der Name dieser Kette geliefert. Wenn es ein Urteil (z.b. DROP) ist, wird dieser Name geliefert. Wenn die Regel kein Ziel hat (und eine accountig-style Regel), wird ein leerer String geliefert.

19 Beachte, dass Du diese Funktion verwenden solltest, anstatt den Wert des 'verdict' Felds der ipt_entry Struktur direkt zu benutzen, da sie die oben genannten weiteren Interpretationen des Standard Urteils bietet. iptc_get_policy() Dies liefert die Policy einer eingebauten Kette und füllt das Counter- argument mit den Treff-Statistiken dieser Policy. iptc_strerror() Diese Funktion liefert eine aussagekräftigere Erklärung von gescheitertem Code in der iptc Library. Wenn eine Funktion scheitert, wird es errno setzen: Dieser Wert kann an iptc_strerror() übergeben werden, um eine Fehlermeldung zu erhalten NAT verstehen Willkommen zu Network Address Translation im Kernel. Beachte, dass die angebotene Infrastruktur mehr für Vollständigkeit als für Effizienz entworfen wurde und dass weitere Entwicklungen die Effizins erhöhen können. Im Moment bin ich froh, dass es überhaupt funktioniert. NAT wird aufgeteilt in Connection Tracking (was die Pakete überhaupt nicht verändert) und in den NAT Code selbst. Connection Tracking kann auch als iptables Modul verwendet werden, um subtile Unterscheidungen von Zuständen zu machen, die NAT egal sind Connection Tracking Connection Tracking benutzt als Hooks die von der Priorität höhergestellten NF_IP_LOCAL_OUT und NF_IP_PRE_ROUTING, um Pakete zu sehen, bevor sie das System betreten. Das ncft Feld in skb ist ein Pointer auf einen der infos[] Arrays im Inneren von struct ip_conntrack. So können wir den Zustand von skb durch das Element bestimmen, auf welches dieser Array zeigt: Dieser Pointer erkennt beides, die State Struktur und die Beziehung des skb zu diesem Zustand. Der beste Weg, das 'nfct' Feld zu lesen, ist es, die 'ip_conntrack_get()' Funktion aufzurufen, die NULL liefert, wenn es nicht gesetzt ist, oder den Connection Pointer. Außerdem füllt sie ctinfo, was die Beziehung des Pakets zu der Verbindung beschreibt. Dieser nummerierte Typ hat folgende Werte: IP_CT_ESTABLISHED Das Paket ist Teil einer in Originalrichtung aufgebauten Verbindung. IP_CT_RELATED Das Paket steht in Zusammenhang mit der Verbindung und geht in die Originalrichtung.

20 IP_CT_NEW Das Paket versucht, eine neue Verbindung aufzubauen (offensichtlich geht es in die Originalrichtung). IP_CT_ESTABLISHED + IP_CT_IS_REPLY Das Paket ist Teil einer aufgebauten Verbindung, und zwar in Antwortrichtung. IP_CT_RELATED + IP_CT_IS_REPLY Das Paket steht in Zusammenhang mit der Verbindung und geht in die Antwortrichtung. Ein Antwortpaket kann also als solches identifiziert werden, indem man auf >= IP_CT_IS_REPLY testet NAT/Connection Tracking erweitern Diese Rahmenwerke wurden entworfen, um jegliche Art von Protokollen und verschiedenen Mapping-Arten unterzubringen. Manche dieser Mapping- Arten können sehr spezifisch sein, so wie load-balancing oder failover Mappings. Intern konvertiert Connection Tracking ein Paket zu einem 'Tupel', der den interessanten Teil des Pakets repräsentiert, bevor nach darauf zutreffenden Regeln gesucht wird. Dieser Tupel hat einen manipulierbaren Teil und einen nicht-manipulierbaren Teil; "src" und "dst" genannt, da dies die Ansicht des ersten Pakets in der Source NAT Welt ist (in der Destination NAT Welt würde es ein Antwortpaket sein). Die Tupel aller Pakete in demselben Paket-Stream in dieser Richtung sind gleich. Das Tupel eine TCP-Pakets enthält z.b. den manipulierbaren Teil (Quell- IP und Quellport) und den nicht-manipulierbaren Teil (Ziel-IP und Zielport) Der manipulierbare und der nicht-manipulierbare Teil müssen trotzdem nicht vom selben Typ sein; Das Tupel eines ICMP- Pakets enthält den manipulierbaren Teil (Quell-IP und ICMP-ID) und den nicht-manipulierbaren Teil (Ziel-IP und ICMP Typ und Code). Jedes Tupel hat ein Inverses, nämlich das Tupel des Antwortpakets in dem Stream. Das Inverse eines ICMP Ping-Pakets (icmp id 1234, von an ) ist zum Beispiel ein Ping Antwort Paket (icmp id 1234, von an ). Diese Tupel, die von 'struct ip_conntrack_tuple' repräsentiert werden, werden häufig verwendet. Tatsächlich ist das, zusammen mit dem Hook, an dem das Paket einging (was einen Effekt auf die zu erwartende Art der Manipulation hat) und dem beteiligten Device, die komplette Information über das Paket. Die meisten Tupel sind Teil von 'struct ip_conntrack_tuple_hash', was einen doppelt verlinkten Listeneintrag und einen Pointer auf die Verbindung, zu der das Paket gehört, hinzufügt.

Netzwerk Teil 2 Linux-Kurs der Unix-AG

Netzwerk Teil 2 Linux-Kurs der Unix-AG Netzwerk Teil 2 Linux-Kurs der Unix-AG Zinching Dang 17. Juni 2015 Unterschied Host Router Standardverhalten eines Linux-Rechners: Host nur IP-Pakete mit Zieladressen, die dem Rechner zugeordnet sind,

Mehr

Internet Security 2009W Protokoll Firewall

Internet Security 2009W Protokoll Firewall Internet Security 2009W Protokoll Firewall Manuel Mausz, Matr. Nr. 0728348 manuel-tu@mausz.at Aldin Rizvanovic, Matr. Nr. 0756024 e0756024@student.tuwien.ac.at Wien, am 25. November 2009 1 Inhaltsverzeichnis

Mehr

MultiNET Services GmbH. iptables. Fachhochschule München, 13.6.2009. Dr. Michael Schwartzkopff, MultiNET Services GmbH

MultiNET Services GmbH. iptables. Fachhochschule München, 13.6.2009. Dr. Michael Schwartzkopff, MultiNET Services GmbH MultiNET Services GmbH iptables Fachhochschule München, 13.6.2009 Dr. Michael Schwartzkopff, MultiNET Services GmbH MultiNET Services GmbH: iptables: Seite 1 Entwicklung von Paketfiltern Seit es Internet

Mehr

Grundlagen Firewall und NAT

Grundlagen Firewall und NAT Grundlagen Firewall und NAT Was sind die Aufgaben einer Firewall? Welche Anforderungen sind zu definieren? Grundlegende Funktionsweise Technische Varianten NA[P]T Portmapping Übungsaufgabe Quellen im WWW

Mehr

Network Address Translation

Network Address Translation Network Address Translation Autor: Melanie Berg (mel@sekurity.de) Formatierung: Matthias Hagedorn (matthias.hagedorn@selflinux.org) Lizenz: GPL Network Address Translation Seite 2 Inhaltsverzeichnis 1

Mehr

Firewalls mit Iptables

Firewalls mit Iptables Firewalls mit Iptables Firewalls für den Linux Kernel 2.4 17.05.2003 von Alexander Elbs Seite 1 Was ist eine Firewall? Kontrolliert den Datenfluss zwischen dem internen Netz und dem Rest der Welt. Es gibt

Mehr

Sieb im Netz Das Netfilter Framework

Sieb im Netz Das Netfilter Framework Sieb im Netz Das Netfilter Framework 11.03.2001 3. Chemnitzer Linux Tag März 2001, Michael Weisbach (mwei@tuts.nu) Agenda Thnx an Harald Welte Netfilter basics / concepts IP Paketfilterung

Mehr

NAT und Firewalls. Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de. Universität Bielefeld Technische Fakultät

NAT und Firewalls. Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de. Universität Bielefeld Technische Fakultät NAT und Firewalls Jörn Stuphorn stuphorn@rvs.uni-bielefeld.de Universität Bielefeld Technische Fakultät Stand der Veranstaltung 13. April 2005 Unix-Umgebung 20. April 2005 Unix-Umgebung 27. April 2005

Mehr

Einsatz des flypaper-dämons zur effektiven Abwehr von Portscan-Angriffen

Einsatz des flypaper-dämons zur effektiven Abwehr von Portscan-Angriffen Einsatz des flypaper-dämons zur effektiven Abwehr von Portscan-Angriffen Johannes Franken Abbildung: Klebefalle (engl.: flypaper) Auf dieser Seite beschreibe ich, wie man Linux-Firewalls

Mehr

IPTables und Tripwire

IPTables und Tripwire 1/14 und und 8. Juni 2005 2/14 und Anwendungen und ihre FTP (Port 21) 21 FTP- Datenpaket 51 FTP (Port 51) SSH (Port 22) 22 SSH- Datenpaket 35 SSH (Port 35) HTTP (Port 80) 80 HTTP- Datenpaket 99 HTTP (Port

Mehr

Firewall Implementierung unter Mac OS X

Firewall Implementierung unter Mac OS X Firewall Implementierung unter Mac OS X Mac OS X- Firewall: Allgemeines * 2 Firewall- Typen: * ipfw * programmorientierte Firewall * 3 Konfigurations- Möglichkeiten * Systemeinstellungen * Dritthersteller-

Mehr

NFTables Wieso, Weshalb, Warum

NFTables Wieso, Weshalb, Warum Der neue Linux-Paketfilter fw@strlen.de 13. April 2014 Agenda 1 Begriffsdefinitionen/-abgrenzungen 2 Übersicht netfilter-architektur kernel-hooks Architektur/Funktionsweise Probleme und wünschenswerte

Mehr

Firewalling. Michael Mayer IAV0608 Seite 1 von 6

Firewalling. Michael Mayer IAV0608 Seite 1 von 6 Firewalling Ausgangssituation: Das Netzwerk besteht aus einem Gateway, mehreren Subservern und dessen Subnetzwerken. Aufgabe ist es eine Firewall auf dem Subserver zu installieren, welche das Netzwerk

Mehr

Ein Paketfilter. netfilter/iptables. Bernd Kohler. 19. September 2011. UMIC Research Centre RWTH Aachen

Ein Paketfilter. netfilter/iptables. Bernd Kohler. 19. September 2011. UMIC Research Centre RWTH Aachen Ein Paketfilter netfilter/iptables Bernd Kohler UMIC Research Centre RWTH Aachen 19. September 2011 1 / 31 Inhaltsverzeichnis 1 Infos zu UMIC 2 Vergleich der Syntax diverser Paketfilter 3 Worüber rede

Mehr

15 Iptables(Netfilter)

15 Iptables(Netfilter) 15 Iptables(Netfilter) In diesem Kapitel lernen Sie die Grundlagen des Paketfilters iptables kennen. aus welchen Bausteinen iptables besteht. welche Wege TCP/IP-Pakete durch einen als Firewall konzipierten

Mehr

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0.

Konfigurationsanleitung Access Control Lists (ACL) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0. Konfigurationsanleitung Access Control Lists (ACL) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.0 Seite - 1 - 1. Konfiguration der Access Listen 1.1 Einleitung Im Folgenden

Mehr

ProRat Reverse Connection (einfach und leicht erklärt)

ProRat Reverse Connection (einfach und leicht erklärt) www.mudsucker-tuts.de.vu ProRat Reverse Connection (einfach und leicht erklärt) by MudSucker Dieses Dokument darf unverändert weitergegeben werden! Dieses Dokument dient ausschließlich der Information!

Mehr

Grundkurs Routing im Internet mit Übungen

Grundkurs Routing im Internet mit Übungen Grundkurs Routing im Internet mit Übungen Falko Dressler, Ursula Hilgers {Dressler,Hilgers}@rrze.uni-erlangen.de Regionales Rechenzentrum der FAU 1 Tag 4 Router & Firewalls IP-Verbindungen Aufbau von IP

Mehr

Sinn und Unsinn von Desktop-Firewalls

Sinn und Unsinn von Desktop-Firewalls CLT 2005 Sinn und Unsinn von Desktop-Firewalls Wilhelm Dolle, Director Information Technology interactive Systems GmbH 5. und 6. März 2005 1 Agenda Was ist eine (Desktop-)Firewall? Netzwerk Grundlagen

Mehr

Frank Nussbächer. IP-Tables. Was sind IP-Tables? Unterschied zwischen IP-Tables und IP-Chains

Frank Nussbächer. IP-Tables. Was sind IP-Tables? Unterschied zwischen IP-Tables und IP-Chains IP-Tables Was sind IP-Tables? Unterschied zwischen IP-Tables und IP-Chains Auf den ersten Blick scheinen ipchains und IP-Tables fast ähnlich. Beide Methoden verwenden für die Paketfilterung Regelketten,

Mehr

Firewalling mit iptables Die Netfilter-Architektur. Seminar Betriebssytemadministration SS 2009

Firewalling mit iptables Die Netfilter-Architektur. Seminar Betriebssytemadministration SS 2009 Firewalling mit iptables Die Netfilter-Architektur Seminar Betriebssytemadministration SS 2009 Gliederung 2 Firewall Aufgaben/Ziele Firewalltypen Sicherheitspolitik Sicherheitskonzept Netzwerktopologie

Mehr

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen

Einführung in git. Ben Oswald. 27. April 2014. Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Einführung in git Im Rahmen der Vorlesung Entwicklung mobiler Anwendungen Ben Oswald 27. April 2014 Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist git?..................................... 1 1.2 Warum sollten

Mehr

Iptables & NAT. R. Mutschler, inf 273 13.05.2004

Iptables & NAT. R. Mutschler, inf 273 13.05.2004 Iptables & NAT R. Mutschler, inf 273 13.05.2004 1 Inhaltsverzeichnis 1 Firewall mit Iptables 3 1.1 Einleitung............................. 3 1.2 Kernel vorbereiten........................ 3 1.3 Paketfilterung

Mehr

IRF2000, IF1000 Application Note Network Mapping mit 1:1 NAT

IRF2000, IF1000 Application Note Network Mapping mit 1:1 NAT Version 2.1 Original-Application Note ads-tec GmbH IRF2000, IF1000 Application Note Network Mapping mit 1:1 NAT Stand: 28.10.2014 ads-tec GmbH 2014 Big-LinX 2 Inhaltsverzeichnis 1 Einführung... 3 1.1 NAT

Mehr

Bridgefirewall eine transparente Lösung. Thomas Röhl 08. April 2005

Bridgefirewall eine transparente Lösung. Thomas Röhl 08. April 2005 Bridgefirewall eine transparente Lösung Thomas Röhl 08. April 2005 Inhalt Warum eine Bridgefirewall? Installation der Bridge IPtables der Paketfilter unter Linux Funktionsweise von IPtables Firewallregeln

Mehr

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein:

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: 7. Intrusion Prevention System 7.1 Einleitung Sie konfigurieren das Intrusion Prevention System um das Netzwerk vor Angriffen zu schützen. Grundsätzlich soll nicht jeder TFTP Datenverkehr blockiert werden,

Mehr

Rusty Russell, Mailingliste netfilter@lists.samba.org

Rusty Russell, Mailingliste netfilter@lists.samba.org Linux 2.4 NAT HOWTO Rusty Russell, Mailingliste netfilter@lists.samba.org v1.0.1 Mon May 1 18:38:22 CST 2000 Ins Deutsche uebersetzt von Melanie Berg (mel@sekurity.de) Dieses Dokument beschreibt, wie man

Mehr

Deklarationen in C. Prof. Dr. Margarita Esponda

Deklarationen in C. Prof. Dr. Margarita Esponda Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.

Mehr

Internetanwendungstechnik (Übung)

Internetanwendungstechnik (Übung) Internetanwendungstechnik (Übung) IPv6 Stefan Bissell, Gero Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr.

Mehr

1.1 Wireshark Bedienung (Die neuste Wireshark-Version sieht leicht anders aus!) 1.2 Aufzeichnung starten. LAN-Komponenten in Betrieb nehmen Modul 129

1.1 Wireshark Bedienung (Die neuste Wireshark-Version sieht leicht anders aus!) 1.2 Aufzeichnung starten. LAN-Komponenten in Betrieb nehmen Modul 129 1 Wireshark für Protokolle (Verfasst von G. Schneider/TBZ-IT) 1.1 Wireshark Bedienung (Die neuste Wireshark-Version sieht leicht anders aus!) Wireshark ist ein sog. Sniffer. Diese Software dient dazu den

Mehr

Eine hochverfügbare Firewall mit iptables und fwbuilder. Secure Linux Administration Conference, 11. Dec 2008

Eine hochverfügbare Firewall mit iptables und fwbuilder. Secure Linux Administration Conference, 11. Dec 2008 Eine hochverfügbare Firewall mit iptables und fwbuilder Secure Linux Administration Conference, 11. Dec 2008 Dr. Michael Schwartzkopff HA Firewall mit fwbuilder, SLAC 2008 / 1 Eine einfache Firewall Eine

Mehr

Eine hochverfügbare Firewall mit Linux-HA, iptables und fwbuilder

Eine hochverfügbare Firewall mit Linux-HA, iptables und fwbuilder Eine hochverfügbare Firewall mit Linux-HA, iptables und fwbuilder FROSCON, 23.8.2009 Dr. Michael Schwartzkopff HA Firewall mit fwbuilder, Seite 1 Eine einfache Firewall Eine einfache Firewall mit Linux

Mehr

VPN Tunnel Konfiguration. VPN Tunnel Konfiguration IACBOX.COM. Version 2.0.2 Deutsch 11.02.2015

VPN Tunnel Konfiguration. VPN Tunnel Konfiguration IACBOX.COM. Version 2.0.2 Deutsch 11.02.2015 VPN Tunnel Konfiguration Version 2.0.2 Deutsch 11.02.2015 Dieses HOWTO beschreibt die Konfiguration eines VPN Tunnels zu einem (zentralisierten) OpenVPN Server. VPN Tunnel Konfiguration TITEL Inhaltsverzeichnis

Mehr

nftables Der neue Paketfilter im Linux-Kernel

nftables Der neue Paketfilter im Linux-Kernel Linux-Kernel CLT 2014 15. März 2014 Michael Steinfurth Linux/Unix Consultant & Trainer steinfurth@b1-systems.de - Linux/Open Source Consulting, Training, Support & Development Agenda Vorstellung B1 Systems

Mehr

Network Address Translation (NAT) Prof. B. Plattner

Network Address Translation (NAT) Prof. B. Plattner Network Address Translation (NAT) Prof. B. Plattner Warum eine Übersetzung von Adressen? Adressknappheit im Internet Lösungen langfristig: IPv6 mit 128-bit Adressen einsetzen kurzfristig (und implementiert):

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

Konfiguration eines Cisco Router 761 für ISDN

Konfiguration eines Cisco Router 761 für ISDN Diese Anleitung habe ich für einen Freund geschrieben, der einen Cisco 761 in seinem Büro einsetzt um die einzelnen Arbeitsplätze den Zugang zum Internet mit nur einem ISDN Anschluß zu T-Online zu ermöglichen.

Mehr

Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003. Subnetting

Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003. Subnetting Referat von Sonja Trotter Klasse: E2IT1 Datum Jan. 2003 Subnetting Einleitung Thema dieser Ausarbeitung ist Subnetting Ganz zu Beginn werden die zum Verständnis der Ausführung notwendigen Fachbegriffe

Mehr

Aufbau einer Testumgebung mit VMware Server

Aufbau einer Testumgebung mit VMware Server Aufbau einer Testumgebung mit VMware Server 1. Download des kostenlosen VMware Servers / Registrierung... 2 2. Installation der Software... 2 2.1 VMware Server Windows client package... 3 3. Einrichten

Mehr

Linux Personal Firewall mit iptables und ip6tables

Linux Personal Firewall mit iptables und ip6tables FORSCHUNGSZENTRUM JÜLICH GmbH Jülich Supercomputing Centre 52425 Jülich, (02461) 61-6402 Beratung und Betrieb, (02461) 61-6400 Technische Kurzinformation FZJ-JSC-TKI-0402 E. Grünter, W. Anrath, S. Werner

Mehr

Network Address Translation (NAT) Warum eine Übersetzung von Adressen?

Network Address Translation (NAT) Warum eine Übersetzung von Adressen? Network Address Translation () Prof. B. Plattner Warum eine Übersetzung von Adressen? Adressknappheit im Internet Lösungen langfristig: IPv6 mit 128-bit Adressen einsetzen kurzfristig (und implementiert):

Mehr

Mac OS X Firewall. Mark Heisterkamp heisterkamp@rrzn.uni-hannover.de. 21. November 2011. Zentrale Services Informationstechnologie

Mac OS X Firewall. Mark Heisterkamp heisterkamp@rrzn.uni-hannover.de. 21. November 2011. Zentrale Services Informationstechnologie Mac OS X Firewall Mark Heisterkamp heisterkamp@rrzn.uni-hannover.de 21. November 2011 Mark Heisterkamp, Mac OS X Firewall, 21. November 2011 Seite 1/20 Lion Seit Mac OS X 10.7 drei Firewalls: Applikationsspezifisch

Mehr

1.5. Passwort-geschützte Seiten

1.5. Passwort-geschützte Seiten TYPO3 - the Enterprise Open Source CMS: Documentation: Der... 1 von 5 1.4.Editieren und erstellen von Seiten und Inhalt Table Of Content 1.6.Spezielle Content Elemente 1.5. Passwort-geschützte Seiten Nun

Mehr

Multivariate Tests mit Google Analytics

Multivariate Tests mit Google Analytics Table of Contents 1. Einleitung 2. Ziele festlegen 3. Einrichtung eines Multivariate Tests in Google Analytics 4. Das JavaScript 5. Die Auswertung der Ergebnisse Multivariate Tests mit Google Analytics

Mehr

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2

Filterregeln... 1. Einführung... 1. Migration der bestehenden Filterregeln...1. Alle eingehenden Nachrichten weiterleiten...2 Jörg Kapelle 15:19:08 Filterregeln Inhaltsverzeichnis Filterregeln... 1 Einführung... 1 Migration der bestehenden Filterregeln...1 Alle eingehenden Nachrichten weiterleiten...2 Abwesenheitsbenachrichtigung...2

Mehr

Erste Schritte mit TeamSpeak 3

Erste Schritte mit TeamSpeak 3 Erste Schritte mit TeamSpeak 3 C. Hobohm und A. Müller Im Auftrag von www.xgs.in 05.08.2010 Inhaltsverzeichnis Vorwort... 3 Feedback... 3 Weitere Hilfe und Anleitungen... 3 Changelog... 3 Berechtigungsschlüssel

Mehr

Firewall Lösungen mit Linux Kurs 1004

Firewall Lösungen mit Linux Kurs 1004 Firewall Lösungen mit Linux Kurs 1004 c 2005-2012 OpenSource Training Ralf Spenneberg Am Bahnhof 3-5 48565 Steinfurt http://www.opensource-training.de http://www.os-t.de Copyright Die in diesem Kurs zur

Mehr

Kapitel 3 Frames Seite 1

Kapitel 3 Frames Seite 1 Kapitel 3 Frames Seite 1 3 Frames 3.1 Allgemeines Mit Frames teilt man eine HTML-Seite in mehrere Bereiche ein. Eine Seite, die mit Frames aufgeteilt ist, besteht aus mehreren Einzelseiten, die sich den

Mehr

Das Ansprechen. - so geht s -

Das Ansprechen. - so geht s - Das Ansprechen - so geht s - 1. Ansprechen Direkt Indirekt 2. Unterhaltung 3 Fragen Kurzgeschichte Unterhaltungsverlängerung - Minidate 3. Telefonnummer Nummer in unter 1 Minute Nummer nach Gespräch holen

Mehr

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten:

WOT Skinsetter. Nun, erstens, was brauchen Sie für dieses Tool zu arbeiten: WOT Skinsetter WOT Skinsetter steht für World of Tanks skinsetter (WOTS von nun an). Mit diesen Tool können Sie Skins importieren und ändern, wann immer Sie möchten auf einfache Weise. Als World of Tanks

Mehr

TCP/UDP. Transport Layer

TCP/UDP. Transport Layer TCP/UDP Transport Layer Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt?

Mehr

Anleitung TUS Port Checker 2.0

Anleitung TUS Port Checker 2.0 Telekommunikation und Sicherheit Alpenstrasse 20, 3052 Zollikofen Tel. 031 910 19 10, Fax 031 910 19 20 info@igtus.ch, www.igtus.ch Telekommunikation und Sicherheit Industriestrasse 22, 8604 Volketswil

Mehr

Firewall mit Netfilter/iptables

Firewall mit Netfilter/iptables Firewall mit Netfilter/iptables Proseminar Linux SS 2002 Jürgen Lehle - 1 - Inhaltsverzeichnis EINLEITUNG 3 WAS IST EINE FIREWALL? 3 WARUM SOLLTE MAN EINEN PAKETFILTER VERWENDEN? 3 WIE WERDEN PAKETE UNTER

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Die einzige benutzte Schrift ist Arial. Die musst Du auf Deinem Mac oder PC haben.

Die einzige benutzte Schrift ist Arial. Die musst Du auf Deinem Mac oder PC haben. MacSimum Support Bertie A. Lemmenmeier Zelglistrasse 5 CH - 5724 Dürrenäsch AG telefon: +41 62 777 45 62 e-mail: info@macsimum.ch internet: www.macsimum.ch Datenbanken Mac-Support Internet Stand: 20.3.2010

Mehr

mit ssh auf Router connecten

mit ssh auf Router connecten Dateifreigabe über Router Will man seine Dateien Freigeben auch wenn man hinter einem Router sitzt muss man etwas tricksen, das ganze wurde unter Windows 7 Ultimate und der Router Firmware dd-wrt getestet.

Mehr

Programme deinstallieren,

Programme deinstallieren, Programme deinstallieren, Programme mit Windows deinstallieren: Sie haben Programme auf Ihrem Rechner, die Sie gar nicht oder nicht mehr gebrauchen. Sie sollten solche Programme deinstallieren, denn die

Mehr

Als erstes besuchen wir nun also dyndns.org, das auf dyndns.com umleitet. Dort klicken wir nun oben rechts auf den Reiter: DNS & Domains.

Als erstes besuchen wir nun also dyndns.org, das auf dyndns.com umleitet. Dort klicken wir nun oben rechts auf den Reiter: DNS & Domains. Wie bereite ich SmartLaw für die Online-Arbeit Damit Sie SmartLaw aus dem Internet und nicht nur lokal nutzen können muss gewährleistet werden, dass der Datenbankserver vom Internet aus zu erreichen ist.

Mehr

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter 2 Inhaltsverzeichnis 1 Web-Kürzel 4 1.1 Einführung.......................................... 4 1.2 Web-Kürzel.........................................

Mehr

Praxisarbeit Semester 1

Praxisarbeit Semester 1 TITEL Praxisarbeit Semester 1 vorgelegt am: Studienbereich: Studienrichtung: Seminargruppe: Von: Praktische Informatik Felix Bueltmann Matrikelnummer: Bildungsstätte: G020096PI BA- Gera Gutachter: Inhaltsverzeichnis

Mehr

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging

i n g e n i e u r b ü r o f ü r s o f t w a r e t e c h n o l o g i e w w w. v o e l t e r. d e Servlet Debugging Servlet Debugging Markus Völter, voelter@acm.org, www.voelter.de Bei der Arbeit mit Servlets kommt man recht schnell an den Punkt, an dem man Servlets vernünftig testen oder debuggen will. Mit Hilfe des

Mehr

Sessions mit PHP. Annabell Langs 2004. Sessions in PHP - Annabell Langs 1

Sessions mit PHP. Annabell Langs 2004. Sessions in PHP - Annabell Langs 1 Sessions mit PHP Annabell Langs 2004 Sessions in PHP - Annabell Langs 1 Sessions» Inhaltsverzeichnis Wozu Sessions? 3 Wie funktionieren Sessions? 5 Wie kann ich die Session-ID übergeben? 8 Sicherheit 9

Mehr

MySQL 101 Wie man einen MySQL-Server am besten absichert

MySQL 101 Wie man einen MySQL-Server am besten absichert MySQL 101 Wie man einen MySQL-Server am besten absichert Simon Bailey simon.bailey@uibk.ac.at Version 1.1 23. Februar 2003 Change History 21. Jänner 2003: Version 1.0 23. Februar 2002: Version 1.1 Diverse

Mehr

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten

Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten Version 1.0 Wordpress: Blogbeiträge richtig löschen, archivieren und weiterleiten In unserer Anleitung zeigen wir Dir, wie Du Blogbeiträge

Mehr

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert: Firewall für Lexware professional konfigurieren Inhaltsverzeichnis: 1. Allgemein... 1 2. Einstellungen... 1 3. Windows XP SP2 und Windows 2003 Server SP1 Firewall...1 4. Bitdefender 9... 5 5. Norton Personal

Mehr

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl

PROGRAMMIEREN MIT C. }, wird kompiliert mit dem Befehl. (-o steht für output) und ausgeführt mit dem Befehl PROGRAMMIEREN MIT C Allgemeine hinweise Alles was hier beschrieben wird, soll auch ausprobiert werden. Warum C? Weil die coolen Dinge mit C am einfachsten gehen. Das werden wir in den folgenden Übungen

Mehr

7 Transportprotokolle

7 Transportprotokolle 7 Transportprotokolle 7.1 Transmission Control Protocol (TCP) 7.2 User Datagram Protocol (UDP) 7.3 Ports 7.1 TCP (1) IP-Pakete (Datagramme) von A nach B transportieren reicht nicht interaktive Verbindungen

Mehr

Cookies. Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel

Cookies. Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel Krishna Tateneni Jost Schenck Übersetzer: Jürgen Nagel 2 Inhaltsverzeichnis 1 Cookies 4 1.1 Regelungen......................................... 4 1.2 Verwaltung..........................................

Mehr

Verschlüsselung eines drahtlosen Netzwerkes

Verschlüsselung eines drahtlosen Netzwerkes Verschlüsselung eines drahtlosen Netzwerkes Die größte Sicherheitsgefahr eines drahtlosen Netzwerkes besteht darin, dass jeder, der sich innerhalb der Funkreichweite des Routers aufhält einen Zugriff auf

Mehr

Email-Server: IMAP-Server

Email-Server: IMAP-Server 1 von 5 15.02.2007 13:31 Navigationsleiste Direktzugriff Software Home Email-Server: IMAP-Server Im zweiten Teil des Email-Servers [1] erfährst du wie die Benutzer die Emails von deinem Email-Server abholen.

Mehr

Spamschutz bei TYPO3. von Bernd Warken bei Fa. Netcos AG

Spamschutz bei TYPO3. von Bernd Warken bei Fa. Netcos AG Spamschutz bei TYPO3 von Bernd Warken bei Fa. Netcos AG Kapitel 0: Einleitung 3 0.1 Vorwort 3 0.2 Lizenz 3 Kapitel 1: Aktivierung und Konfiguration 4 1.1 config.spamprotectemailaddresses 4 1.2 config.spamprotectemailaddresses_atsubst

Mehr

Wer Wird Millionär? Ganz wichtig: Denkt daran in regelmäßigen Abständen zu speichern! Los geht s:

Wer Wird Millionär? Ganz wichtig: Denkt daran in regelmäßigen Abständen zu speichern! Los geht s: Wer Wird Millionär? In dieser Aufgabe werdet ihr mit DialogOS eure eigene Version der Quizshow Wer wird Millionär (WWM) entwickeln. Der Computer ist der Quizmaster und der User der Kandidat. Ihr werdet

Mehr

COBRA Component Based Routing Architecture

COBRA Component Based Routing Architecture Eidgenössische Technische Hochschule Zürich Swiss Federal Institute of Technology Zurich COBRA Component Based Routing Architecture Amir Guindehi Studentenarbeit SA-2001.30 Sommersemester 2001 Tutoren:

Mehr

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11 Kurzanleitung MEYTON Aufbau einer Internetverbindung 1 Von 11 Inhaltsverzeichnis Installation eines Internetzugangs...3 Ist mein Router bereits im MEYTON Netzwerk?...3 Start des YAST Programms...4 Auswahl

Mehr

Konfigurationsanleitung Quality of Service (QoS) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.1.

Konfigurationsanleitung Quality of Service (QoS) Funkwerk. Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.1. Konfigurationsanleitung Quality of Service (QoS) Funkwerk Copyright Stefan Dahler - www.neo-one.de 13. Oktober 2008 Version 1.1 Seite - 1 - 1. Konfiguration von Quality of Service 1.1 Einleitung Im Folgenden

Mehr

Grundlagen der Rechnernetze. Internetworking

Grundlagen der Rechnernetze. Internetworking Grundlagen der Rechnernetze Internetworking Übersicht Grundlegende Konzepte Internet Routing Limitierter Adressbereich SS 2012 Grundlagen der Rechnernetze Internetworking 2 Grundlegende Konzepte SS 2012

Mehr

Update Information. Independence Pro Software Suite 3.0 & Sound Libraries

Update Information. Independence Pro Software Suite 3.0 & Sound Libraries Update Information Independence Pro Software Suite 3.0 & Sound Libraries 2 Yellow Tools Update Information Lieber Kunde, vielen Dank, dass Du Dich für eines unserer Produkte entschieden hast! Falls Du

Mehr

PHPNuke Quick & Dirty

PHPNuke Quick & Dirty PHPNuke Quick & Dirty Dieses Tutorial richtet sich an all die, die zum erstenmal an PHPNuke System aufsetzen und wirklich keine Ahnung haben wie es geht. Hier wird sehr flott, ohne grosse Umschweife dargestellt

Mehr

Installationsanleitung STATISTICA. Concurrent Netzwerk Version

Installationsanleitung STATISTICA. Concurrent Netzwerk Version Installationsanleitung STATISTICA Concurrent Netzwerk Version Hinweise: ❶ Die Installation der Concurrent Netzwerk-Version beinhaltet zwei Teile: a) die Server Installation und b) die Installation der

Mehr

IPFW. Eine einfache Firewall mit FreeBSD erstellen. Martin 'Ventilator' Ebnöther mit viel Unterstützung von Fabian 'fab' Wenk

IPFW. Eine einfache Firewall mit FreeBSD erstellen. Martin 'Ventilator' Ebnöther mit viel Unterstützung von Fabian 'fab' Wenk IPFW Eine einfache Firewall mit FreeBSD erstellen Martin 'Ventilator' Ebnöther mit viel Unterstützung von Fabian 'fab' Wenk Vorbereitungen Einfügen in die Kernel- Config options IPFIREWALL # Enable ipfw

Mehr

Intrusion Prevention mit IPTables. Secure Linux Administration Conference, 6. / 7. Dec 2007. Dr. Michael Schwartzkopff. iptables_recent, SLAC 2007 / 1

Intrusion Prevention mit IPTables. Secure Linux Administration Conference, 6. / 7. Dec 2007. Dr. Michael Schwartzkopff. iptables_recent, SLAC 2007 / 1 Intrusion Prevention mit IPTables Secure Linux Administration Conference, 6. / 7. Dec 2007 Dr. Michael Schwartzkopff iptables_recent, SLAC 2007 / 1 Übersicht Grundlagen Linux Firewalls: iptables Das recent

Mehr

Kommunikations-Parameter

Kommunikations-Parameter KNX App knxpresso für Android Tablets/Phones Kommunikations-Parameter Ausgabe Dokumentation: Mai. 2015 Doku Version V1.0.0 - Seite 1/8 Inhaltsverzeichnis 1.1 Nützliche Links... 3 1.2 Beschreibung der Kommunikations-Datei...

Mehr

Knowledge Base SIP-Konfiguration auf der Fortigate

Knowledge Base SIP-Konfiguration auf der Fortigate Datum 05/01/2011 09:21:00 Hersteller Fortinet Modell Type(n) Fortigate Firmware v4.2 Copyright Boll Engineering AG, Wettingen Autor Sy Dokument-Version 1.0 Situation: SIP-Traffic auf einer Firewall zuzulassen

Mehr

Anleitung für das Editieren von Texten auf der Webseite haz.ch

Anleitung für das Editieren von Texten auf der Webseite haz.ch Anleitung für das Editieren von Texten auf der Webseite haz.ch Einloggen Um Texte ergänzen oder ändern zu können, musst du einen entsprechenden Account besitzen. Falls du keinen hast, melde dich bitte

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung Ein Computerprogramm besteht aus Funktionen (Programmabschnitten, die etwas tun) und Variablen (Speicherplätzen für Informationen). Werden Funktionen aktiviert, verändern

Mehr

Übersicht. Generierung von IPv6-Paketen mit Scapy. Scapy GUI - Kurzvorstellung. Szameitpreiks - Beuth Hochschule für Technik Berlin

Übersicht. Generierung von IPv6-Paketen mit Scapy. Scapy GUI - Kurzvorstellung. Szameitpreiks - Beuth Hochschule für Technik Berlin Übersicht Generierung von IPv6-Paketen mit Scapy Scapy GUI - Kurzvorstellung Szameitpreiks - Beuth Hochschule für Technik Berlin 2 Scapy-GUI for IPv6 Generierung von IPv6- Paketen mit Scapy Szameitpreiks

Mehr

Und nun kommt der wichtigste und unbedingt zu beachtende Punkt bei all deinen Wahlen und Schöpfungen: es ist deine Aufmerksamkeit!

Und nun kommt der wichtigste und unbedingt zu beachtende Punkt bei all deinen Wahlen und Schöpfungen: es ist deine Aufmerksamkeit! Wie verändere ich mein Leben? Du wunderbarer Menschenengel, geliebte Margarete, du spürst sehr genau, dass es an der Zeit ist, die nächsten Schritte zu gehen... hin zu dir selbst und ebenso auch nach Außen.

Mehr

Mediator 9 - Lernprogramm

Mediator 9 - Lernprogramm Mediator 9 - Lernprogramm Ein Lernprogramm mit Mediator erstellen Mediator 9 bietet viele Möglichkeiten, CBT-Module (Computer Based Training = Computerunterstütztes Lernen) zu erstellen, z. B. Drag & Drop

Mehr

Cyexplorer Handbuch Stand: Januar 2011 Convision Systems GmbH

Cyexplorer Handbuch Stand: Januar 2011 Convision Systems GmbH Cyexplorer Handbuch Stand: Januar 2011 Convision Systems GmbH Inhaltsverzeichnis 1. Einleitung 2 2. Registration und Ausbau des Servers 2 IP Discovery 2 Registration eines Servers 3 Abbau eines Servers

Mehr

PRAXISBUTLER ANPASSUNG DER VORLAGEN

PRAXISBUTLER ANPASSUNG DER VORLAGEN Praxisbutler Anpassung der Vorlagen 1 PRAXISBUTLER ANPASSUNG DER VORLAGEN Die Vorlagen werden hauptsächlich in den Bereichen Klienten und Fakturierung benutzt. Die Anpassung dieser Vorlagen ist wichtig,

Mehr

S-15155 / - 1 - Fragebogennummer: ... BITTE VERWENDEN SIE DIESEN FRAGEBOGEN NUR FÜR 9-10JÄHRIGE KINDER ÜBUNGSFRAGEN

S-15155 / - 1 - Fragebogennummer: ... BITTE VERWENDEN SIE DIESEN FRAGEBOGEN NUR FÜR 9-10JÄHRIGE KINDER ÜBUNGSFRAGEN S-15155 / - 1 - Fragebogennummer: Umfrage S-15155 / SA-Kinder April 2010 1-4 Fnr/5-8 Unr/9 Vers... BITTE VERWENDEN SIE DIESEN FRAGEBOGEN NUR FÜR 9-10JÄHRIGE KINDER ÜBUNGSFRAGEN Seite 1 S-15155 / - 2 -

Mehr

A B A C U S KONFIGURATION MOBILE ID. November 2014 / om. Version 1.3

A B A C U S KONFIGURATION MOBILE ID. November 2014 / om. Version 1.3 A B A C U S KONFIGURATION MOBILE ID November 2014 / om Version 1.3 Diese Unterlagen sind urheberrechtlich geschützt. Insbesondere das Recht, die Unterlagen mittels irgendeines Mediums (grafisch, technisch,

Mehr

MultiCard. So funktioniert s. Los geht s: SIM-Karten aktivieren und einlegen

MultiCard. So funktioniert s. Los geht s: SIM-Karten aktivieren und einlegen Mit einer Rufnummer bis zu 3 mobile Endgeräte nutzen mit nur einem Vertrag, einer Rechnung und einer Mailbox. + + = Was ist die? Mit der bist du unter einer Rufnummer auf bis zu 3 mobilen Endgeräten erreichbar

Mehr

IP routing und traceroute

IP routing und traceroute IP routing und traceroute Seminar Internet-Protokolle Dezember 2002 Falko Klaaßen fklaasse@techfak.uni-bielefeld.de 1 Übersicht zum Vortrag Was ist ein internet? Was sind Router? IP routing Subnet Routing

Mehr

Klaus Gerhardt Linux Seiten

Klaus Gerhardt Linux Seiten Klaus Gerhardt Linux Seiten iptables und Stealth Scans Klaus Gerhardt, 08.2005, Version 0.11 (Copyright, Nutzungsbedingungen, Haftungsausschluss, s.u.) In diesem Dokument verwendete eingetragene Warenzeichen,

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

TYPO3 Redaktoren-Handbuch

TYPO3 Redaktoren-Handbuch TYPO3 Redaktoren-Handbuch Kontakt & Support: rdv interactive ag Arbonerstrasse 6 9300 Wittenbach Tel. 071 / 577 55 55 www.rdvi.ch Seite 1 von 38 Login http://213.196.148.40/typo3 Username: siehe Liste

Mehr

LaFonera Erweiterung - Erstinstallation -

LaFonera Erweiterung - Erstinstallation - LaFonera Erweiterung - Erstinstallation - Inhaltsverzeichnis Benötigte Software SSH-Client z.b. Putty SFTP-Client z.b. WinSCP Vorraussetzungen Firmwareversion SSH Zugriff WinSCP3 Zugriff Installation der

Mehr

Dies ist eine Schritt für Schritt Anleitung wie man den Router anschließt und mit dem Internet verbindet.

Dies ist eine Schritt für Schritt Anleitung wie man den Router anschließt und mit dem Internet verbindet. Schnellinstallations Anleitung: Dies ist eine Schritt für Schritt Anleitung wie man den Router anschließt und mit dem Internet verbindet. 1) Verkabeln Sie Ihr Netzwerk. Schließen Sie den Router ans Stromnetz,

Mehr

Access Verbrecherdatenbank Teil 1

Access Verbrecherdatenbank Teil 1 Access Verbrecherdatenbank Teil 1 Allgemeines In dieser Übung erstellst du mit Microsoft Access eine Verbrecherdatenbank. Dabei lernst du die wesentlichen Elemente einer Datenbank wie Tabellen, Formulare

Mehr