mit openldap und radius - Digital

Transcription

mit openldap und radius - Digital
GEMEINSAME BENUTZERVERWALTUNG
MIT OPENLDAP UND RADIUS
CEBIT SPLITTER
DNS - AUFBAU
UND
COMPUTER FORENSIK
DATA HIDING
KERNEL SECURITY
IPV6
BS7799
IT SERVICE MANAGEMENT
SERVER-TAGEBUCH TEIL 2
SCHWACHSTELLEN
Hagenberger Kreis
zur Förderung der digitalen Sicherheit
pA FH-Studiengang CMS
Hauptstraße 117
4232 Hagenberg
http://www.hagenbergerkreis.at
[email protected]
fax: 07236 / 3888 2599
3
Vorwort
Der Sommer ist zu Ende und ein neues Studienjahr beginnt. Wobei sich viele
fragen werden, wo denn der Sommer hinsichtlich der Temperaturen überhaupt geblieben ist. Während zumindest in Deutschland der Wahlkampf für
Hitzewallungen sorgte, blieb es bei uns doch eher mäßig. Nichts desto trotz
hoffe ich, dass jeder, der Urlaub hatte, diesen auch genießen konnte.
Der Herbst beginnt zumindest heiß. Zehn neue Artikel im Magazin erklären,
klären auf und analysieren Themen aus den verschiedensten Bereichen der
IT-Sicherheit.
Von der tief greifenden Technik bis zur hohen Kunst des Managements ist
wieder einmal für jeden Geschmack etwas dabei.
Wieviele Türen aus unserem Titelbild haben Sie in Verwendung? Wäre es
nicht einfacher nur eine Türe öffnen zu müssen? Sollte Sie diese Frage mit
‘ja’ beantworten, dann wird Ihnen unser Titelthema auf effiziente Weise einen
Einblick in diese Thematik anhand von OpenLDAP und FreeRadius bieten.
Während der Hagenberger Kreis sich bereits in der Anfangsphase der Planung
für das nächste Security Forum befindet und unsere neuen Studenten durchstarten, begeben wir uns auf Themensuche für die nächste Ausgabe. Einstweilen wünsche ich Ihnen viel Spaß mit dem aktuellen HK-Magazin.
Harald Fürlinger
[email protected]
HK - Magazin
4
Impressum
HK-Magazin
Medieninhaber und Verleger: Hagenberger Kreis zur Förderung der digitalen Sicherheit
Herausgeber und Redaktion: Harald Fürlinger und Dirk Wallerstorfer
A-4232 Hagenberg, Hauptstraße 117
Fax: +43 (0) 7236 - 3888 2599
E-Mail: [email protected]
Chefredaktion: Harald Fürlinger
Grafik / Design und Layout: Dirk Wallerstorfer
Bilderquelle: www.photocase.de
© wenn nicht anders angegeben, bei den Autoren.
Nachdruck der Artikel nur unter genauer Quellenangabe erlaubt, welche die Nennung
des Autors sowie die des Hagenberger Kreises beinhalten muss.
Eine Haftung für die Richtigkeit der Veröffentlichungen kann trotz sorgfältiger Prüfung
durch die Redaktion vom Herausgeber nicht übernommen werden.
Für namentlich gekenntzeichnete Artikel wird nur die presserechtliche Verantwortung
übernommen.
Produktbezeichnungen und Logos sind zu Gunsten der jeweiligen Hersteller als Warenzeichen und eingetragene Warenzeichen geschützt.
Wir übernehmen keine Haftung für eventuelle Schäden die aus der Benutzung des pdfFiles entstehen könnten und empfehlen das File vor dem Öffnen noch einmal mit einem
Virenscanner zu prüfen.
Dieses Magazin erscheint regelmäßig.
HK - Magazin
5
Inhaltsverzeichnis
CEBIT SPLITTER
6
Die
von
10.
bis
16.3.2005
in
Hannover stattgefundene CeBIT 2005 war wiederum eine Fundgrube für technische Innovationen
und
zukunftsweisende
Entwicklungen.
DNS - AUFBAU
UND
SCHWACHSTELLEN
KERNEL SECURITY
Bei der Diskussion um das Beste und sicherste Betriebssystem wird meist Linux als erste Wahl genannt. Doch warum ist das so? Man könnte meinen,
dass ein fertig zusammengestelltes und unveränderliches Windows System weitaus sicherer ist.
8
IPV6
Das Domain Name System (DNS) ist eine verteilte Datenbank, die den Namensraum im Internet verwaltet
und Domainnamen in IP-Adressen umwandelt und
umgekehrt. Das DNS bietet eine Vereinfachung, weil
Menschen sich Namen weitaus besser merken können als Zahlenkolonnen.
COMPUTER FORENSIK
12
Der Ausdruck Forensik stammt aus dem Lateinischen
und bedeutet gerichtlich oder kriminaltechnisch. Die
Computer Forensik oder auch Digitale Forensik wird
vor allem bei Ermittlung von Systemeinbrüchen im
Bereich der Computerkriminalität eingesetzt.
DATA HIDING
14
Data Hiding Techniken beschäftigen
sich mit dem Einbetten von Informationen in ein Trägermedium (z.B.: eine
Festplatte). Ziel dabei ist es, diese
Daten so zu verstecken, dass sie für
jeden, außer für den Eigentümer, unsichtbar sind.
21
23
Das Internet Protocol Version 6 ist
der designierte Nachfolger der sehr
populären Version 4. IPv6 weist in
manchen Teilen noch Ähnlichkeiten zum Vorgänger auf, legt jedoch neben zahlreichen Verbesserungen und Erweiterungen einige
neue, sehr interessante Konzepte
zu Tage.
ZERTIFIZIERTE INFORMATIOSSICHERHEIT
BZW. ISO/IEC 17799
NACH
BS 7799
25
Dass Komponenten wie Firewalls und Anti-Viren
Programme zu zentralen Bestandteilen eines Sicherheitskonzepts gehören, haben mittlerweile die meisten Unternehmen erkannt. Aber was nützt die beste
Firewall, wenn es die Mitarbeiter sind, die sensible
Daten an die Öffentlichkeit tragen?
IT SERVICE MANAGEMENT
28
Ein Großteil der Geschäftsprozesse von Unternehmen
setzt das reibungslose Funktionieren aller IT-Infrastrukturkomponenten (Daten- und Sprachnetzwerke, Serversysteme, Anwendungen, etc.) voraus.
GEMEINSAME BENUTZERVERWALTUNG FÜR SQUID, POSTFIX,
PPTP UND L2TP/IPSEC MIT OPENLDAP UND FREERADIUS
16
Ein typisches Szenario für einen Benutzer mit mehreren Diensten dargestellt, wobei im schlimmsten
Fall für jeden Dienst unterschiedliche Benutzernamen und Passwörter zur Authentifizierung notwendig sind.
SERVER TAGEBUCH - TEIL 2
30
Der zweite Teil des Server Tagebuchs behandelt die
Services FTP, Samba und DynDNS.
HK - Magazin
6
Cebit Splitter
Cebit Splitter
Die von 10. bis 16.3.2005 in Hannover stattgefundene CeBIT 2005 war wiederum eine Fundgrube für technische Innovationen und zukunftsweisende Entwicklungen.
IBM ...
DIE TU BRAUNSCHWEIG, ...
... hat einen Prototyp des im Rahmen
des Millipede-Projektes entwickelten, im Nanobereich arbeitenden
thermomechanischen Datenträgers
vorgestellt. Mit dieser Technologie kann eine Aufzeichnungsdichte
von 1 TB pro Quadratzoll erreicht
werden, was etwa der Datenmenge
von 25 DVDs auf der Fläche einer
Briefmarke entspricht. Der Datenträger ist wiederbeschreibbar. Die
Marktreife könnte nach etwa 2 bis
3-jähriger Entwicklungszeit erreicht werden.
... Institut für Hochfrequenztechnik, hat organische Leuchtdioden
(O-LEDs) präsentiert. Sie bestehen
aus hauchdünnen Schichten organischer Halbleiter und organischer
Farbstoffe, können auf biegsame
Folien aufgetragen werden und
benötigen, da sie selbstleuchtend
sind, im Gegensatz zu LCDs, keine
Hintergrundbeleuchtung. Des-halb
und weil sie Strom direkt in Licht
umwandeln, kommen sie mit weniger Energie aus und sind aus jedem
Betrachtungswinkel gut zu erkenHK - Magazin
nen. Eingesetzt werden derartige
ansteuerbare Folien – die, etwa 2
cm groß, auf der CeBIT „in Serie“
hergestellt wurden - bereits jetzt
als Displays. Die Weiterentwicklung
kann bis zur flächendeckenden Beleuch-tung von Wänden oder dem
als flache Folie an die Wand gehängten Fernseher/Bildschirm gehen.
DIE PHILIPPS-UNIVERSITÄT ...
... Marburg hat die Anwendungs-
7
Cebit Splitter
möglichkeiten des aus einem Bakterium gewonnenen Pigment Bakteriorhodopsin weiterentwickelt. Es
handelt sich um ein fotochromatisches Protein, das unter Einwirkung sichtbaren Lichts seine Farbe
sehr augenfällig von Violett nach
gelb ändert. Diese Eigenschaft
kann genützt werden, um Dokumente (Banknoten) fälschungssicher zu gestalten. Ändert sich die
Farbe unter Lichteinfluss nicht,
liegt eine Kopie vor. Die Herstellung des Farbstoffs erfordert hohes biotechnologisches Wissen und
Knowhow. Außerdem können, ohne
die grundlegenden Eigen-schaften
zu verändern, Sequenzen der Aminosäuren verändert und das Material dadurch codiert werden, mit
2010 Kombinationsmöglichkeiten,
sodass eine Rückführbar-keit auf
den Ursprungsort gewährleistet
werden kann.
Bei Einwirkung sehr hoher Lichtenergie, wie sie durch Laserpulse
in Pico- bis Nanosekundenbereich
erzielt wird, wird der Farbwechsel
irreversibel, was zur Datenspeicherung im Bereich von 1 MB/cm²
benützt werden kann
KIDDE-DEUGRA ...
... hat, auf der Basis des Löschmittels Novec™ 1230 von 3M, im Rahmen des CefIS (Centrum für Informationssicherheit) ein neuartiges
Löschsystem vorgestellt. Das bei
Raumtemperatur flüssige Löschmittel ist elektrisch nicht leitend
– ein in die Flüssigkeit eingetauchtes Handy war nachher wieder voll
funktionsfähig. Es handelt sich
um ein C6-Fluorketon und nicht
um einen Fluorkohlenwasserstoff
(anstelle des Wasserstoffs ist ein
Sauerstoffatom in Doppelbindung
eingefügt). In der Atmosphäre löst
sich das Gas nach Herstellerangaben spätestens nach fünf Tagen
ohne Gefahr für die Ozonschicht
auf.
Die Flüssigkeit steht in Behältern durch Stickstoff unter einem
Druck von etwa 40 bar und wird im
Brandfall über spezielle Düsen ver-
dampft. Die brandlöschende Wirkung entsteht dadurch, dass dem
Feuer eine seiner Komponenten,
nämlich die Wärme, entzogen wird.
Es findet also nicht, wie beispielsweise bei Inertgasen, eine Sauerstoffverdrängung statt, mit der
damit verbundenen Erstickungsgefahr für Menschen und der Gefahr
des Überdrucks.
Die Brandbekämpfung kann auch
direkt in einem 19“-Schrank erfolgen, indem Rauchmelder, Steuer- und Löscheinheit direkt in einem Einschub installiert sind, der
im Schrank zuoberst angeordnet
wird.
MIT CINDERELLA ...
... („Math in Motion“) können nicht
nur geometrische Lehrsätze interaktiv auf einer Schautafel sichtbar
und plausibel gemacht werden,
sondern es kann, an Hand der physikalischen Gesetze, mit Szenarien
von Atomphysik über Optik bis zu
Planetenbewegungen experimentiert werden, ohne den real durch
Versuchsbedingungen gegebenen
Erschwernissen unterworfen zu
sein. Die Umsetzung der auf der
Tafel eingegebenen Ausgangswerte
in dargestellte Bewegungen erfolgt
durch den Rechner (Technische
Universitäten Berlin und München;
Springer-Verlag).
www.springer.de
DAS GRAZER UNTERNEHMEN ...
... KOMMe®Z hat ein Renderingverfahren vorgestellt, durch das
einfache Formen beispielsweise
in Bauwerke umgerechnet werden
können, in denen und um die herum man sich virtuell bewegen und
sie aus verschiedenen Blickwinkeln
betrachten kann. Im gezeigten Fall
war ein einfaches Lego-Haus in ein
Bauwerk umgerechnet worden; das
frei bewegliche Entlein hat den Betrachter dargestellt. Am Bildschirm
konnten die verschiedenen Perspektiven mitverfolgt werden
WASSERKÜHLUNG ...
... für Prozessoren im PC-Bereich
bietet Alphacool an. Dadurch entfällt das Lüftergeräusch und es
kann die Prozessorleistung gesteigert werden.
Dr. Kurt Hickisch
LINKS
IBM ... www.zurich.ibm.com/st/storage/millipede.html
TU-BRAUNSCHWEIG ... www.tu-braunschweig.de
PHILLIPS-UNIVERSITÄT ... www.chemie.uni-marburg.de/hampp
KIDDE-DEUGRA ... www.kidde-deugra.de
CINDERELLA ... www.springer.de
KOMMe®Z ... www.kommerz.at
ALPHACOOL ... www.alphacool.de
HK - Magazin
8
DNS - Aufbau&Schwachstellen
Domain Name System
Aufbau & Schwachstellen
Das Domain Name System (DNS) ist eine verteilte Datenbank, die den Namensraum im Internet verwaltet und Domainnamen in IP-Adressen umwandelt und umgekehrt. Das DNS bietet
eine Vereinfachung, weil Menschen sich Namen weitaus besser merken können als Zahlenkolonnen.
WIE
FUNKTIONIERT
DNS?
Das Domain Name System ist ein
hierarchisches System zur Auflösung von Computernamen in IPAdressen. Die weltweit verteilten
13 Root Server stellen die oberste
Schicht dar und verfügen über die
Informationen der Top Level Domains. Dabei unterscheidet man
zwischen gTLD (generic Top Level
Domains) wie zB .com, .org, .gov
und .net und den länderspezifischen ccTLD (country coded Top
Level Domains) aus zwei- bis dreistelligen Ländercodes. Für jede TLD
ist ein eigener Nameserver zuständig, der dann seinerseits wieder
die Informationen enthält, welcher
Nameserver für die Domains zuständig ist.
diesem erhält der Client schließlich
die IP-Adresse von www.hagenbergerkreis.at.
Eine Zone stellt einen Teil des Domain-Baums dar, für den ein Nameserver autoritative Informationen
besitzt. Dabei können Subdomains
in eigenständige Zonen unterteilt
und an andere Nameserver delegiert werden. Eine Zone wird von
einem Primary Nameserver verwaltet, der diese Zonen auf einen oder
mehrere Secondary Nameserver
spiegeln kann.
Die Daten einer Zone werden in so
genannten Zonendateien gespeichert. Die Originaldatei befindet
sich am Primary Server, der sie bei
Änderungen per Zonentransfer an
die Secondary Server überträgt.
ERLAUBTE ZEICHEN
Ursprünglich waren nur die Buchstaben a bis z, die Ziffern 0 bis 9
und der Bindestrich in Domains erlaubt. Der Punkt ist für die Trennung der einzelnen Levels reserviert und darf in Domainnamen
nicht verwendet werden. Ein Domänenname darf inklusive aller
Punkte maximal 255 Zeichen lang
sein. Im RFC3490 wurde der Internationalized Domain Name (IDN)
vorgestellt, der es möglich macht
auch Sonderzeichen (zB Umlaute) in Domainnamen zu verwenden. Dabei sorgt der im RFC3492
definierten Punycode dafür, dass
die Unicode-Zeichen der Umlautdomain in ASCII-Zeichen mit dem
HIERARCHISCHE GLIEDERUNG
Die Domain www.hagenbergerkreis.at kann in drei Teile gegliedert werden.
• Top Level Domain: at
• 2nd Level Domain: hagenberger
kreis
• 3rd Level Domain: www
Die Auflösung der Domain www.
hagenbergerkreis.at
erfolgt
in
mehreren Schritten (siehe Abbildung 1). Als erstes wird der Root
Server befragt, welcher Server für
Informationen über .at-Domains
zuständig ist. Dieser Server wiederum verweist auf den Server, der
Informationen über die Domain
hagenbergerkreis.at besitzt. Von
Abbildung 1 - Auflösung einer Domain
HK - Magazin
9
DNS - Aufbau&Schwachstellen
Skripts auf allen Slaves auf den
neuesten Stand gebracht.
Zur Absicherung befindet sich der
Primary-Server hinter einer Hardware-Firewall während die Secondary-Server jeweils mit iptables (Software-Firewall) abgesichert
werden. Zusätzlich ist es wichtig,
nach der Installation ein SystemHardening durchzuführen und auf
eine sichere Bind-Version zu wählen.
Abbildung 2 - Hierarchische Gliederung
Präfix xn-- umgewandelt werden.
Die Umwandlung erfolgt beim Client (Webbrowser, Mail-Programm).
IDN-fähig sind folgende Browser:
• Mozilla ab Version 1.4
• Firefox ab Version 0.8
• Konqueror ab KDE 3.2 mit GNU
IDN Library
• Microsoft Internet Explorer ab
Version 5.0 durch Installation des
Plugins i-nav von VeriSign (bedingt) IDN-fähig. Mit IE 6 treten
jedoch trotz Plugin fehlerhafte
Abläufe auf. Ab der im Sommer
2005 erscheinenden Version 7
wird es voraussichtlich eine weitgehende
IDNA-Unterstützung
geben.
WIE
EINES
SIEHT EINE MÄGLICHE
DNSS
AUS?
fügung. Er kann als interner DNSServer dienen oder nur zur Verteilung der Domain-Informationen an
die beiden Slaves verwendet werden. Am LDAP-Server werden über
eine eigens erstellte Web-Oberfläche neue Zonen erstellt bzw. bestehende administriert. In einem
vorgegebenen zeitlichen Intervall wird mittels ldap2dns (http://
ldap2dns.tiscover.com/) auf aktualisierte bzw. neue Konfigurations- und Zonenfiles überprüft. Im
Falle einer Aktualisierung wird ein
Zonentransfer veranlasst und somit die Dateien zuerst automatisch
am Master und anschließend über
Um zu verhindern, dass die Secondary-DNS-Server von unautorisierten Servern Zonenfiles erhalten
reicht die Identifikation von autorisierten Servern über IP-Adressen
nicht aus, da diese leicht gefälscht
werden können. Durch Transaction
Signatures (TSIG) kann die Datenintegrität der Transaktion und die
Authentizität der beteiligten Server
sichergestellt werden. Der Master
und die Slaves verfügen über einen gemeinsamen Key, der über
dnskeygen erstellt wird. Dieser Key
wird für einen HMAC-MD5 über
die transferierten Daten verwendet. Somit kann ein Angreifer die
Daten während des Transfers nicht
abfangen und verändern und auch
keine eigenen Zonendaten an einen
der Slaves senden ohne den Key zu
kennen.
IMPLEMENTIERUNG
In einem Projekt im Rahmen des 3.
Semesters haben wir ein DNS-Server-System mit Anbindung an einen LDAP-Server aufgebaut.
Das System besteht aus zwei Secondary-DNS-Servern (Slaves) und
einem Primary-DNS-Server (Master), der sich hinter einer Firewall
befindet. Um Redundanzen und
eine bessere Lastverteilung zu
schaffen können noch weitere Secondary-DNS-Server zum System
hinzugefügt werden.
Der Primary-DNS-Server erhält seine Informationen von einem LDAPVerzeichnis und steht nicht für
DNS-Abfragen von außen zur Ver-
Abbildung 3 - Aufbau
HK - Magazin
10
DNS - Aufbau&Schwachstellen
Abbildung 4 - DNS Cache Poisoning
ATTACKEN
AUF
DNS
BUFFER OVERFLOW ATTACKS
Um Buffer Overflow Attacken
durchführen zu können, muss man
zuvor den DNS-Server, den man
attackieren möchte, genau analysieren und wenn möglich herausfinden, welche Software installiert
und aktiv ist. Findet man zu einem
aktiven Programm einen Exploit,
verschafft man sich durch diesen
Zugang auf die Kommandozeile
des Servers und kann somit in den
Zonenfiles und anderen Konfigurationsdateien nach Belieben Änderungen vornehmen.
MAN
IN THE
MIDDLE
Das DNS-System ist dadurch besonders leicht verwundbar, da als
einziges Validierungsmerkmal eine
16 Bit große ID, die sogenannte Transaktions-ID zur Verfügung
steht, anhand dessen ein anfragender Nameserver die Antworten
zuordnen kann. Ein simpler Man in
the Middle Angriff könnte erfolgen,
indem der Angreifer den angefragten Nameserver daran hindert zu
antworten (zB mittels SYN-Flooding). Die sodann folgende Attacke besteht aus 65536 Paketen (es
muss auch noch der Query-Port
stimmen, daher könnten noch mehr
Pakete von Nöten sein), welche als
Absender den eigentlichen Nameserver haben, sämtliche Query-IDs
abdecken und natürlich falsche
Informationen enthalten. Weiters
kann man die in Frage kommenden
IDs durch eigene Anfragen an den
Server zuvor einschränken.
DNS-CACHE-POISONING
HK - Magazin
Das Cache-Poisoning bedient sich
des Umstandes, dass DNS-Server die Informationen, die sie von
anderen DNS-Servern bekommen,
annehmen, ohne dass sie diese auf
Richtigkeit oder Sinnhaftigkeit prüfen. Das heißt, dass Nameserver,
die auf eine Anfrage eines anderen
antworten, zusätzliche Informationen mit ihrer Antwort mitsenden
können, die gar nicht angefordert
wurden.
Um Cache-Poisoning durchführen
zu können, benötigt man eine eigene Domain und einen dazugehörigen Nameserver. Nun sendet man
eine Anfrage zu dem Server, den
man „vergiften“ will, in der man die
Adresse einer Domain beantragt,
die unter der Verwaltung des eigenen Nameservers liegt. Dieser
beantwortet die Anfrage und sendet in den ungenutzten Felder der
Antwort zusätzliche Informationen,
wie zum Beispiel eine gefälschte
11
DNS - Aufbau&Schwachstellen
Adresse zu „www.opfer.at“.
Wenn nun ein anderer Client den
„vergifteten“ Nameserver nach der
Adresse von „www.opfer.at“ fragt,
bekommt er als Antwort die gefälschte und der Angriff ist geglückt.
Dieser Angriff ist nur bei CachingDNS-Servern möglich. Bei Nameserver, die mit einer aktuellen Version von BIND ausgestattet sind,
ist dieser Angriff mittlerweile nicht
mehr möglich.
DNS-CACHE-POISONING VARIANTE 2
In Abbildung 1 ist eine normale
DNS-Abfrage dargestellt. Bei der
Verbindung zwischen Client und
Nameserver und zwischen den beiden Nameservern sind die Transaktions IDs verschieden. In dieser
Variante des Cache-Poisoning wird
der Angreifer die ID der Kommunikation zwischen den beiden Nameservern erraten. Bei diesem Angriff
ist weiters noch wichtig, dass BIND
DNS-Server für Anfragen an einen
anderen Server mit großer Wahrscheinlichkeit den gleichen Sourceport für die Anfragen verwendet.
Der Angreifer sendet immens viele
Anfragen, die jene Domain betreffen, die der Angreifer spoofen will,
an den Opfer DNS Server, der die
Anfragen an den zuständigen DNS
Server weiterleitet. Nun erwartet
der Opfer Server eine Flutwelle an
Antworten, jede mit einer einzigartigen Transaktions ID, von dem anderen DNS Server. Nun kommt der
Angreifer wieder ins Spiel. Dieser
sendet nun Antwort-Pakete, versehen mit der Source IP des für die
Domain zuständigen DNS Servers
und mit dem Source Port, der zuvor schon bestimmt wurde, an den
Opfer DNS Server und hofft, dass er
eine Transaktions ID errät. Dadurch
kann der Angreifer verfälschte Informationen im Cache des Opfer
Servers platzieren und der Angriff
ist geglückt.
DNS FLOODING
Darunter versteht man einen Angriff, der darin besteht, permanent
von gefälschten, zufällig generierten IP-Adressen Anfragen nach
Domains, die ebenfalls zufällig generiert werden, an einen Nameserver zu senden, sodass dieser außer
der Beantwortung dieser Anfragen
keine anderen mehr beantwortet.
Das DNS Flooding stellt einen sehr
effizienten Denial-Of-Service Angriff auf Nameserver dar.
Diesem Angriff kann man leider
nur wenig entgegenstellen. Eine
Möglichkeit besteht darin, wie es
zB bei ISPs Gang und Gebe ist,
mehrere DNS-Server aufzustellen,
um somit den Kunden nach Ausfall
eines DNS-Servers weiterhin das
Nameservice zur Verfügung stellen
zu können.
INFORMATION LEAKS
Wenn ein DNS-System aus mehreren
Servern besteht, ist es wahrscheinlich, dass zwischen diesen (hauptsächlich zwischen dem Primary und
den Secondaries) Zonentransfers
stattfinden. Da die Authentisierung
bei der Übertragung hauptsächlich
auf IP-Adressen basiert, können
Angreifer ohne größeren Aufwand
einen Secondary-Server imitieren
und somit die Informationen, die in
den Zonenfiles stehen, für weitere
Angriffe verwenden.
WIE
KANN MAN ES ABSICHERN?
Das Domain Name System ist unentbehrlich für jeden Internetbenutzer. Gerade deshalb sollte beim
Aufbau und Betrieb eines eigenen
DNS-Servers auf die Sicherheit des
Servers und die Integrität der Daten geachtet werden.
Einer der wichtigsten Schritte zur
Absicherung von DNS Software und
generell von jeder Software, ist der
Betrieb einer aktuellen Version. Auf
den Webseiten der Softwarehersteller (Bind: http://www.isc.org/
index.pl?/sw/bind/) werden meistens die neusten Releases und auch
aufgetretene Sicherheitslücken be-
HK - Magazin
kannt gegeben. Es ist außerdem
ratsam, die Version des verwendeten DNS-Servers zu verstecken, um
einen Angreifer keinen Hinweis auf
die Version und somit auf bereits
bekannte Exploits zu geben. Bei
Bind lässt sich in der Datei named.
conf unter options versions „…“
ein beliebiger Text einstellen, der
dann anstatt der Softwareversion
angezeigt wird.
Weiters sollte ein DNS-Server für
keine weiteren anderen Dienste
sondern rein als dedicated DNSServer verwendet werden. Zum
Härten gehört auch, die laufenden
Betriebssystemservices auf das absolute Minimum zu reduzieren und
nur benötigte TCP und UDP Ports
zu öffnen. Sollte ein Angreifer dennoch Zugriff auf das System erhalten, ist es ratsam, den Zugriff auf
das Filesystem zu beschränken, indem man den DNS-Server in einem
so genannten Chroot-Gefängnis
ausführt.
Durch
Zonentransfers
werden
normalerweise die gespeicherten
Domains zwischen dem Primary
und dem Secondary Server ausgetauscht. Die Informationen über
die Domains können für einen Angreifer sehr nützlich sein, da er
dadurch zB einen Überblick über
die Topologie von Netzwerken, die
sich hinter einer Firewall befinden,
erhalten kann und diese für weitere Angriffe verwenden kann. Daher
sollten Zonentransfers nur vom
Primary and den Secondary Server
gestattet werden.
Um eine Hochverfügbarkeit des
DNS-Services zu gewährleisten sind
redundante Server erforderlich.
Wenn möglich sollten diese sogar
in getrennten Netzwerken stehen.
Es ist auch empfehlenswert den
externen und internen Namespace
getrennten Servern zuzuteilen und
den Master DNS-Server vor Zugriffen von Außen zu verstecken.
Martina Lindorfer
Dirk Wallerstorfer
12
Der digitale Reisepass
Der Ausdruck Forensik stammt aus dem Lateinischen und bedeutet „gerichtlich“ oder „kriminaltechnisch“. Die Computer Forensik oder auch Digitale Forensik wird vor allem bei Ermittlung von Systemeinbrüchen im Bereich der Computerkriminalität eingesetzt.
Durch Computer Forensik ist es
möglich strafbare Handlungen zum
Beispiel durch die Analyse von digitalen Spuren zu erkennen und
aufzuklären. Bevor eine Forensische Untersuchung durchgeführt
werden kann, müssen Vorbereitungen am System getroffen werden.
Es muss das normale Verhalten des
Systems dokumentiert werden um
einen späteren Einbruch zu erkennen und zu analysieren. Die Untersuchungen werden also nach
einem Angriff durchgeführt, um
herauszufinden, wie erfolgreich
der Angreifer war und welche Systemlücken ausgenutzt wurden.
VORBEREITUNG
Zur Vorbereitung der forensischen
Analyse ist es wichtig Ist-Stände des Systems zu verschiedenen
Zeiten zu sichern. Dies beinhaltet
das Speichern von Logfiles, sowie
das Erfassen der laufenden Prozesse und Dienste um Veränderungen
am System im Ernstfall erkennen zu
können. Idealerweise werden auch
die freigegebenen Ordner und die
angelegten User und Administratoren dokumentiert. Um zu verhindern, dass die gesicherten Daten
nicht während eines Angriffs verändert werden, sollten sie auf einem externen Medium gespeichert
HK - Magazin
werden. Außerdem ist es wichtig,
die für die Analyse eingesetzten
Programme von CD zu starten,
da die Ergebnisse bei am System
installierten Programmen durch
Scripts verändert werden können.
Um nach dem Erkennen eines Einbruchs keine Spuren zu verwischen
sollten nachträglich auch keinerlei
andere Programme installiert werden.
Somit sollte vor einem Ernstfall
ein Soll-Stand als Vergleichsmöglichkeit existieren, welcher alle
relevanten
Systeminformationen
enthält. Diese Daten können bei
einer späteren Analyse als nicht
verdächtig herausgefiltert werden
13
Computer Forensik
um zu verhindern, dass Hinweise
auf mögliche Täter bei einer Analyse in der Fülle an Informationen
untergehen.
IST-STAND
Wurde nun das System kompromittiert, muss man entscheiden ob
das System sofort vom Netz genommen wird oder nicht. Will man
die Aktionen eines aktiven Angreifers analysieren so wird es nachteilig sein, das System vom Internet zu trennen. Doch so kann man
sichergehen, dass nicht noch mehr
Schaden angerichtet wird. Um mit
der tatsächlichen Analyse beginnen zu können, müssen erneut alle
Systemdaten des Rechners erfasst
werden. Wichtig hierbei ist, dass
das System nicht sofort vom Strom
getrennt wird, sondern davor flüchtige Daten wie Netzwerkverbindungen und speziell der RAM gesichert
werden. Hierfür verwendbare Tools
sind zum Beispiel WinHex oder Helix zum Sichern des Speichers und
die Sysinternal Tools TCPView und
TDIMon zum Erfassen der Verbindungen. Auch sollten wiederum
Systemdaten für die Analyse gesichert werden.
Um ein Image des gesamten Systems zu erhalten, kann wiederum
die Forensik-CD Helix verwendet
werden, aber es kann auch mit dem
kostenpflichtigen Programm Encase gearbeitet werden. Hierfür wird
die Festplatte aus dem System entfernt und mit einem Analysesystem verbunden. Wichtig ist davor
die System-Festplatte mit einem
Schreibschutz zu belegen. Dies ist
zum Beispiel mit dem FastBlock
möglich, welcher es ermöglicht,
eine Harddisk über USB oder Firewire an ein anderes System anzuschließen und gleichzeitig jegliche
Veränderung verhindert.
Die erhaltenen Informationen können nun dem zuvor erfassten SollStand gegenübergestellt und durch
Angreifer verursachte Veränderungen erkannt werden. Falls Veränderungen festgestellt werden, sollten diese näher untersucht werden
um die Funktion zum Beispiel von
neuen Programmen zu ermitteln.
So ist es möglich den Angriff nachzuvollziehen und die Schwachstelle
des Systems ausfindig zu machen.
PROGRAMME
Will man nicht warten, bis ein Rechner nicht mehr funktionstüchtig ist
oder durch Fehlverhalten auffällt,
können schon während dem laufenden Betrieb Anzeichen auf einen
Angriff erkannt werden. Folgende
Programme können dafür verwendet werden:
Um die Netzwerkauslastung am
System zu erkennen, kann das
kostenpflichtige Programm Traffic
Analyzer PRTG installiert werden.
Dies erfasst grafisch und tabellarisch die Auslastung und leitet diese Informationen täglich per Mail
an den Verantwortlichen weiter.
Auf diese Weise können beispielsweise illegitime Downloads erkannt
werden.
Es ist auch möglich alle Netzwerkverbindungen genauer zu untersuchen. Diese Funktionalität bietet das Sysinternal Tool TCPView,
welcher alle bestehenden Verbindungen auflistet und dazu jeweils
die Quell- und Remoteadressen in
Form einer IP-Adresse oder URL
angibt. Besteht eine Verbindung zu
einer verdächtigen Adresse, deutet
dies auf einen Angriff hin.
Auf www.ripe.net/whois findet man
eine dafür programmierte Suchmaschine, welche die Adresse bis
zu Internetanbietern oder größeren
Organisationen zurückverfolgt. Jedoch nur die Polizei hat das Recht
Daten des Enduser beim Provider
oder der Organisation einzufordern.
Ein weiteres interessantes Sysinternal Tool ist Streams, durch welches
man erkennen kann, ob Daten oder
Programme von Angreifern in ADS
(Alternate Data Streams) versteckt
wurden. Solche Daten werden an
bestehende Daten angehängt, verändern jedoch nicht deren Größe
und scheinen im Explorer nicht
auf.
Die Sysinternal Tools und ähnliche
Programme befinden sich auf der
Forensik CD Helix. Durch eine von
CD gestartete Shell, welche WinHK - Magazin
dows- und Linuxbefehle erkennt,
können diese Tools von CD gestartet werden und es ist sichergestellt,
dass die Befehle und Tools nicht
von Angreifern manipuliert wurden
und somit ein richtiges Ergebnis
liefern.
Weitere Tools, welche von dieser
CD gestartet werden können, sind
zum Beispiel:
MAC_Grab erfasst die MAC-Zeiten
der Daten, das heißt die Zeitpunkte
zu welchen Dateien verändert (Modified), aufgerufen (Access) oder
verändert (Change) wurden.
Pasco sowie Galleta dienen zur
Analyse des Internet Explorers.
Es werden die History sowie die
Cookies der aufgerufenen Seiten
ausgewertet.
Md5deep und sha1deep berechnen
und vergleichen Checksummen
mittels md5- und sha-Hashwerte
von wichtigen Dateien.
Bmap kann im Slackspace abgelegte Daten finden und wiederherstellen. Dieser Speicherbereich
wird nur vom System erkannt und
scheint in Verwaltungsprogrammen wie Explorer nicht auf.
Chkrootkit und rkhunter durchsuchen das System nach Rootkits,
welche Systemeigenschaften verändern.
Regviewer bietet eine Schnittstelle
um in die Windows Registry Einsicht zu nehmen.
Zusätzlich bietet die CD einige Features. Zum Beispiel kann ein Security Report erzeugt werden, welcher Systemdaten wie IP-Adressen
und Mac-Adressen auflistet sowie
die Security Policy anführt. Außerdem werden die installierten Programme, Driver, Services und Bibliotheken sowie die offenen Ports in
diese XML-Datei gesichert. Zusätzlich wird noch angegeben, ob die
Services aktiv oder gestoppt sind.
Ein weiteres Feature ist die Sicherung des RAM und des physikalisches oder logischen Festplattenspeichers als Image mittels dem
Linux-Befehl dd.
Wird das Programm beendet, können die durch Helix durchgeführten Aktionen des Ermittlers protokolliert werden.
Birgit Haas
Ulrike Mayrhofer
14
Data Hiding
um eine Datei zu klassifizieren. Die
Tests werden in dieser Reihenfolge
durchgeführt und terminieren sobald einer davon erfolgreich ist.
• Unlinking Open Files
Diese Strategie wird oft dazu benutzt, um Log-Informationen wie
zum Beispiel Passwörter zu bekommen und gleichzeitig die Chance
entdeckt zu werden, möglichst gering zu halten. Um das gewünschte
Ergebnis zu erzielen, wird der „Link“
auf eine geöffnete Datei gelöscht.
Somit wird nicht mehr auf die Datei verwiesen, obwohl sie sich noch
auf dem Speichermedium befindet
und vor eventuellem Überschreiben geschützt ist, da das System,
die von der Datei benötigten Ressourcen erst weitergibt, wenn der
Prozess beendet wird. Die Person,
die diesen Prozess gestartet hat,
kann also später wiederkommen,
um sich die Log-Informationen abzuholen.
Data Hiding Techniken beschäftigen sich mit dem Einbetten von
Informationen in ein Trägermedium (z.B.: eine Festplatte). Ziel dabei ist es, diese Daten so zu verstecken, dass sie für jeden, außer
für den Eigentümer, unsichtbar sind.
Es gibt mehrere Möglichkeiten dies
zu realisieren (getestet auf Linux
ext2-Filesystemen). Jedoch seien alle, die bereits vergnügt Pläne
schmieden wollen, gleich am Anfang gewarnt. Keine einzige dieser
Möglichkeiten garantiert Unauffindbarkeit, wenn mit professionellen Tools (wie EnCase oder ILook)
nach den Daten gesucht wird.
VERSTECKEN
DER
DATEN
AUF DER
FESTPLATTE
• Camouflaged files
camouflage = die Tarnung
Eine sehr einfache und unter Windows durchaus erfolgreiche Methode Daten zu verstecken ist, die
Dateinamenerweiterung zu verändern (z.B.: von .jpg auf .doc).
Somit kann der Betrachter ohne
Hilfsmittel nicht feststellen, was
die Datei wirklich enthält. Während
unter Windows auch das Betriebssystem Probleme mit dem falschen
Dateiformat hat, und in den meisten Fällen den Inhalt nicht anzeigen kann, gelingt dies unter Linux
ohne Schwierigkeiten. Dort werden Dateien nämlich nicht anhand
der Namenserweiterung sondern
durch so genannte „Magic Numbers“ identifiziert. Deshalb ist es
hier auch einfach die ursprünglichen Erweiterungen festzustellen.Dies geschieht durch die „file“
Anweisung. Die man page erklärt
dieses Kommando als eine „combination of file system tests, magic
number tests, and language tests“
HK - Magazin
• Hiding Data in Slack Space
Slack Space = “The space on a hard disk
between the end of a file and the end of
the cluster that the file occupies.“
Mit dem Programm bmap ist es
möglich den normalerweise unzugänglichen Speicherbereich zwischen dem Ende einer Datei und
dem Ende des von dieser Datei für
Speicherzwecke reservierten Blocks
zu nutzen. Es können Wörter, Dateien oder Programme in den Slackspace geschrieben und auch wieder
ausgelesen werden. Eine besonders angenehme „Nebenwirkung“
dabei ist, dass sich der Speicherbedarf der Datei beim Beschreiben
des Slackspace nicht erhöht, da die
Datei sowieso den ganzen Block für
sich reserviert, auch wenn nur ein
Teil davon belegt wird.
• Hiding Data in Bad Blocks
Um diese Methode erfolgreich zu
nutzen, muss man in der Entwick-
15
Data Hiding
lungsgeschichte der Speichermedien einige Jahre zurückgehen. Jede
Festplatte hat defekte Blöcke. Manche existieren bereits bei der Auslieferung (Fehler bei der Herstellung), andere entstehen erst durch
oftmaligen Gebrauch. Während die
Kennzeichnung dieser defekten
Blöcke bei neuen HDs bereits automatisch geschieht, mussten früher alle Bad Blocks, die nach der
Herstellung schon defekt waren
manuell vom Benutzer eingetragen
werden, damit die Festplatte ohne
Probleme laufen konnte. Diese manuelle Kennzeichnung kann man
sich zunutze machen, um auch
heute noch (voll funktionsfähige)
Blöcke als „bad“ zu markieren, damit sie vom Betriebssystem ignoriert werden.
Um bestimmte Daten verstecken
zu können, muss man zuerst deren
„Aufenthaltsort“, also jenen Block
auf dem die Daten liegen, kennen.
Hierbei hilft das Tool “debugfs”,
welches genauere Informationen
über Dateien und ihren Speicherplatz auf der Festplatte liefert.
Um den ausgewählten Block anschließend als „bad“ zu markieren, wird ein weiteres Programm
„e2fsck“ (speziell für ext2-Filesysteme) benötigt.
Als erstes überprüft man die Festplatte auf bereits vorhandene Bad
Blocks. Hierbei darf die externe
Festplatte nicht gemountet sein!
Danach ist es notwendig eine Datei
zu erstellen, die den Block/die Blöcke, die als “bad” markiert werden
sollen beinhaltet. Dabei muss beachtet werden, dass in jeder Zeile
nur ein Block steht. Nun wird die
zur Erstellung der Datei gmountete Festplatte wieder abgehängt, um
das Programm “e2fsck” ausführen
zu können. Bei einer Suche nach
der versteckten Datei dürfte es nun
keine Ergebnisse mehr geben.
Um die Daten verändern bzw. auslesen zu können muss das Programm e2fsck den zu Unrecht als
“bad” markierten Block wiederherstellen.
FINDEN
DER VERSTECKTEN
DATEN
• EnCase/ILook
Wie bereits zuvor angekündigt ist
es mit den beiden Programmen EnCase und ILook möglich die, durch
verschiedene Methoden versteckten Daten, wieder zu finden.
Es gibt jedoch einen kleinen Haken. Um die gefundenen Daten als
Beweismittel vor Gericht verwenden zu können muss die Unveränderbarkeit der Daten während der
Analyse sichergestellt werden. Die
Überprüfung der Integrität erfolgt
durch zwei Hashwerte. Der erste
wird automatisch beim Einlesen
der Daten über die einzulesen-
de Festplatte generiert. Der zweite (Verifying Hash) kann nach dem
Erstellen der Sicherung berechnet werden. Stimmen beide Werte
überein, so wurden die Daten der
Festplatte nicht verändert. Um dies
zu gewährleisten, muss ein so genannter Fastblock verwendet werden, der einen Schreibzugriff auf
das Trägermedium verhindert.
Obwohl keine der getesteten Möglichkeiten die versteckten Daten
vollkommen unauffindbar machen
kann, ist die Thematik des Data Hiding ungeheuer spannend. Man bekommt ungeahnte Einblicke in die
oftmals kuriose Welt der Speicherbelegung und Speicherfreigabe,
der Blockeinteilung von Festplatten
und anderer interessanter Datenlagerungsplätze.
Wer nun Lust bekommen hat, selber auch einmal etwas zu Verstecken, dem seien folgende Internetseiten empfohlen:
http://www.giac.org/practical/
GSEC/Gary_Robertson_GSEC.pdf
http://www.blackhat.com/presentations/bh-europe-04/bh-eu-04grugq.pdf
[root@localhost slack]# echo „cybercriminal“ | bmap --putslack file.txt
stuffing block 17678350
file size was: 34
slack size: 4062
block size: 4096
[root@localhost slack]# bmap --slack file.txt
getting from block 17678350
file size was: 34
slack size: 4062
block size: 4096
cybercriminal
Abbildung 1 - Hiding Data in Slack Space
HK - Magazin
Sandra Wöckinger
16
OpenLDAP meets Freeradius
Gemeinsame Benutzerverwaltung für Squid, Postfix,
PPTP und L2TP/IPSEC mit OpenLDAP und Freeradius
In Abbildung 1 ist ein typisches
Szenario für einen Benutzer mit
mehreren Diensten dargestellt,
wobei im schlimmsten Fall für
jeden Dienst unterschiedliche
Benutzernamen und Passwörter
zur Authentifizierung notwendig sind.
ALLGEMEINES
Standardmäßig besitzt jeder Dienst
sein eigenes Authentifizierungsverfahren mit eigenen Benutzerdaten,
meist in einer eigenen Datenbank
oder Datei. Je mehr Passwörter sich
ein User merken muss, desto mehr
wird er auch wieder vergessen, unsichere Passwörter verwenden oder
einfach Post-Its auf den Monitor
kleben. In solchen Fällen ist ein
erster Schritt zu einem geschickten Identity Management eine gemeinsame Authentifizierung für
mehrere Dienste mit einem einzigen Benutzername-Passwort-Paar.
Natürlich wäre es möglich für einen
User für jeden Dienst dieselben
Daten zu verwenden, allerdings
wäre der Aufwand zum Ändern
der Daten, wie z.B. dem Passwort,
wesentlich größer. Die Lösung ist
die Benutzung von OpenLDAP und
Freeradius und somit pro User nur
Abbildung 1 - Szenario
ein Passwort, das an einer einzigen
Stelle gespeichert und von allen
Diensten verwendet werden kann,
zu verwenden. Der folgende Artikel
beschreibt dabei die Verwendung
von OpenLDAP in Version 2.2.23
und Freeradius 1.0.1 auf Debian
Linux. Es wird angenommen, dass
die Dienste Squid, Postfix, PPTP
sowie L2TP/IPSEC bereits in einer
funktionierenden
Konfiguration
vorhanden und mit den jeweils eigenen Authentifizierungsverfahren
funktionsfähig sind.
NOTWENDIGE DIENSTE
• OpenLDAP
LDAP (Lightweight Directory Access
Protocol) ist ein TCP/IP basierender,
standardisierter Verzeichnisdienst
(ähnlich DNS). Konkrete Implementierungen sind z.B. OpenLDAP
unter Linux/BSD/Unix, Microsoft
Active Directory unter Windows
2000 bzw. Windows 2003 oder das
eDirectory von Novell.
Unter einem Verzeichnis versteht
man eine Auflistung von Informati-
Abbildung 2 - Gemeinsame Benutzerauthentisierung über LDAP und Radius
HK - Magazin
17
OpenLDAP meets Freeradius
onen über Objekte in einer gewissen Ordnung, wobei sich zu jedem
Objekt Detailinformationen abfragen lassen.
In einem Telefonbuch als Beispiel
sind die Objekte die Personen, die
Ordnung ist alphabetisch und die
Detailinformationen sind Adresse
und Telefonnummer.
Im Gegensatz zu relationalen Datenbanken sind Verzeichnisse auf
das Suchen und Lesen von Informationen spezialisiert.
Die Konfiguration von OpenLDAP
inklusive zugehöriger Access Control Lists kann auf Grund des Umfanges an dieser Stelle nicht erklärt
werden. Entsprechende Informationen können im Adminguide auf
www.openldap.org oder in der
ausführlicheren
Dokumentation
auf der Hagenbergerkreis-Homepage
(www.hagenbergerkreis.at)
nachgelesen werden.
Zu Testzwecken wurde die in Abbildung 3 gezeigte LDAP Struktur
erzeugt.
• Freeradius
RADIUS (Remote Authentication
Dial-In User Service) ist ein ClientServer-Protokoll zur Authentifizierung von Benutzern bei Dial-In
Zugängen wie z.B. für PPP-Verbindungen. Die Clients werden dabei
gegen verschiedenste Datenbanken (auch LDAP), die die Benutzernamen und Passwörter gespeichert
haben, authentifiziert.
Durch das AAA-Konzept (Authentication, Authorization, Accounting)
lassen sich auch genaue Auswertungen über die einzelnen Loginzeiten usw. erstellen.
Freeradius wird als Zwischenschicht
für diejenigen Dienste verwendet,
die nicht direkt auf LDAP zugreifen
können, wie PPTP und L2TP/IPSEC.
Auch hier kann eine genaue Konfiguration nicht erklärt werden. Es
wird eine funktionierende Freeradius Konfiguration vorausgesetzt,
mit OpenLDAP als Backend.
KONKRETE ANPASSUNG
DER
DIENSTE
Abbildung 3 - LDAP Beispielstruktur
HTTP, HTTPS und FTP. In den aktuellen Versionen (derzeit Squid
2.5Stable9) ist ein Modul zur LDAP
Authentifizierung bereits fix integriert, befindet sich meist (distributionsabhängig) in /usr/lib/squid/,
und muss in der Konfigurationsdatei squid.conf nur entsprechend
hinzugefügt werden. (siehe Listing
1)
Bei der Wahl dieses Moduls wird
für die Authentifizierung das obige
Programm ausgeführt:
Es wird gegen den LDAP Server auf
localhost eine Authentifizierung als
Benutzer uid=manager, ou=admin,
dc=cms, dc=local mit dem Passwort managerpasswort
durchgeführt. Anschließend wird
in der ou=users, dc=cms, dc=local
nach einem Benutzer gesucht, der
folgende Anforderungen erfüllt:
• Objektklasse cmsUser
• uid = %s (der vom Squid übergebene Benutzername, dessen Passwort überprüft werden soll)
Anschließend wird von diesem Benutzer das Passwort aus dem LDAP
Verzeichnis mit dem Eingegebenen
verglichen. Im Erfolgsfall wird OK,
im Fehlerfall ERR zurückgegeben.
Dieser Befehl lässt sich auch sehr
leicht über die Shell testen. (siehe
Listing 2)
Bei der Eingabe von falschen Benutzerdaten (testuser1 und falschespasswort) wird ERR, bei den
richtigen Daten (testuser1 geheim)
OK zurückgegeben.
Verwendet wurde die Squid Version
2.5Stable8.
/usr/lib/squid/ldap_auth -v 3 -h localhost -D
„cn=manager,ou=admin,dc=cms,dc=local“ -w managerpasswort
-b „ou=users,dc=cms,dc=local“
-f „(&(objectclass=cmsUser)(uid=%s))“
• Squid
Squid ist ein mächtiger, freier,
Open-Source Web Proxy u.a. für
Listing 1 - squid.conf
HK - Magazin
18
OpenLDAP meets Freeradius
gibraltar:~# /usr/lib/squid/ldap_auth -v 3 -h localhost -D „uid=manager,ou=admin,dc=
cms,dc=local“ -w 123456 -b „ou=users,dc=cms,dc=lo
cal“ -f „(&(objectclass=cmsUser)(uid=%s))“
testuser1 falschespasswort
ERR
testuser1 geheim
OK
Listing 2 - Test
• Postfix
Postfix ist eine sichere Alternative
zum weit verbreiteten Unix MTA
Server Sendmail. Er ist schnell, einfach zu administrieren und sicher.
Aus Kompatibilitätsgründen wirkt
er nach außen hin wie Sendmail, ist
allerdings intern komplett unterschiedlich aufgebaut. Durch seinen
modularen Programmaufbau ist es
möglich, jederzeit neue Funktionen, wie z. B. eine LDAP Authentifizierung, hinzuzufügen. Zusätzlich können noch Komponenten für
SPAM- und Virenfilterung (wie Spamassassin und ClamAV/Kaspersky
Antivirus) integriert werden.
Für Postfix gibt es 2 verschiedene
Ansätze zur LDAP Authentifizierung. Eine Möglichkeit mit saslauthd (wird in diesem Artikel beschrieben) und die Andere über
ldapdb
(nähere
Informationen
hierzu können im Linux Magazin
[1] nachgelesen werden).
Eine bereits funktionierende Authentifizierungskonfiguration mit
saslauthd und einer lokalen SASLDatenbank muss nur geringfügig
verändert werden. In der Datei /
etc/postfix/sasl/smtpd.conf werden folgende Zeilen eingetragen.
Zusätzlich muss noch die Datei
/etc/saslauthd.conf erstellt werden.
Abschließend muss für eine erfolgreiche SMTP-Authentifizierung
saslauthd mit den Argumenten
saslauthd -a ldap -O /etc/
saslauthd.conf
gestartet werden und die Authentifizierung erfolgt dadurch über den
lokal laufenden LDAP Server. Dafür
wird mit dem unter ldap bind dn
angegebenen Benutzer eine Authentifizierung durchgeführt, Benutzer in der Organisationseinheit
ou=users gesucht und die Daten
mit den angegebenem Benutzernamen und Passwort verglichen.
Zusätzlich sollte das Initskript von
saslauthd um die entsprechenden
Optionen ergänzt werden.
Base64-Codierung
perl -e „use MIME::Base64; print encode_
base64(„testuser1\0testuser1\0geheim“)“
dGVzdHVzZXIxMHRlc3R1c2VyMTBnZWhlaW0=
gibraltar:~# telnet localhost 25
Trying 127.0.0.1...
Connected to gibraltar.example.net (127.0.0.1).
Escape character is ‚^]‘.
220 gibraltar.domain.tld ESMTP Postfix
EHLO hostname
250-gibraltar.domain.tld
250-PIPELINING
250-SIZE 10000000
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250 8BITMIME
AUTH PLAIN dGVzdHVzZXIxMHRlc3R1c2VyMTBnZWhlaW0=
235 Authentication successful
Listing 3 - Codierung, Authentifizierung
/etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
/etc/saslauthd.conf
ldap_servers: ldap://localhost
ldap_bind_dn: uid=manager,ou=admin,dc=cms,dc=local
ldap_bind_pw: managerpasswort
ldap_search_base: ou=users,dc=cms,dc=local
HK - Magazin
19
OpenLDAP meets Freeradius
Zum Testen der Authentifizierung
müssen der Benutzername und das
Passwort Base64-codiert vorliegen.
Bei einer erfolgreichen Authentifizierung erhält man von Postfix
ein ”Authentication successful“,
andernfalls ein ”Authentication
failed“. (siehe Listing 3)
• PPTP
Das
Point-to-Point-TunnelingProtocol dient zum Aufbau eines
VPNs zum Austausch von privaten
Daten über eine öffentliche Leitung.
Es ist ein von einem Herstellerkonsortium (Ascend Communications,
Microsoft Corporation, 3Com u. a.)
entwickeltes Protokoll und definiert
im RFC2637.
Die Grundlage bildet PPP, durch
den ein Tunnel zwischen 2 IP
Adressen erstellt und der Verkehr
darüber geroutet wird. Die Authentifizierung erfolgt dabei entweder über PAP oder CHAP. Microsoft verwendet mit MSCHAP eine
eigene Implementierung der CHAP
Authentifizierung. Als Verschlüsselung dient MPPE, beschrieben in
RFC 3078. Eine direkte Authentifizierung über LDAP ist mittels PPTP
bzw. L2TP nicht möglich. Hier wird
als Zwischenschicht entweder ein
Radiusserver (z.B. Freeradius) oder
eine Active Directory bzw. Samba
Domäne benötigt.
Ab Version 2.4.3 ist bei einer PPPInstallation (zumindest unter Debian) das Radiusplugin im Verzeichnis /usr/lib/pppd/2.4.3/ bereits
fix integriert. Zusätzlich wird noch
der Radiusclient benötigt, der zur
Konfiguration dient. Hierfür muss
lediglich das im Radiusserver definierte „shared secret“ in die Datei
/etc/radiusclient/servers hinzugefügt werden.
Durch das Hinzufügen von ”plugin radius.so“ in die pptp-options-Datei wird automatisch eine
CHAP-Authentifizierung über Radius durchgeführt und die chapsecrets-Datei ignoriert.
Beim Verbindungsaufbau wird anschließend von PPP ein Access Request Paket an den Radiusserver
geschickt. (Listing 4)
Access-Request packet from host 127.0.0.1:1060, id=177,
length=150
Service-Type = Framed-User
Framed-Protocol = PPP
User-Name = „testuser1“
MS-CHAP-Challenge = 0x2676b821dd815aef9af625f961a813d7
MS-CHAP2-Response = 0xd00015d91ca600f13ff55ddda81585db
2739000000000000000009b3a6b59e06e6307acdbfca934a62b6aa
3800327709b76d
Calling-Station-Id = „xxx.xxx.xxx.xxx“
NAS-Identifier = „vpn“
NAS-Port = 0
Listing 4 - Access Request Packet
Access-Accept of id 177 to 127.0.0.1:1060
Framed-IP-Address = 255.255.255.254
Framed-MTU = 576
Service-Type = Framed-User
Framed-Protocol = PPP
Framed-Compression = Van-Jacobson-TCP-IP
MS-CHAP2-Success = 0xd0533d41344344363143323330393246
304339394637443531364530333344453739343037343137464543
MS-MPPE-Recv-Key = 0xc272633e7894c1a5a091fa06a0f54cea
MS-MPPE-Send-Key = 0x27bed20d09b810bcdbf83947c7e2515a
MS-MPPE-Encryption-Policy = 0x00000001
MS-MPPE-Encryption-Types = 0x00000006
Listing 5 - Access Accept Packet
Bei Übereinstimmung von Benutzername und Passwort wird ein Access Accept Paket vom Radiusserver geschickt und die Verbindung
aufgebaut. (Listing 5)
Andernfall wird ein Access Reject
Paket vom Radiusserver geschickt
und die Verbindung kann nicht
aufgebaut werden.
• L2TP / IPSEC
Das Layer-2-Tunneling-Protocol
ist im RFC2661 definiert und bietet
einen ähnlichen Funktionsumfang
wie das Point-to-Point-TunnelingProtokoll (PPTP). Auf der Basis der
Spezifikationen für das Cisco Layer2-Forwarding-Protokoll (L2F) und
des Microsoft Point-to-Point-Tunneling-Protokolls (PPTP) können
mit L2TP Tunnel über dazwischenliegende Netzwerke eingerichtet
werden. Ebenso wie PPTP integriert
L2TP Datenblöcke aus dem Pointto-Point-Protokoll (PPP), in die
wiederum IP-, IPX- oder NetBEUIHK - Magazin
Protokolle integriert sind.
L2TP über einen IPSEC-Tunnel gilt
als sicherste VPN Variante, da für
IPSEC keinerlei Angriffe bekannt
sind. Das Einrichten auf der Clientseite erfolgt unter Windows XP
analog zu PPTP, es wird keine zusätzliche Software benötigt. Für
IPSEC wird allerdings entweder
ein gemeinsames Geheimnis (pre
shared keys) oder eine PKI benötigt, dadurch wird es um einiges
komplexer und aufwendiger. Die
Verwendung von L2TP innerhalb
eines IPSEC-Tunnels ist eigentlich nicht notwendig. IPSEC alleine
würde als VPN-Lösung vollkommen genügen, allerdings verlangt
die Verwendung von Windows XP
als Client eine L2TP/IPSEC Verbindung.
Analog zu PPTP braucht nur ”plugin
radius.so“ in die l2tp-options-Datei
hinzugefügt werden. Vor der Authentifizierung über Radius muss
zuvor ein IPSEC Tunnel aufgebaut
werden. Die Host-Authentifizierung kann dabei über Zertifikate
20
OpenLDAP meets Freeradius
oder so genannte ”pre-sharedkeys“ erfolgen.
EXKURS: SICHERHEIT
VPN-LÖSUNGEN
VON
OPENSOURCE
Für das Erstellen einer VPN Verbindung (Roadwarrior Konfiguration)
gibt es 3 gängige Verfahren:
1. PPTP
PPTP gilt als unsicherste Variante
der 3 gängigen Verfahren. Es ist
auf Grund seiner einfachen Konfiguration dennoch weit verbreitet.
Seit Windows NT bzw. Windows
9x ist bereits ein PPTP Client fix in
Windows integriert.
2. L2TP über IPSEC
Für die problemlose Verwendung
von L2TP über IPSEC ist seit Windows XP ebenfalls ein Client fix integriert. Die Konfiguration des VPN
Servers ist allerdings wesentlich
komplexer, so wird z.B. für eine
vernünftige IPSEC Lösung eine PKI
benötigt.
3. OpenVPN
OpenVPN hat den Vorteil, dass es
sehr einfach zu konfigurieren und
sehr sicher ist, die Verbindung wird
durch SSL verschlüsselt. Es wird, im
Gegensatz zu den beiden anderen
Verfahren, ein eigener VPN Client
benötigt, der allerdings sehr leicht
zu bedienen ist. OpenVPN ist für
viele unterschiedliche Plattformen
verfügbar. Die Authentifizierung
erfolgt entweder über Zertifikate
oder Shared Secrets. Nähere Informationen können unter [2] nachgelesen werden.
Die VPN Variante über PPTP sollte,
wenn möglich, vermieden werden.
Im Idealfall sollte L2TP/IPSEC verwendet werden, da es ohne eigenen Client auf Windows XP Rechnern verwendet werden kann, und
dank IPSEC sehr sicher ist.
Wem die Konfiguration zu komplex
ist, der ist mit OpenVPN gut beraten.
ZUSÄTZLICHE MÖGLICHKEITEN
Durch geringfügige Veränderungen
in den Konfigurationsdateien ist es
auch möglich, für einen bestimmten User jeden Dienst einzeln freizuschalten. Das wird größtenteils
durch eigene Attribute im LDAP
erzielt, die einen bestimmten Wert
besitzen müssen, damit sich der
User authentifizieren kann.
Für das Anlegen, Bearbeiten und
Löschen von Benutzern mit entsprechenden Attributen gibt es
Skripte in Perl oder auch geeignete
Java Klassen.
Auch eine Authentifizierung gegen
das Microsoft Active Directory ist
zumindest für Squid und PPTP sowie L2TP/IPSEC durch die Verwendung von winbind möglich.
FAZIT
Die Realisierung einer gemeinsamen Benutzerauthentifizierung
für die Dienste Squid, Postfix,
PPTP und L2TP/IPSEC ist durch die
Dienste OpenLDAP und Freeradius
mit wenig Aufwand zu realisieren,
vor allem wenn die Dienste bereits
in einer funktionierenden Konfiguration vorliegen und lediglich die
Authentifizierungsmethode geän-
security forum 2006
www.securityforum.at
HK - Magazin
dert werden muss. Das Hinzufügen neuer Dienste, wie z.B. Apache
und Tomcat [3] oder Pure-FTPd, ist
ebenfalls problemlos möglich.
Eine LDAP Authentifizierung ist eine
vernünftige Alternative um Ordnung in die Vielfalt von verschiedenen Authentifizierungsdateien der
einzelnen Dienste zu bringen und
ein zentralisiertes Management von
Benutzerdaten zu ermöglichen. Es
ist der erste Schritt zu einem vernünftigem Identity Management,
so kann durch Speicherung zusätzlicher Anwenderdaten LDAP
Verzeichnis auch gleichzeitig als
Adressbuch verwendet werden.
Ausführliche
Konfigurationsanleitungen sowie der Möglichkeit
Benutzer nur für einzelne Dienste
freizuschalten und die dazugehörigen Skripte zum Bearbeiten können
auf der Homepage vom Hagenbergerkreis (www.hagenbergerkreis.
at) herunter geladen werden.
Peter Gastinger
LITERATUR
1. Klünter, Dieter: Workshop:
Benutzerauthentifizierung für
Postfix mit LDAP und SASL.
Linux Magazin, 01/05:71–73,
2005.
2. VPN für Linux und Windows, c’t Magazin, 09/06,
194-202
3. Web-Zentrale, Linux Magazin, 05/05: 44-47
21
Kernel Security
Kernel Security
Bei der Diskussion um das Beste und sicherste Betriebssystem wird meist Linux als erste Wahl genannt. Doch warum ist das so? Man könnte meinen, dass ein fertig zusammengestelltes und unveränderliches Windows System weitaus sicherer ist. Schließlich verwenden so viele andere Benutzer ein
identisches System und im Hintergrund steht ein Internationaler Industriekonzern der Service und
Support anbietet. Doch ein standardisiertes Massenprodukt kann nie die spezifischen Anforderungen
jedes Einzelnen erfüllen, und genau hier liegen die Vorteile des modularen Aufbaus von Linux Systemen.
SECURITY
BY DEFAULT?
Der erste und einfachste Schritt die
Sicherheit eines Systems zu erhöhen, besteht in der Verminderung
der Angriffsfläche. Wozu die Sicherheitsprobleme der grafischen
Benutzeroberfläche riskieren, wenn
der Server ohne Monitor im Keller
steht? Diese Modularität zieht sich
natürlich bis zum Zentrum des Systems, dem Kernel, durch. In einem
richtig konfigurierten Linux Kernel
befindet sich keine Unterstützung
für nicht benötigte Features oder
Hardware, und somit keine Zeile Sourcecode, der zu Problemen
führen könnte, zuviel. Um diese Art
der Sicherheit umsetzen zu kön-
nen, muss der Administrator seine Systeme natürlich bis ins Detail
kennen, um die richtigen Entscheidungen zu treffen. Installiert man
also ein neues Linux System bei
dem nur die wirklich benötigten
Packete und Driver installiert werden, hat man von Beginn an eine
gute Basis und ein gewisses Level
an Systemsicherheit.
STRUKTUR
DES
LINUX-KERNELS
Der Kernel stellt die Schnittstelle
zwischen der Hardware- und der
Benutzerebene dar. Um dies zu erreichen sind klar definierte Schnittstellen vorhanden, über die ein BeHK - Magazin
nutzer Services vom Betriebssystem
anfordern kann und über die der
Kern mit dem Benutzer kommuniziert. Die Realisierung der Schnittstellen sieht wie folgt aus:
• Benutzer ⇨ Kernel
o Systemaufrufe (Bei einem Systemaufruf (engl. system call)
handelt es sich um einen Funktionsaufruf in einem Betriebssystem, der einen Sprung in einen
privilegierteren Teil des Systems
- i.d.R. in den Kernel auslöst.)
o Speichern in einer Datei im
/proc Verzeichnis
o Signale an Prozesse
o Speichern im Arbeitsspeicher
(/dev/mem, /dev/kmem)
22
• Kernel ⇨ Benutzer
o Speichern in einer Datei im
/proc Verzeichnis
o printk ⇨ Nachricht des Kernels
auf den Terminal(tty) und in den
Protokolldateien
Durch dieses Konzept kommt es zu
einer Trennung zwischen Code der
in der Benutzerebene(userspace)
ausgeführt wird und Code der
in der Kernelebene(kernelspace)
läuft. Für Code der in der Kernelebene läuft, gelten gewisse Regeln
und Einschränkungen. Es wird zum
Beispiel die Kernel-API anstatt der
Standard C Bibliotheken verwendet. Weiters muss sehr genau darauf geachtet werden, dass keine
Race Conditions auftreten, und die
Synchronisation der Kernel-Datenstrukturen erhalten bleibt.
KERNEL MODULE / LKM-ROOTKITS
Loadable Kernel Modules (LKM) bieten die Möglichkeit den Linux Kernel zu erweitern und anzupassen,
ohne den Kernel neu zu kompilieren. Mit LKM können u.a. Gerätetreiber zur Laufzeit zum Kernel geladen werden und somit kann auch
bösartiger Code nachgeladen und
ausgeführt werden. Schafft es ein
Angreifer, dass ein vermeintlicher
Driver in den Kernel geladen wird,
hat er über den so eingeschleusten
Kernelcode Zugriff und Kontrolle über das gesamte System. Dies
ist natürlich weitaus schlimmer, als
ein Angreifer mit Administratorrechten. Denn es steht außer Frage, dass ein Programmierer der den
Kernelcode verändern kann, weitaus mehr Möglichkeiten im System
hat, als der Administrator selbst.
Natürlich muss der Angreifer zumindest über Administratorrechte
verfügen, um Kernel Module nachzuladen. Oder er den Administrator
dazu bringt, das Modul zu laden. Ist
das Modul einmal im Kernel besteht
die Möglichkeit, dass Systemaufrufe verändert werden und somit
alle vom Angreifer hinterlassenen
Spuren (laufende Prozesse, Dateien, Systemlast,...) vor dem Administrator verborgen bleiben. Diese
Tatsache macht es natürlich sehr
Kernel Security
schwer derartige Übernahmen des
Systems zu entdecken. Gegen diese Art von Angriffen wurde im Kernel 2.6, zumindest für nicht Open
Source Module, einige Hindernisse gelegt. Denn seit Version 2.6.x
können Module die nicht unter der
GPL stehen die Systemaufruftabelle (sys_call_table) nicht mehr
auslesen und verändern. Dadurch
können Module deren Sourcecode
nicht offen ist Systemaufrufe nicht
mehr überschreiben. Bedenkt man
jedoch, dass noch sehr viele Prokuktivsysteme auf Basis des 2.4.x
Kernels arbeiten, stellen Kernel
Module auch weiterhin ein wesentliches Sicherheitsrisiko dar. Um
diesen Gefahren entgegen zu wirken, sollte das Nachladen von Modulen im Kernel deaktiviert werden.
Dies macht derartige Angriffe zwar
nicht unmöglich, aber zumindest
wird die Hürde, die der Angreifer
zu überwinden hat, etwas größer.
Es können Systeminformationen
ausgelesen, sowie Kernelparameter verändert werden(sysctl).
Für einen Angreifer ist natürlich das
Verändern gewisser Kernelparameter besonders interessant um wiederum die Anwesenheit im System
zu verschleiern und so den Administrator zu täuschen. Auch hier hat
der Administrator die Möglichkeit,
das nachträgliche Verändern der
Kernelparameter zu verhindern. Ab
Kernelversion 2.4 ist es allerdings
standardmäßig erlaubt, diese zu
verändern. (CONFIG_SYSCTL=y)
Die Einstellung kann ganz einfach
überprüft werden (Listing 1).
Das /proc Filesystem kann jedoch
vom Administrator dazu verwendet werden, um den die Systemsicherheit zu erhöhen. (drop ping
packets, disable source routed packets,...). Eine Detaillierte Auflistung der Parameter ist in der Kernel Dokumentation verfügbar.
KERNELSCHNITTSTELLE
LINUX SECURITY PROJEKTE
MEM UND KMEM
Auch wenn die LKM-Unterstützung
deaktiviert ist, werden weiterhin
Geräte wie /dev/mem und /dev/
kmem bereitgestellt. Diese speziellen „character devices“ erlauben
Zugriff auf pseudo device driver,
die das Lesen und Schreiben in den
System I/O Adressbereich ermöglichen. Diese Schnittstelle wird zum
Beispiel von iostat oder vmstat verwendet, und stellt statistische Informationen über das System zur
Verfügung. Dadurch wird es möglich, auch ohne Nachladen von Kernel Modulen, die Informationen auf
die sich ein Administrator verlässt,
zu verändern.
Es gibt bereits einige sehr viel versprechender Ansätze, die sich mit
Sicherheitsrelevanten Kernelerweiterungen und Verbesserungen beschäftigen.
• SELinux
http://www.nsa.gov/selinux/index.
cfm
• grsecurity
http://grsecurity.net/
• Rule Set Based Access Control
http://www.gentoo.org/proj/en/
hardened/rsbac/index.xml
• Bastille Linux
http://www.bastille-linux.org/
DAS /PROC FILESYSTEM
Das /proc (process information
pseudo filesystem) Filesystem dient
als Schnittstelle zur internen Datenstruktur des laufenden Kernels.
Daniel Priewasser
tux# cat /usr/src/linux/.config | grep SYSCTL
CONFIG_SYSCTL=y
Listing 1 - Einstellung überprüfen
HK - Magazin
23
IPv6
IPv6
Das IP Protokoll der Zukunft?
Das Internet Protocol Version 6 ist der designierte Nachfolger
der sehr populären Version 4. IPv6 weist in manchen Teilen noch
Ähnlichkeiten zum Vorgänger auf, legt jedoch neben zahlreichen
Verbesserungen und Erweiterungen einige neue, sehr interessante
Konzepte zu Tage. Dieser Artikel handelt einerseits von den IPv6
Basics und stellt andererseits einige neue interessante Konzepten
dieses Protokollsatzes vor.
BASICS
Oftmals werden die Vorteile von
IPv6 nur auf den vergrößerten
Adressraum reduziert. Natürlich
unterscheiden sich die 128-Bit IPv6
Adressen erheblich von den 32Bit IPv4 Vorgängern, nicht zuletzt
durch die Darstellung der Adressen
im Hex-Format. IPv6 hat allerdings
noch viel mehr zu bieten. Zukünftig
wird einem Interface in einem IPv6
Netz nicht mehr nur eine IP Adresse zugewiesen werden, sondern
möglicherweise mehrere Unicast
und Multicast Adressen gleichzeitig. Bei den Unicast Adressen unterscheidet man zwischen Link-Local, Site-Local, und Global Unicast
Adressen. Eine Link-Local Adresse
dient ausschließlich zur Kommunikation im eigenen Subnetz. Pakete mit diesem Adresstyp werden
nie über das eigene Subnetz hinaus geroutet. Site-Local Adressen
werden nur innerhalb einer Orga-
nisation (Site) und somit auch über
Subnetze hinaus geroutet. Die Site
kann sich dabei über einen bzw.
mehrere topologische Standorte
erstrecken. Global Unicast Adressen sind weltweit einzigartig und
dienen zur Kommunikation über
die Grenzen des eigenen LANs bzw.
Firmennetzwerks hinaus.
Der Multicasttechnik kommt unter
IPv6 eine besondere Bedeutung zu.
Multicast bedeutet, dass ein Sender
seine Datenpakete an eine gewisse
Anzahl von Empfängern – der Multicastgruppe – schickt. Unter IPv6
gibt es keine Broadcast Nachrichten mehr. Dafür definiert IPv6 einige Standardmulticast Adressen, wie
beispielsweise die All-Nodes oder
die All-Routers Multicast Adressen, die wie die Namen schließen
lassen, alle Nodes oder alle Router
eines Netzes ansprechen. Neu sind
unter IPv6 Anycast Adressen. Diese
funktionieren ähnlich wie Multicast
Adressen, der Unterschied besteht
jedoch darin, dass Pakete, die an
eine Anycastgruppe adressiert sind,
an genau ein Mitglied dieser Gruppe geliefert werden. Normalerweise ist dies immer das am besten
oder am schnellsten erreichbare
Mitglied der Anycastgruppe. Abbildung 1 zeigt den Unterschied zwischen beiden Konzepten.
Der Einsatzbereich von Anycast
ist sehr vielfältig, ob im Backbone
Routing oder als Load Balancer. Besonders würde sich beispielsweise
DNS für den Einsatz von Anycast
anbieten. Dabei würde eine Anycast Adresse das DNS Service als
solches repräsentieren und die manuelle Konfiguration von DNS Servern könnte entfallen. Leider sind
die Spezifikationen für Anycast jedoch noch nicht vollständig ausgereift und der Einsatz der Adressen
ist bisher nur auf Subnetze beschränkt. Die Liste von Veränderungen und Erneuerungen bei den
Grundlagen des neuen IP Protokolls
ließe sich sehr lange fortführen,
allerdings gibt es zahlreiche neue
Funktionen, die ebenfalls erwähnt
werden sollten.
Abbildung 1 - Anycast vs. Multicast
HK - Magazin
24
NEIGHBOR DISCOVERY PROTOCOL
Schon jetzt dürfte klar sein, dass
IPv6 einige tiefgreifende Veränderungen mit sich bringt. So auch im
Bereich von Protokollen, die gewisse Basisarbeiten im Netzwerk verrichten. Das wichtigste unter IPv6
ist das Neighbor Discovery Protocol (NDP). Dieses ersetzt und verbessert die IPv4 Protokolle ARP,
ICMP Router Discovery und ICMP
Redirect und stellt zusätzlich neue,
innovative Funktionen zur Verfügung. NDP benötigt / verwendet
dabei lediglich fünf ICMPv6 Nachrichten, um mit unter folgende
Aufgaben zu erfüllen:
• Identifizierung von benachbarten
Hosts (Neighbor Discovery)
• Identifizierung von benachbarten
Routern (Router Discovery)
• Zuordnung einer MAC Adresse
zu einer IP Adresse (Address Resolution)
• Verfügbarkeitsüberprüfung
(Neighbor Unreachability Detection)
• Adressautokonfiguration
(Stateless Address Autoconfiguration)
• Detektion von doppelt vergebenen Adressen (Duplicate Addresse Detection)
NEIGHBOR/ROUTER DISCOVERY
IPv6 Hosts können mit Neighbor
Solicitation (NS) Nachrichten die
MAC Adresse von im selben Subnetz befindlichen Rechnern erfragen. Ein gefragter Host antwortet
mit einer Neighbor Advertisement
(NA) Nachricht. Durch diese beiden
ICMPv6 Nachrichten wird das ARP
Protokoll ersetzt. Allerdings werden die Nachrichten auch für andere Funktionen verwendet. Die Identifizierung von Routern im Subnetz
erfolgt analog. Entweder wartet ein
Host auf eine periodisch vom Router gesendete Router Advertisement (RA) Nachricht, oder er fragt
sie selbst per Router Solicitation
(RS) nach. Weiters können Router
mittels RA Nachrichten zusätzliche Informationen wie Hop Limits,
Subnetz Präfixe oder auch ihre ei-
IPv6
gene MAC Adresse bekannt geben.
Die bisher angeführten Funktionen
waren unter IPv4 auch schon vorhanden und wurden mit dem NDP
lediglich vereinheitlicht. Funktionen wie Neighbor Unreachability
Detection (NUD), Stateless Address
Autoconfiguration oder Duplicate Address Detection (DAD) waren
unter IPv4 nicht oder nur über Umwege möglich.
Neighbor Unreachability Detection
Jeder Host eines IPv6 Netzwerks
speichert Informationen über die
Verfügbarkeit seiner Nachbarn im
Netzwerk. Um diese Informationen aktuell zu halten, wird NUD
verwendet. Der Einsatz beschränkt
sich dabei nicht alleine auf die
Kommunikation zwischen Hosts
untereinander. Für den Austausch
von Verfügbarkeitsinformationen
zwischen Routern und Hosts bzw.
zwischen Hosts und Routern wird
ebenfalls NUD verwendet. NUD
wird aktiviert, wenn ein Host über
eine entsprechende Zeitdauer keine Verfügbarkeitsbestätigung des
Kommunikationspartners
erhält.
Dazu sendet der Host eine NS
Nachricht an die entsprechende
Adresse. Erhält der Host eine NA
Nachricht vom „gefragten“ Rechner ist alles klar. Ansonsten versucht der Host die Prozedur einige Male zu wiederholen und löscht
bei Misserfolg den entsprechenden
Cache Eintrag. Durch diese Informationen ist ein Host in der Lage,
seine Neighbor Caches immer aktuell zu halten
STATELESS ADDRESS AUTOCONFIGURATION
Stateless Address Autoconfiguration kommt im Gegensatz zur Stateful Variante komplett ohne einen
DHCP Server und dessen Daten
aus. Ein Host, der ein Netz betritt
und darin kommunizieren möchte,
geht dabei folgendermaßen vor: Bei
der Aktivierung des Interfaces wird
eine Link-Local Adresse generiert.
Dies geschieht über ein spezielles Link-Local Präfix und über die
MAC Adresse des Hosts. Bevor die
Adresse dem Interface zugewiesen wird, findet eine Überprüfung
HK - Magazin
auf Einzigartigkeit im Subnet statt
(DAD). Danach kann der Host im
Subnet kommunizieren. Per Router
Solicitation kann dieser den globalen Subnet Präfix erfragen und sich
im weiteren Verlauf eine Global
Unicast Adresse konfigurieren.
DUPLICATE ADDRESS DETECTION
DAD wird eingesetzt, um die Einzigartigkeit von Unicast Adressen
zu überprüfen. DAD muss immer
durchgeführt werden bevor einem
Host bzw. dessen Interface eine IP
Adresse zugewiesen wird. Eine IP
Adresse, die gerade mittels DAD
überprüft wird, gilt nicht als zugewiesen. Ein Host sendet dazu lediglich eine Neighbor Solicitation
Nachricht an eine gewisse Multicastgruppe. Wenn innerhalb eines
gewissen Timeouts keine Nachricht retour kommt, ist die Adresse
überprüft und einzigartig.
KONKLUSION
Auf Basis der hier erwähnten und
der zahlreichen weiteren Techniken
ermöglicht IPv6 viele weitere Funktionen. Ein Teil dieser Funktionen
wird in der Fortsetzung dieses Artikels in der nächsten Ausgabe des
HK-Magazins behandelt.
Michael Pascher
QUELLEN
Sicherheit bei IPv6 Neighbor
Discovery
Bakkalaureatsarbeit, 2005
Michael Pascher
Tutorial
IPv6 in der Praxis
iX Magazin 02/05
Benedikt Stockebrand
25
BS7799
Zertifizierte Informationssicherheit nach
BS 7799 bzw. ISO/IEC 17799
Dass Komponenten wie Firewalls und Anti-Viren Programme zu zentralen Bestandteilen eines Sicherheitskonzepts gehören, haben mittlerweile die meisten Unternehmen erkannt. Aber was nützt
die beste Firewall, wenn es die Mitarbeiter sind, die sensible Daten an die Öffentlichkeit tragen? Zum
Schutz der Informationen ist Informationssicherheits-Management gefragt!
INFORMATIONSSICHERHEIT
Neben den traditionellen Vermögenswerten, wie beispielsweise
dem Inventar oder der IT-Infrastruktur, werden auch die Informationen für die Unternehmen in der
heutigen Zeit immer wichtiger. Zur
Aufrechterhaltung der Geschäftsprozesse muss die Informationssicherheit gewährleistet werden.
Informationen sind in diesem Rahmen unabhängig von ihrer Form zu
sehen. Das heißt, dass sowohl gedruckte, elektronische, bildliche als
auch gesprochene Informationen
zu schützen sind. Im Besonderen
sollen folgende drei Werte gewahrt
werden:
• Vertraulichkeit
Informationen sollen nur autorisierten Personen zugänglich gemacht werden.
• Integrität
Die Richtigkeit und Vollständigkeit von Informationen und
Verarbeitungsmethoden soll gewährleistet werden.
• Verfügbarkeit
Autorisierte Benutzer sollen genau dann Zugang zu Informationen erhalten, wenn sie ihn benötigen.
VOM BRITISCHEN STANDARD
NORM
BIS ZUR
ISO-
Der Grundstein für die Entwicklung
des Standards BS 7799 wurde in
den frühen 1990er Jahren von der
britischen Regierung gelegt. Vor allem durch die Zunahme von Computernetzwerken und die steigende Nachfrage der Wirtschaft nach
elektronischer Datenverarbeitung
wurde Informationssicherheit ein
immer wichtigeres Anliegen vieler
Unternehmen. Gleichzeitig mit der
Entwicklung der Informationstechnologie stieg nämlich auch die Zahl
der Bedrohungen an.
Aus diesen Beweggründen heraus
stellte die britische Regierung eine
Anfrage an die British Standards Institution (BSI). Gemeinsam mit der
Vertretern der Wirtschaft und anderen davon betroffenen Organisationen sollte an der Entwicklung
eines Standards zur Hebung des
Sicherheitsbewusstseins gearbeitet werden. Dieser Standard sollte
außerdem Vorschläge für diverse
Sicherheitsziele und Maßnahmen
zum Schutz der Informationen bieten und auf alle verschiedenen Organisationsformen und Größen von
Unternehmen anwendbar sein.
Im Jahre 1995 wurde der Standard
BS 7799 erstmals veröffentlicht.
Dieser Leitfaden enthielt zahlreiche Best-Practice Ansätze zum
Management von Informationssicherheit. Kurz nach der Fertigstellung des ersten Teils wurde mit
der Entwicklung eines Prozesses
zur Erstellung eines Informationssicherheits-Managementsystems
begonnen. Dieser Prozess wird
im zweiten Teil des Standards (BS
7799-2) behandelt und beinhaltet
die Vorgaben zur Umsetzung der
Richtlinien aus Teil 1. Außerdem
wird dieses Dokument auch als Basis für eine formale Zertifizierung
verwendet.
Im Laufe der Zeit nahm die Verbreitung von BS 7799 auch außerhalb
von Großbritannien rapide zu. Es
wurde immer klarer, dass sich der
Standard zu einem gemeinsamen
Maßstab für Informationssicherheit entwickeln würde. Aus diesem
HK - Magazin
Grund initiierte Großbritannien
die Entwicklung eines ISO-Standards basierend auf BS 7799-1.
Der Standard ISO/IEC 17799 wurde
dabei als „Fast Track“ in ISO eingebracht. Darunter versteht man,
dass der Standard inhaltlich abgesehen von einigen unbedeutenden
editorischen Änderungen gleich
geblieben ist.
Innerhalb der ISO wird der Standard von der Working Group 1
(„Requirements, Security Services
und Guidelines“) des Informationssicherheitskommitees ISO/IEC
JTC1 SC27 betreut. In den letzten
Monaten wurde der Standard einer
umfassenden Überarbeitung unterzogen wobei die neue Version
der ISO Norm im Juni 2005 veröffentlicht wurde. Die Revision ist
allerdings bei weitem noch nicht
abgeschlossen da auch geplant ist,
den zweiten Teil von BS 7799 in
eine ISO Norm umzuwandeln. Ziel
ist es, die BS 7799 Normenfamilie, die übrigens voraussichtlich in
die ISO 27000 Serie umgewandelt
wird, auch noch beispielsweise um
Dokumente zur Risikoanalyse und
zum Risikomanagement zu erweitern.
Die große Bedeutung von BS 7799
spiegelt sich auch in den nationalen Adaptionen wider. Viele Länder
haben den Standard nämlich auch
als nationale Norm übernommen.
Dazu zählen Australien, Finnland,
Hongkong, Indien, Japan, Korea,
Norwegen, Österreich, Schweden
oder Taiwan. In Österreich handelt
es sich dabei um die ÖNORM ISO/
IEC 17799, die eine Übersetzung
von ISO/IEC 17799:2000 darstellt,
und um die ÖNORM A 7799, die
BS 7799-2 entspricht. Die beiden
Normen sind seit 1. März 2003 in
26
Kraft und dienen hauptsächlich als
deutschsprachige Hilfestellung bei
der Umsetzung des Standards.
BS 7799-1
Im ersten Teil der Norm, dem
„Code of Practice for Information Security Management“ befindet
sich eine Sammlung aus Sicherheitszielen (Objectives) und entsprechenden Maßnahmen (Controls), die bei richtiger Anwendung
die Gewährleistung eines gewissen
Sicherheitslevels innerhalb einer
Organisation gewährleisten. Die
Sicherheitsziele werden in zehn
Themengebiete eingeteilt:
• Sicherheitspolitik
• Organisation der Sicherheit
• Klassifizierung und Kontrolle der
Vermögenswerte
• Personelle Sicherheit
• Physische und umgebungsbezogene Sicherheit
• Management der Kommunikation und des Betriebs
• Zugriffskontrollen
• Systementwicklung und
–wartung
• Betriebliches Kontinuitätsmanagement
• Einhaltung der Verpflichtungen
Je nach Unternehmen können passende Sicherheitsziele und Maßnahmen ausgewählt werden. Es
kann dabei durchaus vorkommen,
dass der eine oder andere Punkt
auf das jeweilige Unternehmen
nicht anwendbar ist. Genauso ist
BS7799
es aber möglich, dass zusätzliche
Punkte erforderlich sind, die nicht
Teil des Standards sind. BS 7799
erweist sich hier als äußerst flexibles Rahmenwerk.
BS 7799-2
Im zweiten Teil des Standards
– „Information Security Management Systems – Specification with
Guidance for Use“ – wird ein Modell für die Einrichtung und das
Management eines Informationssicherheits-Managementsystems
(ISMS) mit dem Ziel der Gewährleistung von Informationssicherheit im
laufenden Betrieb vorgestellt. Unter
einem ISMS versteht man den Teil
des Managementsystems, der basierend auf einem Geschäftsrisikoansatz die Informationssicherheit
etabliert, implementiert, betreibt,
überprüft, wartet und verbessert.
Das Managementsystem umfasst
unter anderem die Organisationsstruktur, Politiken, Planungsaktivitäten, Verantwortlichkeiten, Prozeduren und Prozesse.
Dabei wird das Plan-Do-CheckAct (PDCA) Modell auf alle Prozesse
des ISMS angewandt. Abbildung 1
zeigt, wie die Anforderungen und
Erwartungen an die Informationssicherheit (Input) von einem ISMS in
verwaltete Informationssicherheit
(Output), die diese Anforderungen
und Erwartungen erfüllt, transformiert werden.
Im Rahmen der Einführung und
Verwaltung des ISMS werden in jeder einzelnen Phase, die das PDCA-
Abbildung 1 - Anwendung des PDCA-Modells auf ISMS Prozesse
HK - Magazin
Modell vorschreibt, bestimmte Tätigkeiten durchgeführt:
• Plan (Etablierung)
In der Planungsphase wird die
Sicherheitspolitik entwickelt und
die Ziele, die mit dem ISMS erreicht werden sollen, werden
spezifiziert. Weiters werden die
Prozesse und Prozeduren, die
für das Risikomanagement und
die Verbesserung der Informationssicherheit relevant sind, definiert.
• Do (Implementierung & Betrieb)
Im nächsten Schritt erfolgen die
Implementierung und der Betrieb
der Sicherheitspolitik, der Maßnahmen, Prozesse und Prozeduren.
• Check (Überwachung & Prüfung)
Nach der Umsetzung der Maßnahmen werden sie auf Wirksamkeit überprüft. Die Resultate werden in Form von Reports an das
Management übermittelt.
• Act (Wartung und Verbesserung)
Im laufenden Betrieb wird das
ISMS kontinuierlich durch korrektive und präventive Maßnahmen verbessert.
ETABLIERUNG
EINES DOKUMENTIERTEN
ISMS
Damit man eine Zertifizierung nach
BS 7799 bestehen kann, muss im
Unternehmen ein dokumentiertes
ISMS entwickelt, implementiert,
gewartet und kontinuierlich verbessert werden. Die zu tätigenden
Schritte basieren dabei auf dem
bereits behandelten PDCA-Modell. Die Phase von der Entwicklung bis zur Implementierung und
dem Betrieb wird in Abbildung 2
dargestellt. Darin werden die notwendigen Tätigkeiten in Kombination mit der zu erbringenden
Dokumentation sowie dem notwendigen Input analysiert. Die
angeführten Elemente der Dokumentation sind Voraussetzung für
eine Zertifizierung. Im Rahmen der
Implementierung und des Betriebs
ist es wichtig, dass alle Aufzeichnungen gemäß den Vorgaben der
Norm durchgeführt werden. Darunter versteht man beispielsweise
Besucherbücher, Autorisierungen
27
BS7799
Abbildung 2 - Implementierung von BS 7799 und der Dokumentation
von Zugängen, diverse Richtlinien
etc. Es wird ein eigener Managementprozess für die Kontrolle der
Aufzeichnungen definiert. Die Dokumentation der Prozeduren wird
deshalb benötigt, damit effektive
Planung, Betrieb und Kontrolle der
Informationssicherheitsprozesse
sichergestellt werden kann.
ZERTIFIZIERUNG
Die Popularität von BS 7799 lässt
sich sehr gut an der Anzahl der
vergebenen Zertifikate messen. Allein von Februar 2004 bis Oktober
2005 stieg die weltweite Anzahl an
Zertifikaten von 550 auf 1700 an.
Mit Stand vom 05. Oktober 2005
wurde insgesamt bereits in 57 verschiedenen Staaten nach BS-77992 bzw. ISO/IEC 17799 zertifiziert.
Dabei liegt Japan mit 1023 Zerti-
fizierungen eindeutig vor Großbritannien mit 215 und Indien mit 127
Zertifizierungen. Nach derzeitigem
Stand fallen dabei acht Zertifikate
auf österreichische Unternehmen.
Genaue Informationen zu den zertifizierten Unternehmen können
unter http://www.xisec.com nachgelesen werden.
Damit eine Organisation Unternehmen zertifizieren darf, muss sie offiziell dazu akkreditiert werden. In
Österreich wird das Verfahren der
Akkreditierung durch das Akkreditierungsgesetz geregelt. Das übliche Verfahren wird in Abbildung 3
illustriert.
Innerhalb von Österreich ist die
oberste Akkreditierungsstelle das
Bundesministerium für Wirtschaft
und Arbeit (BMWA). Das BMWA kann
nach ausreichender Überprüfung
Zertifizierungsstellen akkreditieren, die anschließend die Befugnis
Abbildung 3 - Akkreditierung in Österreich
HK - Magazin
haben, Auditoren zu zertifizieren
bzw. Zertifikate an von Auditoren
überprüfte Unternehmen auszustellen.
Derzeit gibt es laut BMWA in Österreich lediglich ein Unternehmen,
das Zertifizierungen für Informationssicherheits-Managementsysteme ausstellen darf. Dabei handelt
es sich um die Certification Information Security Services GmbH
(CIS). Die CIS darf sowohl Zertifikate nach BS 7799-2 als auch nach
ISO/IEC 17799 ausstellen. Nähere
Informationen dazu sind auf der
Webseite der CIS unter http://www.
cis-cert.com zu finden.
UNTERSTÜTZENDE TOOLS
Der Aufwand bei der Vorbereitung
auf eine Zertifizierung nach BS 7799
ist zweifelsohne sehr groß und keinesfalls zu unterschätzen. Deshalb
besteht die Möglichkeit, zu unterstützenden Tools zu greifen. Diese
Produkte sollen das Unternehmen
durch den Vorbereitungsprozess
leiten und so versichern, dass alle
Anforderungen der Norm erfüllt
werden und der anschließenden
Zertifizierung nichts mehr im Wege
steht.
Barbara Fichtinger
QUELLE
UND WEITERFÜHRENDE
LITERATUR
Bakkalaureatsarbeit „Analyse
unterstützender Tools bei der
Vorbereitung auf die Zertifizierung
nach BS 7799“ - Mai 2005 von
Barbara Fichtinger.
28
IT Service Management
IT Service Management
Ein Großteil der Geschäftsprozesse von Unternehmen setzt das
reibungslose Funktionieren aller
IT-Infrastrukturkomponenten (Daten- und Sprachnetzwerke, Serversysteme, Anwendungen, etc.)
voraus. Diese IT-Infrastruktur wirtschaftlich und technisch am Leben
zu halten, ist eine Gratwanderung
zwischen Investition und technischen Kompromissen, und wurde
in den letzten Jahren durch die rasante Weiterentwicklung der Netzwerktechnologien einerseits und
Systeme und Anwendungen andererseits wesentlich schwieriger.
Das heißt aber auch, dass frühere
Entscheidungskriterien für die Auswahl von IT-Komponenten gegenwärtig und insbesondere zukünftig
nicht mehr anwendbar sind; ein
neuer Ansatz von IT-Management
ist notwendig.
Aus diesem Grund spielt „Service
Level Management“ im Bereich des
Businessmanagement eine immer
wichtigere Rolle, da es nicht nur
den Grad einer erbrachten bzw. zu
erbringenden Leistung dokumentiert, sondern infolgedessen auch
die wirtschaftliche Implikation dieses Dienstes auf die eigentlichen
Geschäftsprozesse beschreibt.
WAS
BEDEUTET
SERVICE LEVEL MANAGEMENT?
Mit Service Level Management
wurde zum ersten Mal ein IT-Management-Ansatz entwickelt, der
nicht die einzelnen IT-Komponenten (also Netzwerk, Server, Anwendungssoftware), sondern die
Geschäftsprozesse als maßgebliche Kenngröße zum Mittelpunkt
macht. Waren früher sehr oft technische Eigenschaften bzw. Funktionalitäten ausschlaggebend für
die Anschaffung einzelner Komponenten, so wird in Zukunft immer
mehr das Zusammenwirken aller Systeme zu einer IT-Plattform,
welche die jeweiligen Geschäftsprozesse optimal unterstützt, im
Mittelpunkt stehen. Service Level
Management ist der Ansatz dafür,
diese Plattform in Abhängigkeit der
Geschäftsprozesse zu überwachen
und weiterzuentwickeln.
Den Ausgangspunkt eines Service
Management Regelkreis ist das
Service Level Agreement SLA. Ein
SLA ist die Vereinbarung zwischen
Service-Nutzer und Service-Anbieter über den Umfang und die Qualität der vereinbarten IT-Dienste.
Wesentlich ist, dass es sich um ein
„Agreement“ handelt, das heißt,
dass beide Parteien dem SLA zustimmen: der Service-Nutzer kann
seine Geschäftsprozesse mit den
zur Verfügung gestellten IT-Ressourcen ausführen, der ServiceAnbieter wiederum kann mit dem
vereinbarten Aufwand (und somit
Entgeld) die erforderlichen Dienste
erbringen.
Bei der Erarbeitung eines Service
Level Agreements muss besonders
auf die unternehmenskritischen Geschäftsprozesse geachtet werden.
Das bedeutet, dass die Informationstechnologie sich als Werkzeug
für das Unternehmen betrachten
und somit auch verstehen muss,
welche IT-gestützten Geschäftsprozesse kritisch für den Erfolg
des Unternehmen ist. Da das SLA
die Schnittstelle zwischen Benutzer und IT-Abteilung beschreibt,
kommt erschwerend hinzu, dass
die ohnehin bereits komplexe ITInfrastruktur und deren Eigenschaften als auch Abhängigkeiten
in einer Form beschrieben werden
müssen, die von den Service-Nutzern identifiziert und verstanden
werden können: z.B. kann der
Dienst e-Mail für einen Geschäftsprozess sehr kritisch sein ⇨ e-Mail
wird vom Benutzer als Dienst identifiziert und verstanden, technisch
allerdings setzt sich dieser Dienst
aus verschiedensten InfrastrukturKomponenten zusammen (Netzwerk, Mail-Server Hardware und
Software, Internetverbindung, etc.),
die üblicherweise für den Benutzer
nicht sichtbar und somit auch nicht
verständlich sind.
Die Herausforderung bei der Entwicklung von Service Level Agreements ist nun die Vereinbarung
sinnvoller Kennwerte, die für die
HK - Magazin
Service-Nutzer verständlich sind
und die erforderlichen Eigenschaften der IT-Dienste ausreichend
beschreiben. Der Service-Anbieter wiederum muss diese Business-Anforderungen in technische Eigenschaften umlegen und
als IT-Dienste (durch Einsatz von
IT-Technologien
und
Produkten) anbieten und betreiben. Erst
wenn zwischen Service-Nutzer
und Service-Anbieter Einverständnis in diesen Rahmenbedingungen
herrscht – ein Service Level Agreement vereinbart wurde –, kann der
SM-Regelkreis in Kraft treten.
Um IT-Management den BusinessAnforderungen entsprechend effizient umsetzen zu können, bedarf
es einer Reihe von gut definierten Management-Prozessen. Die
IT-Infrastructure Library hat sich
Anfang der 1990-iger Jahre infolge der Dezentralisierung von ITDiensten entwickelt und gilt heute
als wichtigstes Sammelwerk von
„Best-Practice“ Methoden bzgl. Management von IT-Infrastruktur. Die
wesentlichen Bücher dieser Library betreffen u.a. „Service-Delivery“
und „Service-Support“. Während
bereits die Entwicklung von Service
Level Agreements ein Teil des Prozess „Service-Level-Management“
innerhalb des „Service-Delivery“
ist, sind weitere „Service-steuernde“ Prozesse erforderlich, um die
erforderliche IT-Infrastruktur den
jeweiligen Anforderungen entsprechend zu dimensionieren: „Financial-Management“ kümmert sich
um die optimale Kostenstruktur
der Dienste; „Capacity-Management“ ist für die richtige technische
Dimensionierung der Infrastruktur zuständig; „IT-Service-Continuity-Management“ deckt die
IT-Mindestanforderungen der Geschäftsprozesse bei Notfällen ab
und
„Availability-Management“
legt generell die Anforderungen an
Verfügbarkeit der IT-Infrastruktur
fest. Alle diese Prozesse dienen im
wesentlichen dazu, die IT-Infrastruktur so effizient wie möglich zu
planen und weiterzuentwickeln.
„Service-Support“ wiederum de-
29
IT Service Management
Abbildung 1 - Service Management (SM) Regelkreis
finiert alle Prozesse (und Funktionen) die für den Betrieb der
IT-Infrastruktur erforderlich sind.
Hierzu zählt ein „Service-Desk“
(Funktion), der die Aufgabe hat,
die Schnittstelle zwischen Benutzer und IT-Abteilung zu bilden;
„Incident-Management“ definiert
den Umgang mit Ereignissen wie
Fehlermeldungen, Reklamationen,
Verbesserungsvorschläge,
usw.;
„Problem-Management“ definiert
die Vorgehensweisen zur Behebung von Problemen; „Configuration-Management“ führt Konfigurationen durch und verwaltet diese
in einer Konfigurationsdatenbank;
„Change-Management“ kümmert
sich um Veränderungen rund um
die IT-Infrastruktur und „ReleaseManagement“ verwaltet die eingesetzten Versionen von Betriebsmitteln bzw. Ressourcen. Erst durch
die Definition dieser Prozesse und
die Zuteilung der Verantwortlichkeiten wird ein effizientes IT-Management möglich, sodass die eingangs vereinbarten Service Level
Agreements eingehalten werden
können.
Dem Service-Monitoring kommt
innerhalb des IT-Service-Management eine besondere Bedeutung
zu: Monitoring ist die Instanz, die
zur Überprüfung der definierten
Prozesse als auch der Überwachung
der vereinbarten Service Levels
dient. Des weiteren liefert Monitoring wertvolle Informationen über
Verfügbarkeits- und Geschwindigkeitsdaten der IT-Infrastruktur.
Jedes Auto ist heutzutage mit einem Armaturenbrett ausgestattet,
das eine Vielzahl an Informationen
über den Betriebszustand liefert.
Ein Minimum an Informationen ist
in diesem Fall gar nicht wegzudenken, wie z.B. Tankinhalt, kmAnzeige, Tachometer, Temperatur
und vieles andere mehr. Im Ge-
genteil, vielfach werden noch mehr
Informationen gewünscht, um als
Fahrer das Fahrzeug besser „managen“ zu können.
Wenn man dieses Beispiel allerdings mit Zuständen in der IT-Welt
vergleicht, so muss man feststellen, dass viele Systembetreuer sehr
häufig ohne Armaturenbrett unterwegs sind – auch für die Informationstechnologie gilt: „You can‘t manage what you can‘t measure!“
Und so schließt sich der Kreis des
Service Management: bildet das
SLA den Ausgangspunkt für das
Management der IT-Infrastruktur,
so liefert Service Level Monitoring
die erforderlichen Informationen,
an welchen “IT-Schrauben” zu drehen ist, um die eingangs vereinbarten Service Levels mit den zur
Verfügung stehenden Ressourcen
einhalten zu können. Diese Informationen werden nicht nur im
Zuge einer Analyse dem SM-Regelkreis als IT-Management-Informationen zurückgeführt, sondern die
relevanten Reports dienen auch zur
Bestätigung der mit den ServiceNutzern vereinbarten SLAs. Hierbei ist besonders auf die richtige
Informationspyramide zu achten:
Benutzer bzw. Service-Manager
sollen nur auf die Reports Zugriff
haben, die sie auch verstehen und
dem jeweiligen Service Level Agreement zuordnen können.
Die wichtigste Erkenntnis der letzten „IT-Jahre“ ist, dass sich das
IT-Management bzw. die etablierten Management-Ansätze massiv
verändern müssen, um mit den
verfügbaren Ressourcen (Personal
und Budget) die Anforderungen der
Benutzer erfüllen zu können. Ein
möglicher Ansatz ist die bis dato
sehr technische Sichtweise auf eine
service-orientierte, für den ServiceNutzer verständliche Betrachtungsweise umzustellen. Diese Änderung der IT-Management-Strategie
erfordert ein generelles Umdenken
der IT-Abteilungen hin zu service-orientierten
Dienstleistern,
die ihre Service-Nutzer weniger als
„Benutzer“ sondern als „Kunden“
verstehen. Dass diese Umstellung
aller Voraussicht nicht leicht fallen
wird scheint vorprogrammiert zu
sein, aber um den Mehrwert einer
IT-Abteilung für ein Unternehmen
darstellen zu können, muss die IT
die Sprache der Geschäftsbereiche
sprechen lernen: „kommt der Berg
nicht zum Propheten – dann muss
der Prophet zum Berg kommen“.
Abbildung 2 - Informationspyramide Service Level Reporting
Ing. Norbert Neudhart ist seit Anfang der 1990iger Jahre als Network Consultant spezialisiert auf
Netzwerkinfrastruktur und Service Management, und
unterrichtet diese Fachbereiche auch an der Fachhochschule Hagenberg.
[email protected]
HK - Magazin
30
Server- Tagebuch Teil 2
Dieses HowTo erfordert grundlegende Kenntnisse über Linux und
die Architektur und Funktionsweise von Betriebssystemen. Wer über
keine diesbezügliche Grundkenntnisse verfügt, dem sei nahegelegt,
sich diese vor dem Lesen dieses
HowTos anzueignen.
Das vorliegende HowTo beschreibt
das Einrichten eines Servers mit
Debian „from scratch“ und behandelt folgende Themen:
TEIL 1 -
MUST HAVE
Basisinstallation
System Hardening
TEIL 2 -
SERVICES
FTP
Samba
DynDNS
TEIL 3 -
NICE TO HAVE
Software-Raid
Hardware-Raid
Logical Volume Management
von den Autoren empfohlene Begleitliteratur
http://www.openoffice.de/linux/buch/
Nach Abschluss des ersten Teils
dieses HowTo‘s liegt nun eine gehärtete Linuxinstallation vor, welcher in weiterer Folge Leben eingehaucht werden soll, sprich welche
auch für den Produktiveinsatz
tauglich sein soll. Dazu sollte sie
entsprechende Dienste bereitstellen. Dieser, mittlerweile der zweite,
Teil des Servertagebuchs befasst
sich mit der Installation und Konfiguration gängiger Dienste. Im
Speziellen wird im Rahmen dieses
HowTo‘s auf die Bereitstellung von
Daten per FTP und Samba eingegangen. Abschließend wird eine
Lösung vorgestellt, welche
das
Problem der Erreichbarkeit des
Servers bei ISPs mit dynamischem
Adresspool umgeht.
EINRICHTEN
VSFTPD
EINES
FTP-SERVERS
MITTELS
• Warum gerade vsftpd?
Es existiert eine Vielzahl auf OpenSource basierender FTP-Server.
Dabei heben sich vor allem 2 besonders hervor: pure-ftpd und vsftpd (very secure ftp daemon). Diese beiden unterscheiden sich kaum
hinsichtlich Performance, Stabilität,
Handling und Sicherheit. Benötigt
man eine umfangreiche Benutzerverwaltung und somit eine Schnittstelle zu einem Verzeichnisdienst
bzw. einer Datenbank, so ist pureftpd die erste Wahl. Ansonsten
bevorzugen die Autoren aufgrund
der zahlreichen Sicherheitsfeatures den vsftpd, wobei dies jeHK - Magazin
doch Geschmackssache bleibt. Im
Folgenden wird daher auf den vsftpd eingegangen. Der vsftpd unterstützt sowohl Anonymous- als
auch Useraccounts, wobei sich deren Kombination beliebig skalieren
lässt. Auf sämtliche Szenarien einzugehen würde den Rahmen dieses
HowTo‘s sprengen. Die 2 häufigsten Szenarien sind Anonymous und
eingeschränkter Benutzerbetrieb.
Nach der Installation ist standardmäßig ein Anonymous-Account
eingerichtet, was keine weiteren
Modifikationen in der Config-Datei erfordert. Daher wird ein Szenario beschrieben, welches einem
Benutzer den lesenden Zugriff auf
bestimmte Verzeichnisse und den
Schreibzugriff auf ein definiertes
Verzeichnis (Upload) erlaubt. Spe-
31
Server-Tagebuch Teil 2
ziell werden dabei Maßnahmen beleuchtet, die eine Privilege Escalation verhindern sollten.
• Installation des Pakets – Binary
vs. Kompilieren
Das Paket wird üblicherweise mit
apt-get install vsftpd installiert.
Aus sicherheitstechnischer Sicht
empfiehlt es sich jedoch die Sources manuell zu kompilieren.
Die aktuellsten Sources sind unter
http://vsftpd.beasts.org/ zu beziehen. Die Banner des Daemons sind
unbedingt zu ändern, um potentiellen Angreifern das Fingerprinting
zu erschweren. Im Fall des vsftpd
geschieht dies folgendermaßen:
– Die Sources des Pakets laden
– Vor dem Kompilieren ins SourceVerzeichnis wechseln
– Folgende Dateien editieren:
prelogin.c:
Messages ändern z.B. Unter “too
many connections”, bei „vsFTPd“
auch die Versionsnummer ändern
bzw. ersetzen. Darüber hinaus ist
es sinnvoll sämtliche für diesen
Daemon typische Statusmeldungen zu verändern, da auch diese unter Umständen verräterisch
sein können.
vsftpver.h:
Versionsnummer modifizieren,
je nach Geschmack können auch
andere Dateien und Meldungen
des Daemons verändert werden,
so dass dieser einem potentiellen
Angreifer nichts mehr über sich
verrät.
– danach mit make das Paket
kompilieren
• Die zentrale Konfigurationsdatei
Welche Sicherheitsmaßnahmen
können getroffen werden?
Mit Hilfe der zentralen Konfigurationsdatei in /etc/vsftpd.conf werden
sämtliche Einstellungen vorgenommen. Ein Listing der umfangreichen
Optionen und deren Parameter
findet sich in der Dokumentation des vsftp-Pakets. Sehr wichtig
ist es, die Option „listen=YES“ zu
setzen. Diese ermöglicht einen
standalone-Betrieb des Daemons.
Ansonsten wird der Daemon über
den Superdaemon inetd gestartet,
was aus Performancegründen nicht
empfehlenswert ist. Zu beachten
ist in jedem Fall die Eigenheit des
vsftpd, dass die Variablen klein
geschrieben sein müssen und deren Werte groß. (z.B. „listen=YES“).
Weiters sollte sich kein Leerzeichen
vor bzw. nach dem ‚=‘ befinden.
Der vsftpd bietet eine Unzahl an
(Sicherheits-)Features.
Folgende
davon sollten in jeden Fall berücksichtigt werden, sobald vsftpd im
User-Betrieb verwendet wird. Jeder
User, der Zugang zum FTP-Service besitzt, muss auch als lokaler
Benutzer am System existieren. In
diesem Beispiel wir der User ‚leecha‘ mit useradd leecha als lokaler Benutzer am System angelegt.
Vsftpd benötigt weiters den User
‚nobody‘; dieser User ist normalerweise auf jedem Linux/UNIX System vorhanden. Wenn nicht, wird
er mit useradd nobody erstellt. Anschliessend benötigt vsftpd noch
das Verzeichnis /usr/share/empty
(muss leer sein!), welches mit mkdir
-p / usr/share/empty erstellt wird.
Da der Daemon mit root-Rechten
ausgeführt wird, ist es aus sicherheitstechnischer Sicht wünschenswert ihn soweit wie möglich in seinen Rechten einzuschränken. Dies
geschieht mit obigem Feature. Sobald sich der Daemon im idle-Zustand befindet, läuft er unter dem
nicht-privilegierten User ‚nobody‘
im Verzeichnis /usr/share/empty.
Dazu sind zusätzlich die Optionen
„nopriv_user“ und „secure_chroot_
dir“ nötig. Da der User ‚nobody‘
standardmäßig auch für andere
Aufgaben zuständig ist, wurde in
diesem Beispiel für obige Aufgabe
ein dezidierter Benutzer namens
‚ftpsecure‘ angelegt. Da in dieser
Angelegenheit gesunde Paranoia
angebracht ist, sollte der Benutzer
leecha im Verzeichnis /usr/share/
empty keinerlei Rechte besitzen.
Daher wird als root der Besitz dieses Verzeichnisses übernommen
und dessen Rechte auf ‚0700‘ gesetzt. Weiters ist die Verwendung
der chroot(); Funktion empfehlenswert, auch wenn sie keine hundertprozentige Sicherheit bieten kann.
Um die erlaubten FTP-User so weit
HK - Magazin
wie möglich einzuschränken, sollte
in jedem Fall „/bin/false“ zu /etc/
shells hinzugefügt und in /etc/
passwd jedem FTP-User als Shell
/bin/false zugewiesen werden, damit dieser keine weiteren Möglichkeiten erhält, sich unauthorisiert
Zugang zum System zu verschaffen. Zudem kann die Verwendung
von Userlists (users_allow, users_
deny) der Sicherheit des Services
dienen. Mit ftp localhost wird der
Dienst auf seine ordnungsgemäße
Erreichbarkeit überprüft.
Nach erfolgreichem Login erscheint
die Meldung:
- 230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer
files.
Um den vsftpd bei jedem Systemstart automatisch zu aktivieren,
kann der Einfachheit halber das
Startskript aus dem package /var/
cache/apt/packages/vsftpd...deb
verwendet werden. Dieses muss
lediglich nach /etc/init.d/ kopiert
werden. Im gewünschten Runlevel
(in unserem Fall z.B. 3, d.h.: ins
Verzeichnis ‚rc3.d‘ wird sinngemäß ein Symlink darauf gesetzt:
ln -s /etc/init.d/vsftpd /etc/rc3.
d/S80vsftpd
• Wer darf was?
Im vorhergehenden Abschnitt wurde gewährleistet, dass nur der berechtigte User ‚leecha‘ Zugriff auf
das FTP-Service erhält. Um sicherzustellen, dass dieser auch nur jene
Daten modifizieren kann, welche
sich im dafür vorgesehenen Verzeichnis (Upload) befinden, werden
entsprechend Rechte vergeben:
Da es sich bei dem User ‚leecha‘
um einen lokalen Benutzer handelt,
muss dieser tatsächlich am System
existieren. Somit besitzt er auch ein
entsprechendes Home-Verzeichnis
/home/leecha.
Root übernimmt also dessen Besitz
mit chown -R root /home/leecha/.
Auf die Daten in diesem Verzeichnis (sowie sämtlicher Unterverzeichnisse) soll lediglich lesender
Zugriff erlaubt sein. Allerdings ist
es nötig, dass der Inhalt auch aus-
32
führbar ist, da ansonsten die Dateien nicht downgeloadet werden
können bzw. es nicht möglich ist
Verzeichnisse zu öffnen. Daher
werden die Rechte des Verzeichnisses rekursiv auf 555 gesetzt:
chmod -R 555 /home/leecha.
Einzige Ausnahme bildet das Upload-Verzeichnis, in welchem jeder sämtliche Rechte besitzen soll:
chown leecha /home/leecha/
upload
chmod 777 /home/leecha/upload/
Existieren jetzt aber mehrere Benutzer, welche über das UploadVerzeichnis Daten austauschen, so
verursacht dies folgendes Problem:
Es ist anzunehmen, dass upgeloadete Dateien und Verzeichnisse
unterschiedliche Rechte besitzen
bzw. diese Schreibzugriff erlauben.
Somit ist es nicht tragbar neu hinzugekommene Dateien im UploadVerzeichnis einfach in das entsprechende Verzeichnis innerhalb
von /home/leecha zu verschieben,
da diese unter Umständen ohne
weiteres gelöscht werden könnten. Das bedeutet, dass für neue
Dateien und Verzeichnisse jeweils
die entsprechenden Rechte gesetzt
werden müssten. Um diesen Umstand zu umgehen bedient man
sich der folgenden Optionen:
In der Datei
/etc/vsftpd.conf
wird die Option ‚local_umask‘ auf
‚0222‘ gesetzt, was bewirkt dass
sämtlichen neu erstellten (entspricht upgeloadeten) Dateien automatisch die gewünschten Rechte
zugewiesen werden. In diesem Beispiel hätten neue Dateien somit die
Rechte ‚444‘, was einem lesenden
Zugriff entspricht, da vsftpd von
666 ausgeht und den Wert von ‚local_umask‘ subtrahiert. Unbedingt
zu beachten ist hierbei das erste Bit
(0). Dies muss in jedem Fall mit angegeben werden, damit die Zuweisung der Rechte von vsftpd korrekt
interpretiert wird.
Weiters wird der Beispiel-User ‚leecha‘ zur Gruppe ‚ftpuser‘ hinzugefügt (/etc/group). Darüber hinaus
wird in der Datei /etc/profile die
Option ‚umask‘ auf ‚222‘ gesetzt.
Diese Einstellung gilt systemweit und hat zur Folge, dass von
Server-Tagebuch Teil 2
den vollen Rechten (777) jeweils 2
subtrahiert werden. Damit haben
sämtliche neu erstellten Verzeichnisse automatisch die Rechte 555.
Für jede Anforderung das Szenario
entsprechend skalieren
Zusammenfassend wurde mit den
getroffenen Maßnahmen folgendes Szenario realisiert: Der vsftpd
operiert im User-Betrieb, wobei auf
dem System lediglich ein einziger
Benutzer (leecha) existiert, welcher
diesen Service in Anspruch nehmen
darf. Dieser ist in seinem home-
Verzeichnis eingesperrt, somit
ist es ihm nicht möglich Kenntnis
über die Struktur des Filesystems
zu gewinnen. Auf sämtliche Unterverzeichnisse des Home-Verzeichnisses ist lediglich ein lesender
Zugriff erlaubt, mit Ausnahme des
Verzeichnisses ‚Upload‘. Dieses
Szenario kann jederzeit hinsichtlich der Benutzeranzahl und den
Sicherheitsanforderungen modifiziert bzw. den eigenen Anforderungen entsprechend skaliert werden.
Nachfolgend ist die kommentierte
Konfigurationsdatei angeführt.
#
Test-Konfiguration:
#
#Der FTP-Server soll im Standalone-Modus operieren:
listen=YES
#anonymen Zugang nicht erlauben:
anonymous_enable=NO
#beim Einloggen folgendes Banner-file anzeigen (nur plain-text):
banner_file=/etc/banner
#ASCII-Transfer erlauben, ermöglicht Betriebssystem-spezifische
#Codierung:
ascii_download_enable=YES
ascii_upload_enable=YES
#lokalen Benutzer in sein home-Verzeichnis einsperren:
chroot_local_user=YES
#Zugriff auf den FTP-Datenkanal erlauben:
connect_from_port_20=YES
#Meldung beim Wechsel von Verzeichnissen anzeigen:
dirmessage_enable=YES
#bei einem Login-Namen, der in der /etc/passwd existiert, auch das
#Passwort in der /etc/shadow verwenden. D.h.: wenn sich ein User
#mit einem Benutzernamen, welcher auf dem #System existiert,
#einloggen will muss er auch das zugehörige Passwort verwenden:
local_enable=YES
#Passive-Mode verwenden:
pasv_enable=YES
#lokale Zeit verwenden:
use_localtime=YES
#Logins sind verboten, ausser sie sind explizit in der Datei
#angegeben, welche mit ‘userlist_file‘ definiert worden ist. Der
#Loginvorgang wird abgebrochen, noch bevor nach einem Passwort
#gefragt wird:
userlist_deny=NO
#Liste mit gültigen Benutzernamen verwenden, welche mit
#‚userlist_file‘ gesetzt wurde:
userlist_enable=YES
#zu verwendendes userlist-file, beinhaltetet lediglich den Eintrag
„leecha“:
userlist_file=/etc/vsftpd.user_list
Listing 1 - /etc/vsftpd.conf
HK - Magazin
33
Server-Tagebuch Teil 2
verursacht. Ein Upgrade auf eine
neuere Kernelversion beseitigt dieses Problem.
#(prinzipiell) Schreibzugriff gestatten:
write_enable=YES
#nach /var/log/vsftpd.log loggen:
xferlog_enable=YES
#im gleichen Format wie WU-FTPD loggen (wichtig für Log-Analysing
#Software):
xferlog_std_format=YES
#Zeit in Sekunden, nach denen eine Verbindung bei Inaktivität
#getrennt wird:
accept_timeout=300
#Upload: von lokalen Benutzern erstellte Dateien haben die Rechte
#‚0555‘:
local_umask=0222
#nach 5 Minuten im idle-Zustand wird der Client getrennt:
idle_session_timeout=300
#max 10 Benutzer können gleichzeitig eingeloggt sein:
max_clients=10
#nur 1 Verbindung je IP-Adresse:
max_per_ip=1
#Datei, in welcher steht, was beim Verzeichniswechsel angezeigt
#wird:
message_file=/etc/message
#Benutzer und Verzeichnis, um unprivilegiert zu operieren:
nopriv_user=ftpsecure
secure_chroot_dir=/usr/share/empty
Fortsetzung Listing 1 - /etc/vsftpd.conf
• Troubleshooting
Sollten während der Installation
bzw. der Konfiguration wider Erwarten Probleme auftreten, so sind
diese meist auf eines der folgenden
Szenarien zurückzuführen:
Fehler beim Kompilieren:
Bricht der Kompilier-Vorgang mit
einem Fehler ab, so schafft in der
Regel folgendes Abhilfe:
– Zuerst lediglich ‚make‘ eingeben
– Anschließend ‚make install‘
– Für den Fall, dass sich der
Vorgang danach erneut abbricht,
hilft in den meisten Fällen das
manuelle Kopieren der nötigen
Dateien
cp vsftpd /usr/sbin/vsftpd
cp vsftpd.conf.5 /usr/local/man/man5
cp vsftpd.8 /usr/local/man/
man8
cp vsftpd.conf /etc
Probleme beim Login:
Sollte beim Login der Fehler “530:
login incorrect” unabhängig von
den Usercredentials bzw. den
Rechtevergaben auftreten, ist in
der Datei /etc/pam.d/vsftpd folgendes auszukommentieren:
#auth required pam_shells.so
Der Daemon scheint einwandfrei
zu funktionieren, bricht jedoch bei
der Eingabe eines beliebigen Kommandos ab:
Der Dienst läuft, es erscheint der
Welcome-Banner beim Login, Benutzername und Passwort werden
akzeptiert. Bei der Eingabe eines
Kommandos, z.B.: ‚ls‘, bricht der
Daemon die Verbindung mit dem
Fehler ‚500 OOPS: cap_set_proc
ftp: bind: Address already in use‘
ab. Die verwendete Kernelversion
ist 2.6.5-rc1. Die Ursache dieses
Verhaltens liegt in der Kombination aus vsftpd (unabhängig von
der verwendeten Version) und der
Kernelversion2.6.5-rc1. Dadurch
wird ein – nach Wissen der Autoren
- undokumentierter Systemcall im
Kernel ‚CAP_SET_PROC‘ aufgerufen, welcher offenbar diesen Fehler
HK - Magazin
VERWENDUNG VON SAMBA
RATION DER DATEN
ZUR
ADMINIST-
• Samba, das Allround-Tool
Der für den FTP-Server zuständige Administrator ist natürlich daran interessiert die darauf befindlichen Daten möglichst einfach zu
verwalten, upgeloadete Dateien
und Verzeichnisse zu verschieben,
schnellen Zugriff auf die Log-Dateien zu erhalten und vieles mehr.
Dabei bietet sich der extrem umfangreiche und mächtige Dienst
‚Samba‘ an, welcher das NetbiosProtokoll von Microsoft emuliert
und sowohl auf Microsoft-basierenden als auch auf UNIX-Systemen läuft. Im folgenden Szenario
werden (selbstverständliche) Dinge
wie ein separater Logserver, Absicherung gegen Man-in-the-middle-Attacken und ähnliches außer
Acht gelassen. Der Rahmen dieses
HowTo‘s lässt das Eingehen auf die
vielfältigen Einsatzmöglichkeiten
für Samba nicht zu und wird daher
dazu verwendet, um den unkomplizierten Zugriff auf die Daten des
Servers zu demonstrieren.
Es wird davon ausgegangen, dass
der Administrator auf seine Daten
zugreifen möchte, ohne jedes Mal
ein Passwort eingeben zu müssen,
da er sich ohnehin in einem abgeschotteten Bereich des Netzwerks,
wie z.B. einer DMZ, befindet.
• Installation – in aller Kürze
Wie gewohnt wird das Paket mit
Hilfe des Paketmanagers installiert:
apt-get install samba
Um für den gerade eingeloggten
Benutzer ein Passwort für Samba zu
vergeben, wird das im Paket inkludierte Tool ‚smbpasswd‘ herangezogen, wobei kein Passwort (Enter)
bei der entsprechenden Abfrage
angegeben wird. Nach der Installation des Pakets rennen 2 Prozesse:
der ‚smbd‘ und der ‚nmbd‘, wobei
ersterer die Schnittstelle für den
34
Server-Tagebuch Teil 2
#!/bin/sh
# /etc/init.d/vsftpd
#
# Written by Sander Smeenk <[email protected]>
set -e
# Exit if vsftpd.conf doesn‘t have listen=yes or listen_ipv6=yes
# (mandatory for standalone operation)
if [ -f /etc/vsftpd.conf ] && ! egrep -iq „^ *listen(_ipv6)? *= *yes“ /etc/vsftpd.conf; then
exit 0
fi
DAEMON=/usr/sbin/vsftpd
NAME=vsftpd
test -x $DAEMON || exit 0
case „$1“ in
start)
echo -n „Starting FTP server: $NAME“
start-stop-daemon --start --background -m --pidfile /var/run/vsftpd/vsftpd.pid --exec $DAEMON
echo „.“
;;
stop)
echo -n „Stopping FTP server: $NAME“
start-stop-daemon --stop --pidfile /var/run/vsftpd/vsftpd.pid --oknodo --exec $DAEMON
echo „.“
;;
restart)
echo -n „Restarting FTP server: $NAME“
start-stop-daemon --stop --pidfile /var/run/vsftpd/vsftpd.pid --oknodo --exec $DAEMON
start-stop-daemon --start --background -m --pidfile /var/run/vsftpd/vsftpd.pid --exec $DAEMON
echo „.“
;;
reload|force-reload)
echo „Reloading $NAME configuration files“
start-stop-daemon --stop --pidfile /var/run/vsftpd/vsftpd.pid --signal 1 --exec $DAEMON
echo „.“
;;
*)
echo „Usage: /etc/init.d/$NAME {start|stop|restart|reload}“
exit 1
;;
esac
exit 0
Listing 2 - init-skript
Datenzugriff bildet und der ‚nmbd‘
zur Namensauflösung dient.
• Die Konfigurationsdatei – simpel
und überschaubar oder komplex
und undurchsichtig?
Der Skalierbarkeit dieses Dienstes
sind kaum Grenzen gesetzt. Es obliegt dem Anwender die Funktionalität von Samba und damit den Umfang der Konfigurationsdatei seinen
Bedürfnissen anzupassen. Im Paket
befindet sich bereits die zentrale
Konfigurationsdatei von Samba (/
etc/samba/smb.conf), welche eine
große Anzahl an möglichen Optio-
nen und Szenarien inkludiert. Diese sind bei Bedarf meist nur auszukommentieren bzw. geringfügig zu
modifizieren. Die Syntax der Konfigurationsdatei kann mit ‚testparm
/etc/samba/smb.conf‘ überprüft
werden. Sie ist in verschiedene
Sektionen unterteilt, welche durch
eckige Klammern gekennzeichnet sind. Wie bereits erwähnt soll
hierbei nur ein simpler Zugriff auf
die Daten des FTP-Servers veranschaulicht werden. Dementsprechend kurz und überschaubar wird
die Konfigurationsdatei gehalten
(siehe Listing 3).
HK - Magazin
• Zugriff auf Samba-Shares
In diesem Beispiel wurde keine
Namensauflösung über Subnetgrenzen hinweg konfiguriert. Somit müssen die Freigaben manuell
(alternativ automatisch via Shellskript) eingebunden werden.
Linux/UNIX
mount -t smbfs //192.168.1.1/
homes /mnt/shares
mount -t smbfs //192.168.1.1/
logs /mnt/logs
Anstelle des mount-Befehls kann
auch das Kommando ‚smbmount‘
35
Server-Tagebuch Teil 2
#Beginn der globalen Sektion, in welcher allgemein gültige
#Optionen festgelegt werden:
[global]
#Name der Arbeitsgruppe, in welcher sich der Host befindet:
workgroup = Hagenbergerkreis
#Beschreibung des Rechners und der eingesetzten Samba-Version:
server string = %h server (Samba %v)
#Name, Ort und max. Größe der Log-Datei:
log file = /var/log/samba/log.%m
max log size = 1000
#Verhalten im Fehlerfall (default):
panic action = /usr/share/samba/panic-action %d
#Zugriffsmodus
#‘share‘ bedeutet: keine Passwortabfrage (alternativ: ‚user‘):
security = share
#Benutzer, der als Gästekonto fungiert:
guest account = nobody
#nicht auf Bestätigung warten, um Zugriffsgeschwindigkeit zu
#erhöhen:
socket options = TCP_NODELAY
#Definition der Netzwerkfreigaben:
#path: Spezifikation des freizugebenden Verzeichnisses
#browseable: ermöglicht das Durchsuchen der Shares wie bei einem
#lokalen Verzeichnis
#writeable: Schreibzugriff erlauben
#guest ok: Zugriff mit Hilfe des Gastkontos erlauben
[homes]
path=/home
comment = Home Directories
browseable = yes
writable = yes
guest ok = yes
[logs]
path=/var/log
comment = Logs
browsable = yes
writable = yes
guest ok = yes
Listing 3 - /etc/samba/smb.conf
verwendet und anstatt der
IPAdresse der Hostname (sofern in
/etc/hosts definiert) angegeben
werden.
Microsoft-basierende Systeme
z.B. im Windows-Explorer auf den
Menüpunkt ‚Netzlaufwerk verbinden‘ zurückgreifen. Dabei ist zu
beachten, dass Backslashes verwendet werden müssen:
\\192.168.1.1\homes
\\192.168.1.1\logs
SICHERSTELLEN
DYNDNS
DER
ERREICHBARKEIT
MITTELS
IP-Adressen auswendig lernen
– oder einen kostenlosen Dienst in
Anspruch nehmen
Wer von seinem ISP eine dynamische IP-Adresse zugewiesen bekommt, steht meist vor dem Problem nicht von überall aus auf
seine Daten zugreifen zu können,
da sich die öffentliche IP-Adresse
regelmäßig ändert. Um dieses lästige Problem zu umgehen, bietet
sich die Inanspruchnahme eines
denkbar einfachen und vor allem
kostenlosen Dienstes an – den dynamischen DNS. Es existiert bereits eine Vielzahl an Anbietern
derartiger Services. Einer davon ist
HK - Magazin
DynDNS (www.dyndns.org). Um ihn
in Anspruch nehmen zu können, ist
eine (kostenlose) Registrierung auf
https://www.dyndns.org/account/
create.html erforderlich. Anschließend kann ein Name und eine Domain zugewiesen werden, wobei
eine breite Auswahl an Domains
zur Verfügung steht. Als Beispiel:
‚hagenbergerkreis.dyndns.org‘.
Dabei kann die entsprechende IPAdresse angegeben werden. Somit
wird der angegebene Name der IPAdresse zugewiesen. Um sicherzustellen, dass es sich dabei immer
um die grade aktuelle Adresse handelt, wird entsprechende ClientSoftware, wie z.B. ‚ddclient‘ (für
Linux) eingesetzt. Diese übermittelt in definierbaren Zeitintervallen
die momentane IP-Adresse an den
DynDNS-Account, welcher die Zuordnung wiederum updatet.
Installation
und
Konfiguration
leicht gemacht
Die Installation des Clients erfolgt
mit apt-get install ddclient. Das
ddclient-Paket wird anschließend
als Daemon gestartet, wobei es eine
Konfigurationsdatei /etc/ddclient.
conf beinhaltet, welche nur mehr
geringfügig angepasst werden
muss. Unmittelbar nach der Installation des Pakets wird ein Konfigurationsdialog aufgerufen, auf wessen Basis die Konfigurationsdatei
modifiziert wird. Die benötigten
Angaben sind selbsterklärend und
finden sich in Listing 4.
... to be continued
Martin Brunner
Stefan Streichsbier
pid=/var/run/ddclient.pid
#Anbieter des dynDNS-Services:
protocol=dyndns2
#zu verwendende NIC
use=if, if=eth0
server=members.dyndns.org
#Username und Password des
#registrierten Accounts:
login=hk-test
password=hk-shows-dyndns4U
hagenbergerkreis.dyndns.org
#optional:
#Update-Meldungen an syslogd #senden Verwendung einer
Fire#wall vor dem Host
#syslog=yes
#fw=192.168.1.2
Listing 4 - /etc/ddclient.conf
Hagenberger Kreis
zur Förderung der digitalen Sicherheit
pA FH-Studiengang CMS
Hauptstraße 117
4232 Hagenberg
http://www.hagenbergerkreis.at
[email protected]
fax: 07236 / 3888 2599