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 -