Ein Firewallkonzept zum Schutz der DMZ vor
Transcription
Ein Firewallkonzept zum Schutz der DMZ vor
Forschungszentrum Karlsruhe in der Helmholtz-Gemeinschaft Dokumentation Ein Firewallkonzept zum Schutz der DMZ vor Attacken aus dem Internet Sascha Rech Prüf.-Nr. 138 00222 Dokumentation der betrieblichen Projektarbeit im Rahmen der Abschlussprüfung als Fachinformatiker-Systemintegration vorgelegt bei der Industrie- und Handelskammer Karlsruhe Mai 2003 Projektdokumentation Sascha Rech 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis .............................................................................................. 2 2 Projektbeschreibung ......................................................................................... 3 3 Planungsphase .................................................................................................. 4 3.1 Strukturanalyse (Projektphasen) ................................................................... 4 3.2 Ist-Zustand .................................................................................................... 5 3.3 Soll-Zustand .................................................................................................. 5 3.4 Zeitplan.......................................................................................................... 6 3.5 Hardware und Kosten.................................................................................... 6 4 Definitionsphase ................................................................................................ 7 4.1 Abgrenzung des Projektes ............................................................................ 7 4.2 Betriebssystem und Software........................................................................ 7 4.3 Arbeitsweise der IP-basierten, paketfilternden Firewall ................................. 7 4.4 Gefahren des Internets.................................................................................. 8 5 Realisierungsphase ........................................................................................... 9 5.1 Installation und Konfiguration des Betriebssystems ...................................... 9 5.2 Paketfilter „IPtables“ .................................................................................... 10 5.3 Test ............................................................................................................. 12 6 Projektabschluss ............................................................................................. 13 6.1 Inbetriebnahme ........................................................................................... 13 6.2 Soll-Ist-Vergleich ......................................................................................... 13 6.3 Fazit............................................................................................................. 13 A Anhang ............................................................................................................. 14 A.1 Quellenverzeichnis...................................................................................... 14 A.2 Konfigurationsscript firewall.sh.................................................................... 15 A.3 Syntax von “Iptables” .................................................................................. 19 A.4 Glossar........................................................................................................ 21 -2- Projektdokumentation Sascha Rech 2 Projektbeschreibung Die Forschungszentrum Karlsruhe GmbH ist eine Forschungseinrichtung der Hermann von Helmholtz Gemeinschaft und umfasst ca. 3500 Mitarbeiter. Das Forschungszentrum Karlsruhe ist in 21 weitgehend autonomen Organisationseinheiten, Hauptabteilungen und Institute unterteilt. Eines der Institute ist das Institut für Angewandte Informatik (IAI), in dem ich seit September 2000 meine Ausbildung absolviere. Das IAI ist in seiner informationstechnischen Infrastruktur weitgehend eigenverantwortlich. Mitte Dezember 2000 wurde eine Forschungszentrum Karlsruhe-weite Firewall implementiert wodurch einige Konsequenzen entstanden, die insbesondere die Programmentwicklung für Internetanwendungen im IAI betrafen. In einem ersten Schritt wurden alle WWW-Server des IAI bei der HIK (Hauptabteilung Informations- und Kommunikationstechnik) angemeldet. Die HIK schaltete dann sämtliche Ports frei die von den Servern genutzt wurden. Jeder WWW-Server erhielt einen Eintrag in dem zugeordneten Proxy-Server. Eine weitere Lösungsmöglichkeit war die Einrichtung einer „Demilitarisierten Zone“ (DMZ) im IAI, die letztendlich auch verwirklicht wurde. Die WWW-Server befinden sich nun in der DMZ des IAI und sind daher vor Attacken aus dem Internet nicht geschützt. Die Projektaufgabe ist nun, ein Firewallkonzept zu entwerfen, dessen Hauptaufgabe die gezielte Paketfilterung sein wird. Damit können die WWW-Server weiterhin ohne größere Bedenken ihre Dienste anbieten. -3- Projektdokumentation Sascha Rech 3 Planungsphase 3.1 Strukturanalyse (Projektphasen) Der Projektablauf wird in einzelne Projektphasen unterteilt. So ist eine bessere Kontrolle zur Einhaltung des Terminplanes und der Teilaufgaben gewährleistet. Das Abschlussprojekt gliedert sich in folgende Phasen: • Planungsphase In dieser Phase sollen folgende Punkte geklärt werden: - • Projektphasen definieren Ist-Zustand ermitteln Soll-Zustand erstellen Zeitplan erstellen Hardware- und Kostenplanung Definitionsphase Ein Technisches Feinkonzept bzw. die Detailplanung wird durchgeführt - • Abgrenzung des Projekts Auswahl der Betriebssystem- und Software Arbeitsweise der IP-basierten, paketfilternden Firewall Gefahren des Internets Realisierungsphase Nach der Erstellung einer prototypischen Lösung erfolgt ein erster Testlauf: - • Installation und Konfiguration des Betriebssystems Konfigurieren der „IPtable“-Filterregeln Funktionstest Projektabschluss Das fertige Konzept wird in die Produktion eingegliedert - • Firewallkonzept in Produktion nehmen Soll-Ist-Vergleich durchführen Dokumentation erstellen -4- Projektdokumentation Sascha Rech 3.2 Ist-Zustand Webserver1 INTERNET IAI-SWITCH Webserver2 Webserver3 Abb 3.1 - Ist-Zustand Wie bei Abbildung 3.1 sichtbar ist, sind die Webserver uneingeschränkt aus dem Internet erreichbar. Es existiert kein Sicherheitskonzept für die Webserver, dadurch sind sie den Attacken aus dem Internet ausgeliefert. Die Anbindung ans Internet erfolgt über einen Switch. 3.3 Soll-Zustand Webserver1 INTERNET IAI-SWITCH Webserver2 IAI-FIREWALL Webserver3 Abb 3.2 - Soll-Zustand Wie in der Grafik erkennbar soll eine Firewall unmittelbar vor den Switch implementiert werden. Diese soll die eingehenden Pakete filtern, wichtige Ports überwachen und nicht gebrauchte Ports schließen. Dadurch sind die Webserver vor Angriffen aus dem Internet geschützt. Die Dienste die auf den Webservern laufen, werden nicht beeinträchtigt. -5- Projektdokumentation Sascha Rech 3.4 Zeitplan 2 Projektabschluss 1 Fertigstellen der Dokumentation 10 10 4 Test 3 8 Konfiguration des Paketfilters 9 Installation und Konfiguration aller benötigten SoftwareKomponenten 6 5 4 4 Planungsphase 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 Geplante Zeit Tatsächliche Zeit 3.5 Hardware und Kosten Die Hardwareanforderungen hängen von dem Durchsatz (Menge/Zeit) der zu überprüfenden Datenpakete ab. Je nach Umsatz kann als Firewall ein 486er mit ausreichend RAM oder ein Pentium III dienen. Zur Realisierung des Firewallkonzeptes muss keine neue Hardware oder Software beschafft werden, so dass keine Beschaffungskosten entstehen. Die Hardware für die Firewall stammt von einem ehemaligen Webserver, die Software ist im Forschungszentrum Karlsruhe schon vorhanden. Der Firewall wird zusätzlich noch eine zweite Netzwerkkarte eingebaut die ebenfalls schon im IAI vorhanden ist. Das eingesetzte System ist in Abb. 3.3 beschrieben. Intel Pentium 166 MHz 192 MB SDRAM IBM 9,1 GB SCSI Festplatte Netzwerkkarten: - Allied Telesyn International AT-2500TX/ACPI - Intel Ether Express Pro / 100+ Abb. 3.3 – Hardwareausstattung der Firewall Personalkosten fallen keine an, da es sich bei meinem Projekt um einen internen Auftrag des IAI handelt. -6- Projektdokumentation Sascha Rech 4 Definitionsphase 4.1 Abgrenzung des Projektes Eine Firewall besteht aus mehreren Komponenten (Paketfilter, Proxy-Server, NAT …). Ziel dieser Projektarbeit ist es, einen Paketfilter zu entwickeln. Das System kann nach entsprechender Anpassung an die Systemumgebung des Institutes als Paketfilter zwischen dem Internet und den Webservern in der DMZ eingesetzt werden. 4.2 Betriebssystem und Software Ich habe mich für das Betriebssystem Linux (SuSE 8.2 Professional) entschieden, da es bereits im Kern wichtige Eigenschaften zum Aufbau einer Firewall zu Verfügung stellt. Außerdem ist es im Forschungszentrum Karlsruhe schon vorhanden. Unter Linux ist das Programm „IPtables“ die Benutzerschnittstelle zum Paketfilter der Firewall. Die Konfiguration erfolgt über die Kommandozeile. Einem Aufruf von „IPtables“ werden Optionen und Argumente übergeben (z.B. Quell- und Zieladresse, Quell- und Zielport, Netzwerkinterface, Pakettyp usw.). Als Schnittstelle zu den angrenzenden Netzwerken können je nach Netzwerkumgebung unterschiedliche Netzwerkkarten zum Einsatz kommen. 4.3 Arbeitsweise der IP-basierten, paketfilternden Firewall Um zu verstehen, auf welche Weise eine Firewall funktioniert, sollte die Art der TCPIP-Kommunikation bekannt sein. TCP- oder UDP-Pakete enthalten einen Empfänger- und einen Senderport. Diese Ports kennzeichnen für welchen Service das Paket zur Verfügung gestellt werden soll. Trägt ein Paket zum Beispiel den Empfängerport 80 (http) wird auf dem empfangenden PC der http-Service angesprochen. Ist dieser Service verfügbar, bekommt der anfragende PC eine gültige Antwort, ansonsten eine Fehlermeldung. Nun gibt es noch zwei verschiedene Typen von Ports. Zum einen sind dies die Ports im Bereich von 0-1023. Hierbei handelt es sich um die privillegierten Ports. Diese sind durch die IANA (Internet Assigned Numbers Authority) für bestimmte Services reserviert. Als nächstes Folgen die unprivillegierten Ports von 1024 bis 65535. Diese werden von den Client PCs für ausgehende Verbindungen genutzt oder dienen bei der IANA nicht registrierten Services als Zugriffspunkt (z.B. X-Server, NetBus...). -7- Projektdokumentation Sascha Rech Ein einfaches Beispiel wird anhand einer Verbindung eines Clients zu einem httpServer dargestellt. Anfrage von Port 1921 auf Port 80 Antwort von Port 80 auf Port 1921 Client WWW-Server Abb.4.1 - Beispieldarstellung Der Client-PC nutzt einen freien unprivilegierten Port, in diesem Fall 1921, und greift auf den privilegierten Port 80 (http) zu. 4.4 Gefahren des Internets Um eine sichere Firewall zu gestalten, ist es wichtig, sich über die drohenden Gefahren einen Einblick zu verschaffen. Die drohenden Angriffe sind entweder Denial-of-Service (DoS) Attacken oder Hackerangriffe. • Denial of Service Attacken Dem Angreifer geht es nicht um das erlangen von Daten oder Benutzerrechten, sondern lediglich darum, die Internetanbindung zu kappen oder den ganzen Rechner zum Absturz zu bringen. Dafür gibt es eine Reihe von Möglichkeiten. Eine solche Möglichkeit wäre z.B. der Einsatz eines SYN-Flooders. Das dahinter steckende Prinzip ist einfach: Ein TCP-Verbindungsaufbau besteht aus drei Schritten. Als erstes sendet der Client eine SYN-Abfrage bsw. an einen http-Server. Der Server sendet hierauf ein SYN-Acknowledge an den Client und wartet nun auf ein Acknowledge des Clients. Erfolgt kein Acknowledge des Clients, bleibt die Verbindung bis zu dem Auftreten eines Time-outs offen. Werden nun mehr Verbindungen geöffnet als durch Time-outs wieder freigegeben, kann das Netzwerksubsystem oder sogar das ganze System abstürzen. • Hackerangriffe Dem Hacker geht es darum, die bestehenden Sicherungsmechanismen zu umgehen und Zugriff auf den Server oder das dahinter liegende Netz zu erlangen. Dies kann im Einzelfall sehr einfach sein. Sind bei einem Windows-PC die Netzwerkbindungen nicht korrekt eingestellt, gelten Netzwerkfreigaben für das LAN auch für das Internet. So ist es z.B. möglich über SMB auf ein Netzwerklaufwerk mit privaten Dateien zuzugreifen. -8- Projektdokumentation Sascha Rech 5 Realisierungsphase 5.1 Installation und Konfiguration des Betriebssystems Die Installation des Betriebssystems SuSE 8.2 wird mit Hilfe der ersten bootfähigen Installations-CD gestartet. Im nächsten Schritt führt das Setup-Programm eine Hardwareerkennung durch, die die Hardware identifiziert und die nötigen Treibermodule lädt. Anschließend startet das Installations- und Konfigurationstool „YAST2“. Nach Auswahl der Sprache, des Tastaturlayouts und der Systemzeit bzw. der Zeitzone, wird während des Installationsvorganges die Festplatte wie folgt partitioniert: Device /dev/hda1 /dev/hda5 /dev/hda6 Größe 10 MB 385 MB 940 MB Mountpoint /boot swap / Dateisystem ext2 swap reiserfs Der Bootmanager „Lilo“ wird im Master Boot Record installiert. Im Anschluss wird aus den vorgegebenen Paketzusammenstellungen die Minimal-System-Konfiguration ausgewählt. Darin sind lediglich die Pakete enthalten, die zum Betreiben des Systems unbedingt notwendig sind. Über die benutzerdefinierte Installationsmöglichkeit wird noch das Paket „IPtables“ ausgewählt. Abhängigkeiten werden vom Installationstool angezeigt und automatisch aufgelöst. Nach Beendigung der Auswahl der zu installierenden Pakete wird die Installation gestartet. Durch Beobachten der Fortschrittsanzeige und der Installationsmeldungen können Fehler, die während der Installation auftreten, sofort erkannt werden. Zur Kontrolle wird das Installationsprotokoll auf eventuelle Fehlermeldungen geprüft. Das System startet anschließend ein erstes Mal und ist nun betriebsbereit. Um mögliche Fehler zu erkennen, ist es von Vorteil, die Boot-Log-Datei /var/log/boot.msg zu sichten, um später auftretenden Komplikationen vorzubeugen. Die Netzwerkkarten werden nun mit dem Text basierenden Konfigurationstool YAST wie folgt eingerichtet: Eth0 Netzwerkkarte Verbindung zu IP-Adresse Netzwerkmaske Default-Gateway Allied Telesyn International AT-2500TX/ACPI Internet 141.52.X.Y1 255.255.254.0 141.52.X.23 Eth1 Netzwerkkarte Verbindung zu IP-Adresse Netzwerkmaske Default-Gateway Intel EtherExpress PRO/100+ DMZ (Webservern) 141.52.X.Y2 255.255.254.0 141.52.X.23 -9- Projektdokumentation Sascha Rech 5.2 Paketfilter „IPtables“ Da in dem Betriebssystem SuSE 8.2 der Kernel 2.4 integriert ist und in diesem die Netfilter-Unterstützung sowie die „IPtables“-Module konfiguriert sind, kommt bei dieser Konfiguration der Paketfilter „IPtabels“ zum Einsatz. Ein Paketfilter überwacht und kontrolliert den Netzwerkverkehr zwischen zwei Netzwerken, indem er jedes Paket analysiert und eine Entscheidung über dieses Paket fällt. Mögliche Entscheidungen sind: • • • • ACCEPT für Durchlassen DROP für ablehnen von Paketen ohne Rückmeldung QUEUE um Pakete abzufangen und an eine normale Applikation weiter zu leiten RETURN sorgt dafür, dass alle weiteren Regeln einer Regelkette übersprungen werden und weiter verfahren wird Als Entscheidungskriterien werden neben den Informationen aus dem Header, z.B. Absender oder Zielport, auch Informationen der Netzwerkinterfaces, über die der Traffic läuft, herangezogen. Diese Funktion ist hilfreich, um das Vortäuschen einer vertrauenswürdigen Absenderadresse über das externe Interface zu unterbinden. Diese wichtige Eigenschaft wird auch in der folgenden Konfiguration des Paketfilters genutzt. Um die vielfältigen Funktionen des Netfilter-Codes zu steuern, existieren mehrere Tabellen. Die vordefinierten Standardregelketten, auch Chains genannt, heißen: • • • INPUT OUTPUT FORWARD Um den Weg eines Paketes, dass die Chains durchläuft zu veranschaulichen, hier ein Beispiel: Incoming Outgoing FORWARD chain routing? INPUT chain OUTPUT chain local local - 10 - Projektdokumentation Sascha Rech Hinzu kommen benutzerdefinierte Chains, die mit iptables –N (chainname) erstellt werden. Um die Filterfunktion bei jedem Starten des Servers mit zu laden, wird ein ShellScript mit dem Namen firewall.sh im Verzeichnis /etc/init.d angelegt. Wenn nun das IPtables-Script beim Start aufgerufen wird, werden als erstes einmal alle bestehenden Regeln, die noch im Kernel eingelesen sind gelöscht. Dies wird gemacht, um keine Konflikte mit neu zu erstellenden Regeln zu bekommen. Als nächstes werden den Variablen LAN und INET die beiden Interfaces eth0 und eth1 zugewiesen. Für die offenen Ports der TCP- und UDP-Dienste, werden die Variablen tcp_port und udp_port erstellt. Im Anschluss daran müssen verschiedene Kernelparameter gesetzt werden, wie zum Beispiel das IP-Forwarding und das Masquerading. Jetzt werden die drei Standard-Chains auf die Defaultregel DROP gesetzt, d.h. sollte keine der definierten Regeln in Anspruch genommen werden, wird das geprüfte Paket ohne eine Rückmeldung an den Absender verworfen. Dazu wird noch das Loopback-Interface aktiviert. Nun werden die benutzerdefinierten Chains LAN_IN, INET_IN, LAN_OUT und INET_OUT angelegt. Alle Pakete durchgehen als erstes die INPUT-Chain. Von dieser werden eingehende Pakete für den lokalen Gebrauch der Firewall an die benutzerdefinierte Chain INET_IN, und ausgehende Pakete die aus Rechnern der DMZ kommen, an die Chain LAN_IN, weiter geleitet. In der Chain INET_IN werden nur TCP-Pakete durchgelassen, die über die Ports 21, 22, 80 und 443 laufen und ICMP-Pakete mit dem TYP 8 und TYP 11. In der Chain LAN_IN sind nur eingehende Pakete zu einer bestehenden Verbindung erlaubt. Pakete, dessen Ziel einer der Webserver ist, müssen durch die FORWARD-Chain. In dieser Chain ist der Port 80 für den HTTP-Dienst, der Port 443 für den HTTPSDienst, der Port 21 für den FTP-Dienst und der Port 22 für den SSH-Dienst, alle geöffnet. Von jedem Port aus werden die Pakete an die Webserver weitergeleitet. Wollen Pakete die Firewall über einen der Interfaces verlassen, müssen sie durch die Regelkette der OUTPUT-Chain. Handelt es sich um ein Paket das von einem Webserver stammt oder lokal von der Firewall, muss es weiter zu der benutzerdefinierten Chain INET_OUT. In der INET_OUT sind die TCP-Ports 21, 22, 80 und 43, und der UDP-Port 53 geöffnet. Kommt das Paket allerdings aus dem Internet und möchte zu einem Webserver, so wird es weitergeleitet an die Chain LAN_OUT. Hier werden nur ausgehende Pakete zu einer bestehenden Verbindung erlaubt. Somit wären alle wichtigen Regeln in dem Script vorhanden. - 11 - Projektdokumentation Sascha Rech 5.3 Test Zu Testzwecken wurde eine Testumgebung bestehend aus 3 Rechnersystemen aufgebaut. Die beiden Testrechner laufen unter Microsoft Windows 2000 Professional und Microsoft Windows XP Professional. Es ergab sich folgender Aufbau: 192.168.0.2 192.168.1.1 192.168.0.1 192.168.1.2 Testrechner 1 Testrechner 2 FIREWALL Abb.5.1 - Testumgebung Zum Testen wurden Datenverbindungen zum jeweiligen Rechner hinter der Firewall aufgebaut. Auf dem Testrechner 2 wurde ein „Apache“-Webserver installiert dessen Dienste vom Testrechner 1 getestet wurden. Während dieser Datenverbindungen wurden die Ports der Firewall mit einem Portscanner überwacht. - 12 - Projektdokumentation Sascha Rech 6 Projektabschluss 6.1 Inbetriebnahme Nach dem erfolgreichen Abschluss der Testphase wird die Firewall in das produktive Umfeld des Institutes eingebunden. Danach folgt eine kurze Beschreibung und Einweisung meines Ausbilders in die Funktionalität meiner Firewallregeln. 6.2 Soll-Ist-Vergleich Im Soll-Ist-Vergleich wird der jetzige Zustand mit dem am Anfang des Projektes erarbeiteten Soll-Zustand verglichen. Hierbei lässt sich erkennen, dass - eingehende Pakete gefiltert, wichtige Ports überwacht und nicht gebrauchte Ports geschlossen werden, - die Webserver nun vor Angriffen aus dem Internet besser geschützt sind, - die Dienste auf den Webservern nicht beeinträchtigt werden, 6.3 Fazit Das Projekt verlief ohne größere Probleme. Ich habe dieses Sicherheitskonzept weitgehend an die Anforderungen des Institutes angepasst, so dass die Webserver vor Attacken aus dem Internet besser geschützt sind. Werden die Sicherheitsanforderungen an die Firewall in naher Zukunft höher, besteht die Möglichkeit im IAI auf eine professionellere Firewall umzusteigen wie z.B. auf eine CISCO PIX-Firewall. Doch für die momentanen Anforderungen im Institut, reicht das konzipierte Sicherheitskonzept vollkommen aus. Hiermit möchte ich noch meinem Ausbildungsbetrieb der Forschungszentrum Karlsruhe GmbH und dem Institut für Angewandte Informatik, in dem ich 3 Jahre untergebracht war, recht herzlich danken. Sie ermöglichten mir mit der Bereitstellung der Hard- und Software dieses Projekt durchzuführen. - 13 - Projektdokumentation Sascha Rech A Anhang A.1 Quellenverzeichnis Literatur: • „Das Firewall Buch“ Grundlagen, Aufbau und Betrieb sicherer Netzwerke mit Linux - Autor: Wolfgang Barth - Verlag: SuSE Press - Erscheinungsjahr: 2001 - ISBN: 3-934678-40-8 • „Firewall-Systeme“ Sicherheit für Internet und Intranet - Autor: Norbert Pohlmann - Verlag: MITP – Verlag GmbH - Erscheinungsjahr: 1998 - ISBN: 3-8266-4044-6 • „SuSE Linux 8.2 Administrationshandbuch - Autor: u.a. Frank Bodammer, Stefan Dirsch, Olaf Donjak - Verlag: SuSE Linux AG - Erscheinungsjahr: 5. Auflage 2003 - ISBN: 3-935922-99-X • „SuSE Linux 8.2 Benutzerhandbuch - Autor: u.a. Stefanie Haefner, Gernot Hillier, Carsten Fischer - Verlag: SuSE Linux AG - Erscheinungsjahr: 1. Auflage 2003 - ISBN: 3-935922-98-1 Webseiten: • http://joerg.fruehbrodt.bei.t-online.de/netfilter.html • http://www.linuxfaq.de/f/cache/419.html • http://www.netcosmos.de - 14 - Projektdokumentation Sascha Rech A.2 Konfigurationsscript firewall.sh #!/bin/sh ################################################################### # Erstellt von: Sascha Rech # Datum: April 2003 ################################################################### ### Alle vorhandenen Regelketten werden gelöscht iptables -F iptables -t nat -F iptables -X ### Variablen für die zwei Interfaces INET=eth0 LAN=eth1 ### Variablen für die zu öffnenden Ports tcp_port=“21 22 80 443“ udp_port=“53“ ### Laden der Iptables Module /sbin/depmod -a /sbin/modprobe ipt_LOG /sbin/modprobe ipt_MASQUERADE ### IP-Forwarding echo "1" > /proc/sys/net/ipv4/ip_forward #################################### ### Alles erst mal verwerfen iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP ### Aktivieren von Loopback iptables -I INPUT -i lo -j ACCEPT iptables -I OUTPUT -o lo -j ACCEPT ### Erstellen von zusätzlichen CHAINS iptables –N LAN_IN iptables –N INET_IN iptables –N LAN_OUT iptables –N INET_OUT - 15 - Projektdokumentation Sascha Rech #################################### # INPUT-CHAIN iptables –A INPUT –i $LAN –j LAN_IN iptables –A INPUT –i $INET –j INET_IN #################################### # FORWARD-CHAIN ### HTTP: Öffnen des Port 80 und weiterleiten an die Webserver iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 80 -d 141.52.X.98 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 80 -d 141.52.X.99 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 80 -d 141.52.X.100 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 80 -d 141.52.X.101 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT ### HTTPS: Öffnen des Port 443 und weiterleiten an die Webserver iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 443 -d 141.52.X.98 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 443 -d 141.52.X.99 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 443 -d 141.52.X.100 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 443 -d 141.52.X.101 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT ### FTP: Öffnen des Port 21 und weiterleiten an die Webserver iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 21 -d 141.52.X.98 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 21 -d 141.52.X.99 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 21 -d 141.52.X.100 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 21 -d 141.52.X.101 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT - 16 - Projektdokumentation Sascha Rech ### SSH: Öffnen des Port 22 und weiterleiten an die Webserver iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 22 -d 141.52.X.98 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 22 -d 141.52.X.99 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 22 -d 141.52.X.100 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT iptables -I FORWARD -i $INET -o $LAN -p tcp --dport 22 -d 141.52.X.101 -m state -state NEW,ESTABLISHED,RELATED -j ACCEPT #################################### #OUTPUT-CHAIN ### Weitergeben an die Chains: LAN_OUT und INET_OUT iptables -A OUTPUT -o $LAN -j LAN_OUT iptables -A OUTPUT -o $INET -j INET_OUT #################################### # LAN_IN ### Eingehende Pakete zu einer bestehenden Verbindung erlauben iptables -I LAN_IN -i $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A LAN_IN -i $LAN -j ACCEPT ### Return $iptables -A LAN_IN -j RETURN #################################### # LAN_OUT ### Ausgehende Pakete zu einer bestehenden Verbindung erlauben iptables -I LAN_OUT -o $LAN -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A LAN_OUT -o $LAN -j ACCEPT ### Return $iptables -A LAN_OUT -j RETURN - 17 - Projektdokumentation Sascha Rech #################################### # INET_IN ### Öffnen von Ports iptables –A INET_IN –i $INET –p tcp --dport $tcp_port –j ACCEPT ### ICMP-Pakete zulassen, nur TYPE 8 und 11 iptables –A INET_IN –i $INET –p icmp –s 0/0 --icmp-type 8 –j ACCEPT iptables –A INET_IN –i $INET –p icmp –s 0/0 --icmp-type 11 –j ACCEPT ### Return $iptables -A INET_IN -j RETURN #################################### # INET_OUT ### Öffnen von tcp und udp Ports iptables –A INET_OUT –o $INET –p tcp --dport $tcp_port –j ACCEPT iptables –A INET_OUT –o $INET –p udp --dport $udp_port –j ACCEPT iptaböes –A INET_OUT –o $INET –j ACCEPT ### Return $iptables -A INET_OUT -j RETURN #################################### # LOGS ### INPUT-, FORWARD- und OUTPUT-CHAIN werden geloggt $iptables -A INPUT -j LOG --log-prefix FIRE_ -m limit --limit 2 --limit-burst 4 $iptables -A FORWARD -j LOG --log-prefix FIRE_ -m limit --limit 2 --limit-burst 4 $iptables -A OUTPUT -j LOG --log-prefix FIRE_ -m limit --limit 2 --limit-burst 4 - 18 - Projektdokumentation Sascha Rech A.3 Syntax von “Iptables” Regel iptables Anhängen -A Löschen -D Ersetzen -R Einfügen -I Regelliste Anzeigen -L Leeren -F Neu -N Löschen -X Umbenennen -E Filtertabellen Input INPUT Output OUTPUT Forwarding FORWARD Accounting n.a. Prerouting PREROUTING Postrouting POSTROUTING Aktionen (targets) Erlauben -j ACCEPT Ablehnen mit Rückmeldung -reject-with Ablehnen ohne Rückmeldung -j DROP Tabelle verlassen -j RETURN Sprung zu benutzerdef. Tabelle -j <userdefined chain> Paket in den Userspace leiten -j QUEUE - 19 - Projektdokumentation Sascha Rech Masquerading --to-ports SNAT --to-source DNAT --to-destination LOG --log-level --log-prefix --log-tcp-sequence --log-tcp-options --log-ip-options MARK --set-mark TOS --set-tos MIRROR -j MIRROR (exp.) Umleiten --to-ports Parameter Absender (source) -s Empfänger (destination) -d Protokoll -p Interface Input-Interface -i Output-Interface -o - 20 - Projektdokumentation Sascha Rech A.4 Glossar DMZ: Demilitarisierte Zone. Ein entkoppeltes, isoliertes Teilnetzwerk, das zwischen das zu schützende Netz und das unsichere Netz geschaltet wird. FIREWALL: Englische Bezeichnung für "Feuermauer" / "Brandmauer". Technik in Form von Hard- und/oder Software, die den Datenfluss zwischen einem privaten und einem ungeschützten Netzwerk (also LAN und Internet) kontrolliert bzw. ein internes Netz vor Angriffen aus dem Internet schützt. Dazu vergleicht eine Firewall z.B. die IP-Adresse des Rechners, von dem ein empfangenes Datenpaket stammt, mit einer Liste erlaubter Sender - nur deren Daten dürfen passieren. FTP: File Transfer Protocol. Ein Protokoll für die Übertragung von Informationen (Dateien) zwischen Computern im Netzwerk, das über TCP/IP arbeitet. HTTP: HyperText Transfer Protocol. Internet-Dienst, mit dem Daten zwischen Webserver und Browser ausgetauscht werden. HTTPS: HyperText Transport Protocol Secure. Protokoll für den Zugang zu einem Web-Server. Die Angabe von HTTPS anstelle von HTTP in der URL führt zu einer geschützten Website, im Gegensatz zur 80, der Standard-Portnummer im Internet. IANA: Internet Assigned Numbers Authority. Hier werden im weitesten Sinne alle "Nummern" die im Zusammenhang mit dem Netz stehen zugeteilt/gesammelt/verwaltet (z.B. die IPNummern). ICMP Internet Control Message Protocol. Das ICMPProtokoll ist ein Protokoll zur Übertragung von Statusinformationen und Fehlermeldungen der Protokolle IP, TCP und UDP zwischen IPNetzknoten. IPTABLES: Ein in Linux (ab Kernel 2.4) integrierter Paketfilter. - 21 - Projektdokumentation Sascha Rech KERNEL: Auch Kernprogramm, der Teil eines Betriebssystems oder komplexen Programms, der sich zur Laufzeit immer im Arbeitsspeicher befinden muss. Er erledigt die Hauptaufgaben und lädt bei Bedarf externe Routinen nach, die für spezielle Aufgaben benötigt werden. So wird der Arbeitsspeicher sowenig wie möglich belastet, jedoch verringert sich bei häufigem Nachladen die Ausführungsgeschwindigkeit, da sich die Zugriffszeit verlängert. KOMMANDOZEILE: Die Kommandozeile ist ein Eingabebereich für die Steuerung einer Software, insbesondere eines Betriebssystems. Die Kommandos werden als Worte eingegeben, oftmals sind diese aus dem Englischen entnommen, teilweise als Abkürzung wie z.B. bei DOS der Befehl "dir" für "directory". Die Ausführung der Befehle wird durch Parameter gesteuert. Unter Linux heißt die Kommandozeileneingabe auch Konsole (Shell). LILO: LILO ist die Abkürzung für "LInux LOader". Dieses Programm startet den Linux-Kernel beim booten. Er kann auch als Boot-Manager arbeiten und andere Betriebssysteme starten. LOOPBACK-INTERFACE: Simuliert Netzwerkverbindungen innerhalb des Rechners. MASQUERADING: Sonderform von NAT, bei der viele private auf eine einzige öffentliche IP-Adresse umgesetzt werden. MBR: Master Boot Record. MBR ist der erste Sektor einer Festplatte. Er steht immer an derselben Stelle, egal welches Mapping das BIOS verwendet. In diesem Sektor befindet sich das Systemstartprogramm, das den Bootsektor der aktiven Partition lädt und so dem Betriebssystem auf die Sprünge hilft. Auch stehen dort Informationen, wie die Platte partitioniert ist. NAT: Abkürzung für "Network Address Translation" • Methode zur Umsetzung der (meist privaten) IPAdressen eines Netzes auf andere (meist öffentliche) IP-Adressen eines anderen Netzes. NETBUS: Ist ein Trojanisches Pferd (öffnet eine Hintertür, über die man via Netzwerk unbemerkt auf den Rechner zugreifen kann). - 22 - Projektdokumentation Sascha Rech PAKET: Informationen in Netzwerken werden als eine Einheit von A nach B transportiert. In paketvermittelten Netzwerken ist ein Paket noch genauer als eine Übertragungseinheit mit festgelegter Maximalgröße (je nach Netzwerktyp) definiert. PAKETFILTER: Ein Paket-Filter entscheidet anhand der im Header von IP-Paketen enthaltenen Adressen, was mit dem Paket zu geschehen hat (verwerfen, weiterleiten, zurückweisen etc.). Ein Paket-Filter bietet einen Basisschutz gegen Hacker-Angriffe und verhindert, dass bestimmte Websites aufgerufen werden. PORT: Englische Bezeichnung für Schnittstelle Verbindungsmöglichkeit des PCs mit Peripheriegeräten. TCP / IP-Anwendungen adressieren den Kommunikationspartner zum einen über die IPAdresse, zum anderen über eine Port-Nummer, die den Dienst auf dem Zielrechner spezifiziert. Dafür gibt es so genannte well known ports, für ftp ist dies beispielsweise die Nummer 21, für http (WWW) 80. PORTSCANNER: Ein Portscanner ist ein Netzwerk Utility, um offene TCP Ports zu "scannen". Nutzungsmöglichkeiten ergeben sich durch Sicherheitsscanning, Tests zur Funktionalität sowie Überprüfung von Servern. Mit Hilfe eines Portscanners kann man schnell herausfinden, welche Ports (und damit auch, welche Internetdienste) auf einem bestimmten Server oder auch einer Workstation vorhanden sind. Der Portscanner macht dabei nichts anderes, als alle Ports einzeln abzuhören und zu prüfen, ob dort eine Antwort kommt - wenn sie kommt, ist dort ein Port aktiv und kann möglicherweise missbraucht werden. PROXY-SERVER: 'Proxy' bedeutet soviel wie 'Stellvertreterdienst' • Proxies nehmen Anforderungen von einem Client (z.B. einem WWW-Browser) entgegen und geben sie, gegebenenfalls modifiziert, an das ursprüngliche Ziel (z.B. eine WWW-Site) weiter. Proxies können die durchgeschleusten Daten lokal ablegen und beim nächsten Zugriff direkt liefern. - 23 - Projektdokumentation Sascha Rech SCRIPT: Scripte dienen oft als Ergänzung zu anderen Dokumenten und werden in diese integriert (Eine Scriptsprache ist eine vereinfachte Form einer komplexeren Programmiersprache). SMB: Server Message Block. Ein von Microsoft, Intel und IBM entwickeltes Protokoll, das verschiedene Befehle zur Informationsübertragung zwischen Netzwerkcomputern definiert. Der Redirector platziert SMB-Anforderungen in einer NCB-Struktur (Network Control Block), die anschließend über das Netzwerk an ein Remotegerät gesendet werden kann. Der Netzwerkprovider überwacht die Leitung auf an ihn adressierte SMB-Nachrichten und entfernt den Datenanteil der SMB-Anforderung, damit dieser durch ein lokales Gerät verarbeitet werden kann. SMTP: Simple Mail Transfer Protocol. Standard für den Austausch von E-Mails zwischen Servern im Netzwerk. E-Mail-Clients benutzen SMTP nur, um E-Mails an einen Server zu schicken - nicht aber zum Empfangen. SSH: Secure Shell. Dieses ist ein Unix-Programm, welches eine einigermaßen sichere (secure) Verbindung zur Fernverwaltung eines Rechners aufbaut. Die Steuerung erfolgt mittels einer Shell. Auf jeden Fall sicherer als Telnet, aber aufgrund einiger gravierender Sicherheitslücken (besonders BufferOverflows) nicht zur Verwaltung hochsensibler Daten geeignet! SWITCH: Englische Bezeichnung für Schalter. In der Netzwerktechnik versteht man unter einem Switch einen aktiven Hub, der wie eine Telefonvermittlungsstelle den Netzwerkverkehr zwischen Clients und Server(n) regelt, in dem er selbsttätig die Zieladressen der IP-Pakete auswertet und diese dann den entsprechenden Adressaten zustellt. SYN-FLOODERS: Auf einem fremden System wird eine große Anzahl von (gefälschten) (TCP)-Verbindungen aufgebaut, die bereits während des Verbindungsaufbaus wieder unterbrochen werden. Diese "halb offenen" Verbindungen blockieren dann das System. - 24 - Projektdokumentation Sascha Rech TCP: Transmission Control Protocol. Ein vom Internet häufig verwendetes Netzwerkprotokoll, das die Kommunikation über miteinander verbundene Netzwerke aus Computern mit unterschiedlichen Hardwarearchitekturen und Betriebssystemen möglich macht. Es bietet eine Reihe verschiedener Dienste, wie z.B. http, ftp. UDP: Users Datagram Protocol. UDP ist eine Alternative zu TCP (Transmission Control Protocol), also ein Kommunikations-Protokoll zwischen zwei Computern. Wie auch TCP kommuniziert UDP über das Internet Protocol (IP), ist allerdings aufgrund einer anderen Arbeitsweise nicht so zuverlässig. Startet eine Seite eine Daten-Anfrage per UDP, sendet die Gegenseite die Daten, ohne bei der fragenden Seite nachzufragen, ob die Pakete auch angekommen sind. Bei TCP wird die Zuverlässigkeit der einzelnen Pakete kontrolliert und verloren gegangene Pakete werden ggf. noch einmal gesendet. Deswegen sind Übertragungen via TCP auch langsamer (mehr Overhead), allerdings auch zuverlässiger als solche via UDP. Bei Live-Streams (siehe z.B. Videostreaming), die eine flüssige und schnelle Datenübertragung verlangen, wird UDP eher eingesetzt als TCP, da hier kleinere Datenaussetzer nicht wirklich von Bedeutung sind. WWW-SERVER WEBSERVER: X-SERVER: Server, der HTML-Dokumente und andere Internet / Intranet-Ressourcen speichert und über HTTP versendet bzw. entgegennimmt (auch HTTP-Server genannt). Beim X-Server handelt es sich um Software, die Bestandteil von X-Terminal ist. In X-Window ist der X-Server für die Datendarstellung, die Benutzeroberfläche und die Überwachung der Eingabegeräte wie Maus und Tastatur verantwortlich, der X-Client für die Verarbeitung. XAnwendungen können nur mit einem X-Terminal durchgeführt werden, das über einen X-Server verfügt. Der Benutzer eines X-Servers kann am Bildschirm gleichzeitig mit mehreren X-Clients arbeiten, die die Anwendung repräsentieren. Der X-Server empfängt die Anforderungen der X-Clients und leitet die Benutzereingaben von Maus und Tastatur an den richtigen X-Client weiter. - 25 - Projektdokumentation Sascha Rech Er verwaltet die Datenobjekte wie die Windows, Cursor, Fonts, Graphics usw. Die Ressourcen können von mehreren X-Clients gleichzeitig genutzt werden. Jeder X-Client wird in einem eigenen Fenster dargestellt. Die Kommunikation zwischen X-Server und X-Client erfolgt über das X-Protokoll. Bekannte X-Server sind der Unix-basierende X11, sowie die Windows-basierenden Exceed und MiX. YAST(2): Installations- und Systemadministrationsprogramm von SuSE Linux. Yast2 gibt es erst seid SuSE Linux 8.0. - 26 - Projektdokumentation Sascha Rech Name, Vorname: _____________________________________ ( in Druckbuchstaben ) Persönliche Erklärung zur Projektarbeit und Dokumentation im Rahmen der Abschlussprüfung in IT-Berufen Ich versichere durch meine Unterschrift, dass ich die betriebliche Projektarbeit und die dazugehörige Dokumentation selbständig in der vorgegebenen Zeit erarbeitet habe. Ich habe keine anderen als die von mir angegebenen Quellen und Hilfsmittel verwendet. ________________________ Ort, Datum ______________________________ Unterschrift des Prüfungsteilnehmers Zur Kenntnis genommen: ______________________________ Ausbilder/-in + Firmenstempel - 27 -