original in en Georges Tarbouriech
en to de Katja Socher
Georges ist ein langjähriger Unixbenutzer (kommerzielles und freies). Er ist
sehr interessiert an freien Sicherheitswerkzeugen und weiß wirklich ihre hohe
Qualität zu schätzen.
Sicherheit war immer eines der Hauptanliegen der Systemadministratoren.
Jedoch wurde durch die Internet "explosion" das Risiko einer Störung sogar noch
größer. Statistisch gesehen wächst, wenn die Zahl der mit dem Internet verbundenen Benutzer steigt,
die Zahl der Cracker mit derselben Wachstumsrate. Dementsprechend wuchs
die Entwicklung von Sicherheitssoftware exponentiell. Wiedereinmal Dank an die
freie Softwaregemeinde, da sie uns mit den besten Werkzeugen, die jemals gesehen
wurden, versorgt hat und mit einer Menge Dokumentation.
Du wirst viele interessante Links im Refernzabschnitt am Ende des Artikels
finden. Offensichtlich kann das, was wir hier erwähnen, nicht erschöpfend sein.
Ich präsentiere nur eine Auswahl guter Werkzeuge.
Dieser Artikel ist sowohl für private Benutzer als auch für Systemadministratoren
gedacht, da einige Werkzeuge für den Schutz von Hosts und andere für die
Verbesserung der Netzwerksicherheit entwickelt wurden.
Die meisten dieser Werkzeuge laufen auf vielen Unixsystemen (wenn nicht allen),
egal ob diese Unixsysteme nun kommerziell oder frei sind. Und schließlich, dieser
Artikel ist kein "Wie sichert man sein Netzwerk oder seine Maschine", sondern
eine Darstellung von verschiedenen Werkzeugen, die du benutzen kannst (mußt), um
die Sicherheit eines Netzwerkes oder einer Maschine zu verbessern.
Laßt uns diesen Abschnitt "Werkzeuge für whitehats, um redhat
vor blackhats zu schützen" nennen :-) Die meisten Linuxdistributionen (nicht nur
RedHat!) enthalten eine ganze Menge an guten Sicherheitswerkzeugen. Sie
können benutzt werden, um deinen Rechner sicherer zu machen.
Unter ihnen können wir TCPWrapper, PAM (Pluggable Authentication
Modules), shadow utilities... nennen. Da sie Teil von Distributionen sind,
findest du eine Menge über sie zu lesen: HOWTO, man pages, weshalb wir nicht
zuviel Zeit darauf verwenden werden.
Laßt uns mit den shadow utils beginnen. Um es kurz zu machen,
sie erlauben die Paßwortverschlüsselung. Die /etc/passwd Datei wird durch
/etc/shadow ersetzt.
Etwas sorgfältiger ausgearbeitet ist PAM. Wie der Name sagt,
ist es eine weitere Autentifizierungsmethode. Es wird dafür benutzt, den Zugriff
auf Dienste zu konfigurieren. Eine Menge Restriktionen können von einigen
Konfigurationsdateien aus definiert werden, so daß die Administration leichter
wird. Normalerweise befinden sich diese Dateien im /etc/pam.d Verzeichnis.
TCPWrapper, es ist ausreichend zu sagen, daß es den Zugriff auf
einen Dienst durch die IP Adresse oder den Hostnamen beschränkt. Zugriffe können
erlaubt oder zurückgewiesen werden durch zwei Dateien: /etc/hosts.allow und
/etc/hosts.deny.
TCPWrapper kann auf zwei Arten konfiguriert werden: entweder durch verschieben der
Deamons oder Verändern der Datei /etc/inetd.conf . Wenn TCPWrapper kein Teil
deines Unixsystems ist, kannst du ihn über ftp://ftp.porcupine.org/pub/security
bekommen
Und jetzt verstehst du, warum wir nicht viel über die oben erwähnten Werkzeuge
sagten: ein einziges Werkzeug kann all das für dich verwalten, während wir es
dir beibringen. Bastille-Linux.
Wenn du nur ein Werkzeug installierst, das ist es! Es ist (noch) nicht Teil der
normalen Linuxdistributionen, aber man kann es von http://bastille-linux.sourceforge.net
bekommen
Wir werden nichts über Bastille-Linux sagen!!! Es ist überflüssig, da es einen
ausgezeichneten Artikel darüber in der
Septemberausgabe von LinuxFocus von meinem Freund Frédéric gibt:
er erklärt dir alles. Wenn du ihn noch nicht gelesen hast, sieh ihn dir
hier an.
Laßt uns hinzufügen, daß Bastille-Linux ein Werkzeug ist, ohne daß man nicht
leben kann!
Ein weiteres allgemeines Werkzeug, um die Sicherheit zu erhöhen, ist
xinetd. Es ist verfügbar auf http://www.xinetd.org. Tut mir leid, aber wir
werden auch darüber nicht reden!!! Wieder einmal hat Frédéric
in der Novemberausgabe von LinuxFocus ganze Arbeit geleistet. Du kannst ihn
hier lesen.
Das war der FredFocusabschnitt ...
Mach dir keine Sorgen über das Geld Fred, ich kann warten...
Jetzt laßt uns einige spezielle Werkzeuge anschauen.
Freie Unixsysteme kommen mit Software, die Maschine in eine
Firewall verwandelt. Der 2.2 Kernel enthält
ipchains. Davor der 2.0 Kernel benutzte
ipfwadm. Um ipchains oder ipfwadm zum Laufen zu bringen, muß
der Kernel mit den richtigen Optionen kompiliert werden. Eine Menge an
Dokumentation darüber ist durch HOWTOS verfügbar, deshalb werden wir wieder
nicht mehr dazu sagen.
Kurz, laßt uns sagen, eine Firewall ist ein Paketfilterungswerkzeug. Der
wichtigste Teil der Arbeit betrifft die Konfiguration einer Firewall. Das
bedeutet, daß eine schlecht konfigurierte Firewall sehr gefährlich werden kann.
Trotzdem sind Firewalls sehr wichtig.
Zum Beispiel bietet Bastille-Linux eine Firewall, die auf
ipchains basiert.
Wenn du zu http://www.linuxapps.com gehst und
"firewall" in das Suchfeld eintippst, wirst du mindestens 40 Antworten bekommen.
Viele von ihnen sind GUIs für die ipchains oder ipfwadm Administration. Einige
andere sind wirklich große Werkzeuge mit Tonnen an Features, wie z.B. T.REX,
verfügbar unter http://www.opensourcefirewall.com.
Wiederum, laß dich nicht reinlegen: eine Firewall ist obligatorisch auf einem
Netzwerk, aber die Netzwerksicherheit kann nicht NUR von ihr abhängen. Ein
Cracker bricht vielleicht innerhalb von 15 Minuten ein. Du bist vorgewarnt
worden.
Hier erreichen wir das Herz des Problems. Die Idee ist: benutze dieselben
Werkzeuge, wie sie die Cracker benutzen, um die Verwundbarkeiten deines
Netzwerkes (deiner Maschine) zu überprüfen.
In diesem Bereich können wir von zwei sehr großartigen Werkzeugen profitieren,
aber es gibt noch viele andere.
Das erste wird nmap genannt. Du kannst es von http://www.insecure.org herunterladen. Außerdem
findest du dort viele Informationen, Links...
Mit nmap kannst du überprüfen, welche ports auf deiner Maschine,auf deinem
Netzwerk offen sind. Sicherlich kannst du das mit Befehlen wie lsof oder
netstat machen, aber nur für deine eigene Maschine. Natürlich kannst du
deine Maschine auch mit nmap überprüfen.
nmap kann dich mit einer Menge an Informationen versorgen: z.B. kann es dir
sagen, welches Betriebssystem läuft, es informiert dich über gefährlich
geöffnete
ports... Und schließlich ist nmap sehr einfach zu benutzen.
nmap kann entweder von einer Shell oder von einer grafischen Oberfläche, nmapfe
genannt, benutzt werden. Das GUI basiert auf der gtk lib. Die aktuelle Version
von nmap ist 2.53. Es läuft auf vielen Unixsystemen und ist als Quellcode,
rpm, mit oder ohne GUI verfügbar.
nmap ist ein Werkzeug, ohne daß Systemadministratoren nicht leben können!
Vielen Dank, Mr. Fyodor und herzlichen Glückwunsch zu dieser guten Arbeit.
Das zweite ist nessus. Es kann von http://www.nessus.org heruntergeladen werden.
Nessus läuft unter der Client/Server Architektur und der Posix Quellcode ist auf
vielen Unixsystemen nutzbar. Es gibt sogar einen Client für
Win32 (nur, damit du es weißt).
Nessus verläßt sich auf nmap (du siehst, du kommst ohne es nicht aus!) und der gtk
lib für sein GUI.
Dei aktuelle Version ist 1.06 und mit ihm kannst du ein ganzes Netzwerk mit
einem einzigen Befehl scannen, das ist die Netzwerkadresse. Zum Beispiel werden
die 255 Maschinen deines Netzwerkes gescannt, wenn du die Adresse
192.168.1.0/24 in das Zielfeld eintippst.
Auch wenn nessus ein bißchen komplexer ist als nmap, ist es trotzdem noch
einfach zu benutzen und hat viele Features. Zum Beispiel kann es Berichte
generieren, es kann diffs zwischen Berichten machen... Ein weiteres Feature ist
ganz interessant: nessus macht Lösungsvorschläge zu den Problemen, die es
während eines portscans gefunden hat. Soweit wie die Rechner Unixrechner sind,
sind die Vorschläge oft sehr gut. Sie sind für andere Betriebssysteme weniger
gut geeignet. Aber das ist hier nicht der Punkt.
Hier ist ein Beispiel einer sehr verwundbaren Maschine:
Nessus hat ein weiteres großartiges Feature: es arbeitet mit
plugins, es kann leicht jedes Mal upgedatet werden, wenn eine neue
Sicherheitslücke irgendwo gefunden wurde.
Ein weiteres Werkzeug, das Systemadministratoren brauchen! Großartige Arbeit,
Mr. Deraison und "Merci
beaucoup".
Beide Werkzeuge wurden auf einem Linuxrechner auf einem Netzwerk mit
verschiedenen Betriebsystemen getestet: Linux RH 6.2, Irix 6.5.7, Solaris 2.6, NeXTStep
3.3, QNX RT, BeOS 5.0, Amiga OS 3.5, Not Terminated 4.0. Die Ergebnisse sind für
die meisten der Plattformen beeindruckend. Natürlich wird das Amiga
Betriebssystem wirklich nicht gut identifiziert (da es als Drucker oder Router
erschien!), aber wer hat noch dieses Betriebssystem in einem Netzwerk (abgesehen
von mir)?
Auf jeden Fall sind diese Werkzeuge ein "must have" (muß man haben) bei heutigen
Netzwerken.
Um dieses Kapitel abzuschließen, laßt uns noch einige andere Werkzeuge erwähnen,
wie
SARA http://www-arc.com/sara/, oder seinen
"Vater" SATAN http://www.porcupine.org/satan/,
oder SAINT http://www.wwdsi.com.
Sie sind nicht nur port scanner und sie können ganz nützlich sein, um die
Netzwerksicherheit zu verbessern.
Einige Werkzeuge sind in der Lage, portscans oder eine Störung zu erkennen.
Ein "Standard" (das ist paranoid!) Systemadministrator KANN NICHT ohne diese Art
von Werkzeugen arbeiten.
Das erste Werkzeugpaket kommt vom Abacus
Project. Du kannst diese Werkzeuge von http://www.psionic.com bekommen. Drei verschiedene
Werkzeuge sind verfügbar: logcheck, portsentry und
hostsentry.
Logcheck ist in Version 1.1.1, portsentry in Version 1.0 und
hostsentry in Version 0.0.2 alpha.
Portsentry ist ein portscan Erkennungswerkzeug. Wie der Name
sagt, wenn der port von irgendwoher gescannt wird, blockiert portsentry
augenblicklich den host, entweder durch Fallenlassen der Route durch Benutzen
der Firewall (oder einer ungenutzten IPadresse) oder durch das Schreiben der
IP Adresse des Angreifers in die /etc/hosts.deny Datei, sobald TCPWrapper auf
deiner Maschine installiert ist. Das Ergebnis ist sehr effizient!
Porsentry verläßt sich auf die Hauptkonfigurationsdatei und ein paar wenige
spezielle Dateien. Die letzteren werden benutzt, um Hosts zu ignorieren (d.h.
damit sie nicht blockiert werden) oder um einige ports auf einigen hosts zu
blockieren.
In der config Datei definiert man die Art, wie portsentry arbeiten wird. Man
wählt erst die ports aus, die man an portsentry binden will, entweder
TCP oder UDP ports (oder beide). Sei vorsichtig, mit dem Einbinden von
port 6000, wenn du X11 laufen hast!
Je nach dem Unixsystem, das du benutzt, kannst du 2 verschiedene Operationsmodi
haben, um die ports zu überwachen. Der fortgeschrittene Mode ist momentan nur für
Linux verfügbar.
Als nächstes wählst du eine Blockieroperation aus: entweder du blockierst die
scans nicht, oder du machst es, oder du läßt einen äußeren Befehl laufen.
Dann wählst du den Weg, um die Route fallenzulassen, entweder leitest du den
Angreifer auf eine ungenutzte IPadresse von deinem Netzwerk um oder zu einem
Paketfilter (Firewall).
Der folgende Schritt betrifft TCPWrappers. Das heißt, du entscheidest (oder
nicht), einen DEMENTATIONSTEXT in die /etc/hosts.deny Datei zu schreiben.
Als nächstes kannst du definieren, einen äußeren Befehl laufen zu lassen und
schließlich kannst du einen Auslösewert für den scan (default ist 0) auswählen.
Das ist alles, was du tun mußt! Wir nehmen an, daß du alles über
logging weißt, da, offensichtlich, alle Alarme gelockt sind. Das bedeutet, du
kannst deine syslog.conf Datei verändern, wenn du die eventuellen Alarme
anderwohin haben willst als nach /var/log/messages oder
var/log/syslog oder /var/adm/messages...
Du kannst jetzt portsentry im Hintergrund mit der Option deiner Wahl laufen
lassen. Die verfügbaren Optionen hängen von deinem System ab: du bist in der
Lage,-tcp, -udp auf den meisten Unixsystemen und -atcp, -audp auf Linuxrechnern
("a" für advanced (fortgeschritten)) zu benutzen.
Laßt uns einen Blick auf das Ergebnis werfen, wenn eine Maschine gescannt wird,
auf der portsentry läuft.
Hier können wir nicht über Werkzeuge reden. Scripting ist eine der
Hauptfähigkeiten eines jeden Systemadministrators. Shellskripte, Perlskripte...
sind Teil deines täglichen Jobs, wenn du Netzwerke verwaltest.
Natürlich können Skripte dazu benutzt werden, um Aufgaben zu
automatisieren, aber genausogut zur Sicherheitsüberwachung. Jeder
Systemadministrator hat seine eigenen Bedürfnisse und er versucht immer, sie so
zu verwalten, wie sie für ihn am besten passen. Das ist nicht immer leicht.
Etwas kann helfen: abonniere das SysAdmin
Magazin! Diese Zeitschrift wird von Systemadministratoren für
Systemadministratoren gemacht und versorgt dich mit einer Menge Programmen,
Skripten... Du kannst sogar eine CD-ROM bekommen, die alle vorherigen Ausgaben
enthält und natürlich alle bisherigen Programme oder Skripte.
Dies ist keine Werbung... es ist ein Weg, um mehr Lösungen zu finden, um die
Sicherheit zu verbessern. Schau sie dir an auf http://www.samag.com.
Wenn du ein Systemadministrator bist, laß uns sagen, es ist einen Versuch wert.
Nun, es ist nur ein Vorschlag.
Es gibt noch vieles über Sicherheit hinzuzufügen, aber wie wir vorher schon
sagten, ist dieser Artikel kein "Wie sichere ich mein Netzwerk". Ein Buch zu
diesem Thema wäre nicht ausreichend. Sicherheit hängt nicht nur von Werkzeugen
ab, es ist auch eine Verhaltensweise (gewissermaßen). Zum Beispiel machen mich einige
übliche Verhaltensweisen verrückt. Wann werden die Leute verstehen, daß
M$ Office Dateien wie Bomben sind? Sie sind nicht nur "enorm" in ihrer Größe,
sondern potentiell voll von Makroviren. Bitte, Wintelbenutzer, SCHICKT KEINE
Word oder Excel Dokumente als Mailattachments. Weiterhin, wenn du welche
empfängst, ÖFFNE sie NICHT: dies ist nur ein Vorschlag, aber du wurdest gewarnt!
Sie sind so gefährlich (ich sollte sagen gefährlicher!) als irgendein
ausführbares Programm, das du erhälst (oder herunterlädst), Und, wo wir schon
dabei sind, einfacher Text oder HTML Dokumente sind viel kleiner in der Größe
als Officedokumente und sie sind NICHT gefährlich!
Natürlich, ich weiß, die Wintelwelt arbeitet auf diese Weise: wenn du einen
einzigen Treiber herunterlädst, ist es immer ein ausführbares Programm! Laßt uns
zugeben, wir können den großen Firmen vertrauen... aber weißt du, was mit den
Archiven geschehen sein könnte, die du herunterlädst? Sicher, es ist eine
paranoide Art des Denkens, aber ist es so verrückt? Warum denkst du, haben viele
Archive Prüfsummen, um die Autentizität zu prüfen?
Das folgende "verletzt" vielleicht viele Leute, aber es ist eine Tatsache: JAVA
ist gefährlich! Applets sind unsicher, Javaskripte sind unsicher. Trotzdem wäre
es interessant zu wissen, wieviele Webseiten Java benutzen! Weiter ist Java eine
Quelle von Problemen, wenn man eine Seite besucht: wieviele von ihnen lassen
deinen Browser einfrieren. Ist das das Ziel einer Webseite?
Laßt uns nicht über ActiveX von der Redmondarmee reden!
Vorschlag: benutz Rebol stattdessen(http://www.rebol.com)
Da wir gerade beim Thema sind: bitte, neue Internet-"professionelle", hört auf,
Webseiten zu erstellen, die nur der Wintelwelt und IE5 gewidmet sind! Mir ist
klar, daß dies weitverbreitet ist, jedoch surfen viele Leute im
Internet mit anderen Betriebssystemen und vielen verschiedenen Browsern.
So zu arbeiten, wie du es machst, hält viele Leute vom Besuch deiner Webseite ab. Das
Ziel des Internets ist es, zu teilen. Proprietäre Dinge zu benutzen, ist Unsinn.
Nach meiner bescheidenen Meinung ist das erste, was man beim Erstellen einer
Webseite machen sollte, es mit verschiedenen Betriebssystemen und verschiedenen
Browsern zu testen... aber dies ist nur meine Meinung. Nur zur Information: wenn
du dich zu solch einer Webseite mit einem Unixrechner verbindest und sagen wir
Netscape, kann man noch nicht mal die Indexseite sehen!
Entschuldigung für die Abschweifung.
Ein weiterer wichtiger Punkt ist es, sich daran zu erinnern, daß die Sicherheit
keine 100% erreichen wird. Wir sind weit davon entfernt. Du kannst sie
verbessern, das ist alles: das ist eine Tatsache. Zum Beispiel kannst du alle
Werkzeuge benutzen, die wir hier erwähnt haben und trotzdem eine Hintertür weit
offen lassen. Laß dich nicht hereinlegen: Cracker werden nicht zuerst versuchen,
einen 128 bit Schlüssel zu knacken, sondern sie werden versuchen, irgendwosonst
ein kleines Loch zu finden. Deshalb sei mit Programmen wie SUID oder SGID
vorsichtig, mit Zugriffsrechten, mit nutzlos laufenden Diensten, mit
gestrichenen Accounts usw.
Wenn die verschiedenen Unixsysteme viele Gemeinsamkeiten haben, so sind sie sehr
verschieden, was die Sicherheit betrifft. Einige von ihnen sind wie Siebe! Du mußt dir
darüber auch im klaren sein. Zum Beispiel ist es großartig, eine
Internetkabelverbindung mit einer Standardwindowsirgendwasmaschine zu haben: das
heißt, du kannst das Icon von einer Cracker Maschine im
Nachbarschaftsnetzwerk haben... und bald liefert dir M$ ein Bild des Crackers!
Ich mache bloß Spaß...
Die Straße zu Netzwerk- und Computersicherheit ist eine sehr lange. Wenn du dich
dafür interessierst, wirst du jeden Tag etwas lernen. Glücklicherweise gibt es
eine Menge Quellen, um Informationen zu bekommen. Hier sind einige von ihnen.
http://www.linuxsecurity.com ist die erste
Goldmine. Hier findest du beinahe alles!
http://www.sans.org ist der Ort, um Hilfe und
Informationen über Sicherheit zu bekommen. Eine Seite, die du regelmäßig
konsultieren solltest.
http://www.infosyssec.org
ist ein weiterer Ort, um tonnenweise Informationen über Sicherheit zu bekommen.
http://www.securityfocus.com ist die Homepage
von Bugtraq und liefert auf diese Weise eine Menge an Sicherheitsinformationen.
http://www.cs.purdue.edu/coast/hotlist/
DIE Seite, die du besuchen mußt!
Oben auf der Seite findest du einen "Links" Knopf: klicke darauf, um die
Adressen der meisten Distributoren zu erhalten. Die Konsultation ihrer Seite
ist obligatorisch, um Informationen über Sicherheitspatche zu bekommen. Dies
gilt für jeden Unixeditor! Viele von ihnen geben Sicherheits- oder empfohlene
Patches regelmäßig bekannt.
Viele Artikel aus früheren LinuxFocusausgaben sind es wert, sie zu lesen
(zusätzlich zu den von mir bereits genannten):
Verbessern der Systemsicherheit
gebräuchlicher Linuxdistributionen
TCPD und Firewalls unter Verwendung von
IPFWADM
VXE, mehr Sicherheit unter Linux
Viel mehr an Dokumentation ist verfügbar und wir können nicht alle
existierenden Links liefern. Auch können wir nicht alle freien
Sicherheitswerkzeuge erwähnen, wie schon gesagt. Auf jeder hier erwähnten Seite
wirst du weitere Links finden, die dich zu noch mehr Links schicken...
wie russische Püppchen.
Die Tatsache, daß einige Werkzeuge oder Seiten in diesem Artikel nicht erwähnt
werden, heißt nicht, daß sie nicht von Interesse sind.es heißt nur, daß die
Werkzeuge nicht von mir getestet wurden. Offensichtlich muß man eine
willkürliche Auswahl unter den hunderten von verfügbaren Werkzeugen treffen.
Das Ziel dieses Artikels ist es, die Leser mit Orten, von denen man aus
anfangen kann, zu versorgen. Wir hoffen, daß es helfen wird.