Dieses Posting ging vor einigen Jahren durchs Usenet und wurde so oft wiederholt, weil es einfach so ziemlich alles abdeckt, was man an Dokumentationen zum Thema UNIX-Security findet, daß ich es hier einfach noch mal abdrucke -- allerdings in übersetzter Version.
Man kann als Linux-User, der nur mal kurz gucken möchte, ob er irgendwelche Scheunentore offen hat auch einfach mal bei http://www.nessus.org/nessus/ vorbeischauen. Nessus ist eine Sammlung von Angriffsmethoden, die unter einer angenehmen Oberfläche verpackt sind und Standardmethoden, wie sendmail-bugs, buffer overflows in suid root Programmen, usw. prüfen. Auch DenialOfService-Angriffe sind hiermit steuerbar... man sollte aber trotzdem wissen, was man tut, dieses Programm ist nichts für "script kiddies".
So, jetzt das Posting in übersetzter Version. Dies ist für Leute gedacht, die sich wirklich ernsthaft mit der Materie beschäftigen wollen/müssen (weil sie z.B. einen Firewall einrichten wollen/müssen und das auch in die berufliche Richtung so in etwa paßt. Hierfür sollte schon mal einige Wochenenden investiert werden -- aber danach hat man so ziemlich alles auf dem Kerbholz, was es in dieser Richtung gibt. Und solches Wissen wird heute *sehr* *sehr* gut bezahlt...
Inhaltsverzeichnis
1. Vorarbeit
So, jetzt das Posting in übersetzter Version. Dies ist für Leute gedacht, die sich wirklich ernsthaft mit der Materie beschäftigen wollen/müssen (weil sie z.B. einen Firewall einrichten wollen/müssen und das auch in die berufliche Richtung so in etwa paßt. Hierfür sollte schon mal einige Wochenenden investiert werden -- aber danach hat man so ziemlich alles auf dem Kerbholz, was es in dieser Richtung gibt. Und solches Wissen wird heute sehr sehr gut bezahlt...
- Besorg Dir Linux oder/und FreeBSD in einer aktuellen Version, am besten beides
- Besorg Dir drei bis fünf billigst-486 Rechner mit Netzwerkkarten
- Besorg Dir mindestens eines der Bücher von Spafford, Bellovin, Cheswick, Rubin oder Ranum
- Besorg Dir das "Camel" und das "Llama" Buch über PERL
- Besorg Dir das Buch über TCP/IP von OReilly
So, wenn du damit ausgerüstet bist, können die Grundlagen gelegt werden:
- Installiere Linux/FreeBSD in verschiedenen Konfigurationen auf den Rechnern (mit verschiedenen Serverdiensten, mit/ohne NIS/NFS, mit/ohne sendmail, usw)
- Erstelle auf jeder der Rechner mindestens fünf Benutzeraccounts
- Gebe diesen Benutzeraccounts verschiedene Rechte (via Gruppen z.B.)
- Konfiguriere sämtliche Softwarepakete so, daß sie funktionieren und etwas zu tun haben; dafür gibt es Scriptsammlungen, die eine festgelegte oder unregelmäßige Last z.B. auf einem Webserver erzeugen
Besorg Dir eines oder mehrere der Tools SAFESuite, einen alten ISS, Satan, SAINT, oder/und NESSUS
BEVOR Du eines dieser Tools benutzt und/oder einsetzt, lese die Dokumentationen zu dem Programm und versuche zu verstehen was dieses Programm für eine Sicherheitslücke versucht auszunutzen. Dann probiere dies nicht mit dem Tool, sondern manuell!
- Besorge Dir sämtliche Sicherheits-Checklisten, Dokumente, Programme etc. die sich bei den genanngen URLs befinden; lese die Dokumentationen zu den Programmen und lerne sie zu benutzen:
ftp://ftp.auscert.org.au/pub/auscert/papers/unix_security_checklist (AUSCERT UNIX SECURITY CHECKLIST)
http://stimpy.cac.washington.edu/~dittrich/R870/security-checklist.html (UNIX SECURITY CHECKLISTS)
http://stimpy.cac.washington.edu/~dittrich/R870/rfc1244.txt (SITE SECURITY HANDBOOK (RFC 1244))
http://stimpy.cac.washington.edu/~dittrich/R870/SRI-Whitepaper.ps
Wenn Du damit durch bist, gönne Dir ein Bier und einen erholsamen Abend. Du hast heute jede Menge gelernt
2. Programmierung und Mailinglisten
So, weiter im Takt:
ftp://info.cert.org/pub/tech_tips/intruder_detection_checklist (INTRUSION DETECTION CHECKLIST)
http://www.trouble.org/survey/ (FARMERS SURVERY ON VARIOUS HOSTS)
http://www.trouble.org/security/admin-guide-to-cracking.html (IMPROVING THE SECURITY OF YOUR SITE BY BREAKING INTO IT)
http://www.trouble.org/security/murphy.html (MURPHYS LAW AND COMPUTER SECURITY)
http://ciac.llnl.gov/ciac/documents/CIAC-2308_Securing_Internet_Information_Servers.pdf
http://ciac.llnl.gov/ciac/documents/CIAC-2316_Securing_X_Windows.pdf (SECURING X-WINDOW)
http://ciac.llnl.gov/ciac/documents/CIAC-2305_UNIX_Incident_Guide_How_to_Detect_an_Intrusion.pdf (HOW TO DETECT AN INTRUSION)
Du bist soeben um einen weiteren riesigen Haufen Informationen zum Thema Sicherheit reicher geworden. Jetzt gehts ans Eingemachte: die BugTRAQ Archive. Gehe auf http://www.securityfocus.com/ und lese das komplette Archiv dieser Mailingliste, versuche jeden Exploit nachzuvollziehen und ggf. nachzuahmen.
Jetzt geh an deine Arbeitsmaschine, die natürlich in keinster Weise mit den drei bis fünf Bastelrechnern verbunden ist (!!!), und trage Dich in alle möglichen bekannten Security-Mailinglisten ein. Beispiele wären BUGTRAQ, CIAC, CERT, und so weiter. Lese die dortigen Posts und versuche die Quellcodes, die garantiert schnell auftauchen werden, zu kompilieren und gegen einen deiner Rechner auszuführen. (Transport mit Disketten oder via kurz angestecktem Netzwerkkabel -- dieses sollte aber auf keinen Fall stecken, während Du irgendwelche Attacken ausprobierst, denn eine falsche IP ist schnell mal eingegeben (oops, Tippfehler) und man hat einen wütenden Nachbarn/ISP/.. auf dem Hals!)
Merke Dir eMail-Adressen von Leuten, die in diesen Mailinglisten oft auftauchen. Erstelle Dir eine Liste von diesen eMail-Adressen und suche in http://groups.google.com/, in welchen Gruppen noch zu diesem Thema geschrieben wird. Komme ja nicht auf die Idee, diesen Leuten eMails zu schreiben -- die haben genug um die Ohren!. Beispiele wären Farmer, Venema, Spafford, Ranum, usw. Lese ihre Homepages (falls vorhanden) und Ideen zum Thema, und versuche sie zu verstehen und nachzuvollziehen.
Versuche dich in Socket-Programmierung einzuarbeiten. Dies hilft sehr viel beim Ausspionieren von sicherheitsrelevanten Bugs in Programmen.
Gehe in einen Second-Hand EDV-Bücherladen (wenns sowas bei Dir gibt und versuche alle möglichen Manuals von allen möglichen auch älteren UNIX Systemen aufzutreiben, wie AIX, HPUX, Unicos, IRIX, Data General, SunOS, Solaris, XENIX, SYS V, usw. Bücher zum Thema Systemadministration aus der Zeit sind auch nicht zu verachten. Je mehr, desto besser -- und die Bücher sind meist spottbillig.
Versuche dich in mindestens die Grundlagen dieser Programmier- und Skriptsprachen einzuarbeiten:
- Perl
- awk, gawk, nawk
- sed
- expect
Es hilft ungemein, wenn man bestimmte Aktivitäten (z.B. Parsing von syslog-Ausgaben) kurz mal automatisieren (i.e. einem Perlskript vor die Füße schmeißen) kann. Das geht aber nur, wenn man sich in die Grundlagen schon einmal eingearbeitet hat. Bau dir anhand der oben gekauften Manuals eine Tabelle, in der die groben Unterschiede und Gemeinsamkeiten der verschiedenen UNIX-Varianten gegenübergestellt werden. Mache das gleiche für die verschiedenen Shells, die es gibt (bash, csh, tcsh, sh, ...).
3. LinuxSicherheitsAspekteLiteratur
4. Fazit
So, jetzt brauchst Du noch die entsprechenden Programme um ein paar Experimente durchzuführen. Die gibt es bei http://ciac.llnl.gov/ciac/SecurityTools.html.
Eigentlich sollte das für den Anfang(*) ausreichen. Das Ziel, das Du anfangs verfolgen solltest, ist erstmal die alten Probleme und deren Lösungen zu verstehen und nachzuvollziehen, damit Du bei den neueren dann Kontext, Herkunft und vielleicht Vorgeschichte besser verstehst. Es wird keiner von Dir verlangen, daß du das unheimlich komplexe Feld namens "UNIX Security" in einem Tag (oder einer Woche oder einem Monat) gemeistert hast.
(*) ha, ha, ha... wer sich als Admin nicht STÄNDIG weiterbildet, hat schon verloren!
Die Hauptbereiche, mit denen Du dich beschäftigen solltest, sind folgende:
- NFS - Network File System
Sämtliche r services
- Passwörter und deren Verteilung/Behandlung/.. (Stichworte: NIS, Kerberos, DES, shadow, etc...)
- Spoofing
- Routing
- Firewalls
- CGI (falls Du dich mit Webservern beschäftigen wirst)
Der TIS FIREWALL TOOLKIT könnte jetzt von Nutzen sein. Mußt Du selbst entscheiden.