"Server lernen" @bitmuncher und andere

Guten alle zusammen,

ich bin seit längerem stiller Mitleser und konnte bereits rauslesen, dass der Benutzer bitmuncher sich selbständig in den Bereich Server-Administration eingearbeitet hat. Ich habe einige Fragen zu dem Thema und würde mich freuen, wenn er antwortet. Natürlich freue ich mich auch über jede andere Antwort von Leuten die Praxiserfahrung im Bereich der Server-Administration besitzen.

Kurz zu mir und worum es geht:

Ich studiere technische informatik mit Schwerpunkt im Bereich der Robotik. Ich habe eine Idee für eine - zunächst kleine - Selbständigkeit die ich - alleine - von Zuhause aus betreiben könnte und für die ich eigene Server betreiben und administrieren müsste, weil dort ein Produkt aus dem Bereich der Robotik von mir laufen muss (dazu brauche ich bspw. Web-, Mail, und einen VPN Server).

Ich habe leider außer einem Praktikum im Bereich der Server Administration und sehr spezifische Unix Kenntnisse im Bereich der Sysprogrammierung eben bedingt durch mein Studium keinerlei Kenntnisse die mir im Bereich der Server Administration nützlich sein könnten. Ok, im Studium habe mich mit zwei Modulen beschäftigt, die vll. etwas Hintergrundwissen liefern - Rechnernetze und Internetprotokolle, aber das reicht nicht mal Ansatzweise.

Ich weiß das ein Server kein Spielzeug ist und ich traue es mir zurzeit auch nicht zu, dieses Vorhaben zu realisieren. Wenn es irgendwelche Probleme gibt, bin ich ja praktisch Chancenlos und ich möchte gerne wissen, was ich tue. Es ist mir also völlig klar das ich 2-3 Jahre Selbststudium einplanen muss und mich erstmal in einer VM austoben muss, bevor überhaupt irgendetwas Online geht.

Daher meine Fragen:

Wie geht man vor, wenn man sich selbst Wissen in dem Bereich aneignen will? Mir ist klar das Serveradministration viel learning by doing ist, aber ich brauche ja einen Grundstock wie ich Dienste aufsetze, überwache (welche Tools usw. es dafür gibt), wie ich Backups mache, wie ich mich generell im System zurecht finde. Wie ich Server-Dienste absichere im Punkto Sicherheit usw. usf. Welches Betriebssystem ratsam ist (Linux, oder eher OpenBSD?). uvm.

Habt ihr Empfehlungen, wie man da vor gehen kann? Gibt es Standard-Lektüren, Manuals usw. die man in jedem Fall gelesen habe sollte - ob Englisch oder Deutsch ist egal.

Ich freue mich über jeden Tipp, Ratschlag und jede Empfehlung.

Viele Grüße euch.
 
Zuletzt bearbeitet:
Ich habe gute 7 Jahre OpenBSD Administration betrieben mit ~35 Kisten in den Hochzeiten.

Nach meiner Erfahrung kann man sowas nicht in Kursen oder Workshops und schon gar nicht aus Büchern lernen, sondern nur in der Praxis - und zwar in einem produktiven Umfeld. Eine Kiste aufzusetzen und einzurichten kann jeder Depp, der halbwegs lesen kann. Die Qualitaet eines Admins zeigt sich (so meine Meinung und Erfahrung) darin, dass er ungewöhnliches im Netzwerk und an den Maschinen bemerkt. Um etwas sehr feines zu bemerken, braucht es Erfahrung darüber, wie das eigene Netzwerk und Maschinen sich im "normalen" Betrieb" oder unter Stress verhalten. Dann kommt die weitere wichtige Eigenschaft, nämlich sich gemäß der Auffälligkeit richtig zu verhalten. Hier ist der Admin, der sich irgendwann mal aus lauter masochismus TCP/IP network Stacks und sonstiges angesehen hat, weit im Vorteil. Denn die Kenntnis über _grundlegende_ Netzwerkfunktionen hilft ungemein bei der Identifizierung von Fehlern. Jeder, der schonmal DNS Kisten managen musste, wird mir zustimmen dass man nur wirklich gut agieren kann, wenn man mal so pervers war BIND und co. im Detail unter die Haube zu gucken, bzw nachzusehen was ueberhaupt im Traffic steckt (denn, tatsaechlich, es gibt weitaus mehr DNS traffic als A/AAAA/CNAME und MX lookups. Für die Überwachung von Diensten ist scripting unabdingbar.

Also - in aller Kürze: Kisten managen und gut beobachten ;)
 
Ich will Chromatin da mal widersprechen, denn ich halte eine produktive Umgebung, die sich am Internet befindet, keineswegs für den richtigen Einstieg. Da hat man sich schneller einen Bot eingefangen als man gucken kann und bemerkt es dann oft aufgrund mangelnder Kenntnisse nicht.

Zuerstmal sollte man sich mit dem System auseinandersetzen, das man einsetzen will und das zugehörige Handbuch zumindest grundlegend gelesen und verstanden haben. D.h.: Benutzt man ein Debian, sollte man das Debian-Handbuch lesen, nutzt man FreeBSD das FreeBSD-Handbuch. Gerade bei Linux hat mir LinuxFromScratch - Welcome to Linux From Scratch! - einen relativ schnellen Einblick in die vorhandenen Tools und ihre Anwendungsbereiche sowie deren Konfiguration gegeben. Daher empfehle ich eigentlich jedem werdenden Linux-Admin sich mal ein LFS aufzusetzen und dieses zu einem funktionierenden Server auszubauen. Kann man ja auch in einer VM tun. Dadurch lernt man auch gleich wie das Kompilieren von Software aus dem Source funktioniert und worauf man dabei achten muss.

Ausserdem sollte man sich mit der Server-Software auseinandersetzen, die man einzusetzen gedenkt. Auch hier helfen Handbücher durchaus weiter und natürlich ist eine Erstinstallation in einer VM oder auf irgendeinem alten Rechner brauchbar um die ersten Grundlagen zu lernen.

Die nächsten Schritte sollten das Erlernen von Themen wie Absicherung von Servern und Auswerten von Log-Informationen sein. Dazu ist es hilfreich einfach mal ein paar Dinge in seinem Test-System zu "zerschiessen". Also mal Fehler in die Konfigs einbauen und schauen wie die Logs darauf reagieren. Mit einem passenden Client mal ungültige Anfragen an den Server senden und schauen wie der Server reagiert usw.. Dadurch bekommt man ein erstes Gespür für die Fehlersuche in Logs. Für eine wichtige Fähigkeit halte ich auch das Suchen von Infos in den Logs. Dabei ist es hilfreich sein Testsystem mal mit vielen Anfragen zu bombardieren, unter denen sich ein paar fehlerhafte befinden. Dann kann man sich mit Tools wie grep, awk und ähnlichem ransetzen und die fehlerhaften Anfragen in den Logs suchen.
Ist man damit durch kann man sich Dinge wie Firewall, IDS/IPS, RBAC usw. anschauen um sein System zu sichern. Auch diese sollte man in einer Testumgebung einrichten und mal etwas damit rumspielen.

Und zu guter Letzt sollte man mal ein paar Monitoring-Tools wie Nagios/Icinga, Munin, Monit, rkhunter u.ä. ausprobieren und damit ein Monitoring für seine Test-Umgebung aufsetzen. Auch die Einrichtung eines Backups ist durchaus hilfreich, wobei man auch mal ein paar Skripte dafür selbst schreiben sollte um erste Schritte mit einer Skript-Sprache wie Bash, Perl o.ä. zu machen.

Ab diesem Punkt sollte man die grundlegenden Fähigkeiten erlernt haben um erste Schritte "in the wild" machen zu können. Wichtig ist beim Erlernen des Umgangs mit Servern ein gewisser Spieltrieb. Lass deiner Kreativität freien Lauf beim Verursachen von Fehlern und beobachte genau wie die Server darauf reagieren.
 
Ich bin dafür das Chro und bit gemeinsam nen Kurs anbieten "Server für Einsteiger" ;)

So, Scherz beiseite. Mit was sollte man denn bei der VM anfangen? Es gibt ja verschiedene VMs, gibts da welche die ihr empfehlen könntet? Und was ist mit Server und Co ( Tools/.. ), habt ihr da ein paar Tipps?

Danke!
 
Ich hab recht gute Erfahrungen mit VirtualBox als VM-Software gemacht.
Bei der Software, die du einsetzen willst, kommt es ein wenig auf den Einsatzzweck aber auch auf deinen persönlichen Geschmack an. Für Webserver ist Apache der Quasi-Standard. Allerdings setzt sich auch Nginx mehr und mehr durch. Für Leichtgewicht-Konfigurationen lohnt sich ein Blick auf lighttpd, vor allem, wenn man kein PHP o.ä. braucht.
Bei VPN wirst du kaum an OpenVPN vorbeikommen, wenn du nicht auf kommerzielle Software oder Appliances zurückgreifen willst.
Mailserver sind sehr Geschmackssache. Als Komplettlösung bietet sich Qmail an. Willst du eher was "modulares" können Postfix und Exim4 die SMTP-Funktionalitäten übernehmen. Dovecot und Courier bieten recht brauchbare IMAP- und POP3-Server.
 
Vielen Dank @Chromatin und @Bitmuncher
Für eure Ausführungen. Dann weiß ich nun, wo ich anzufangen habe.

Viele Grüß euch
 
Ist es denn unbedingt notwendig, dafür einen eigenen Server zu betreiben? Es gibt zig Anbieter "fertiger" Lösung für Exchange, Webhosting oder VPN. Außerdem gibt es noch Managed-Server, die zwar teuer sind, aber die in solch einem Fall deutlich mehr Sinn machen, als sich jetzt noch 2 Jahre mit etwas auseinanderzusetzen, dass dir überhaupt nichts bringt und für dich und deine Idee letzten Endes mehr als nur Zeitverschwendung ist.
 
Ich selbst und die meisten anderen Linuxadmins, die ich so kenne, haben nicht direkt mit Server-Administration angefangen, sondern zuhause mit einer normalen Linux-Desktop-Umgebung ihre ersten Erfahrungen gemacht.

Da hatte man über die Zeit mit so vielen Problemen und "Linux-Eigenheiten" zu kämpfen gehabt, dass man nach nem Jahr ohnehin einigermaßen fit in der Administration war und wusste wie man Probleme analysieren und beheben kann. :D

Hat man sich dann noch etwas mit Netzwerk- und Sicherheitsthemen auseinandergesetzt war der Sprung zur Serveradministration gar nicht mehr so weit.
 
Ist es denn unbedingt notwendig, dafür einen eigenen Server zu betreiben?

Ja - weil ich nicht nur einen benötige und das an verschiedenen Standorten nicht nur in Deutschland. Das hängt mit dem Produkt zusammen, das u.a teilweise selbst als Serveranwendung läuft. Auch hierfür brauche ich die Erfahrung. Die zuvor genannten Dienste brauch ich ebenfalls, waren aber in erster Linie Beispiele.

Lg :)
 
Zurück
Oben