staging.inyokaproject.org

Server

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

Dieser Artikel beschäftigt sich mit den besonderen Erfordernissen für die Sicherheit von Servern, die nicht nur aus dem lokalen Netz zu erreichen sind, sondern auch aus dem Internet. So etwas kann man zu Hause einrichten oder man mietet sich einen virtuellen oder Root-Server bei einem Hosting-Provider. Die Heimlösung ist preiswerter, dafür ist die Anbindung in der Regel schlechter, insbesondere die Senderate ("upload rate"). Es gibt meist eine Zwangstrennung alle 24 Stunden, und man muss die Namensauflösung über einen DynDNS-Service schalten. Was die Sicherheit betrifft, läuft aber beides auf das Gleiche hinaus.

Server-Administration ist nichts für Anfänger

Um es vorweg zu nehmen: Die Administration eines Servers, der Internetdienste bereitstellen soll, ist nichts für Anfänger! Ohne Ahnung von der Materie, nur über die vom Hoster bereitgestellte Weboberfläche, ist ein gemieteter Server nicht angemessen zu betreiben. Frei im Netz herumstehend mit einer Anbindung, von der ein Normalsterblicher nur träumen kann, stellt er falsch konfiguriert eine erhebliche Gefahr dar - sowohl für den Eigentümer als auch für die restlichen Benutzer im Internet. Genauso wenig kann man sich darauf verlassen, dass der eigene Heimserver an der DSL-Leitung "einfach nicht gefunden wird". Viel zu viele Leute verlassen sich darauf, dass Linux "einfach sicher" ist. Früher oder später wird ihr Server "gehackt" und für illegale Zwecke verwendet oder es werden zumindest die darauf gespeicherten Daten gestohlen.

Gestohlene Daten verursachen zwar keine Kosten, aber private Daten (wie Bilder und Dokumente) sind in den Händen von Leuten, für die sie nicht bestimmt sind oder - schlimmer - werden unkontrolliert im Internet verbreitet.

Wird ein gemieteter Server gehackt, können zusätzliche Kosten entstehen, weil darüber vielleicht viel mehr Datenverkehr läuft, als vom Mietvertrag abgedeckt wird. Beispiel: Ein "Hacker" lädt diverse DVD-Image oder Filmdateien auf einen Server, den er kompromittieren konnte, und verteilt den Download-Link. Dadurch können etliche Terabyte an Datenverkehr entstehen.

Zusätzlich kann man sich leicht noch Ärger mit der Polizei oder der Staatsanwaltschaft einhandeln, wenn es sich bei den verteilten Daten um illegale Ware wie Raubkopien, radikale Propaganda oder Kinderpornografie handelt oder wenn vom gehackten Server Angriffe auf weitere Maschinen im Netz gestartet werden (DDoS), was fast immer der Fall ist. In diesem Falle kann man sich auch nicht auf den Vermieter oder Anbieter berufen, da man für die Sicherheit auf einem gemieteten Server selbst verantwortlich ist und dies so im Vertrag hinterlegt ist.

Wer sich also noch nicht mehr oder weniger ausführlich mit Unix bzw. Linux beschäftigt hat, insbesondere mit der Kommandozeile und Konfigurationsdateien, der sollte sich ernsthaft überlegen, bei einem "gemanageten" Hosting-Angebot zu bleiben. Der Begriff Managed Server bedeutet, dass man nur die Leistung und "Befehlsgewalt" über einen Server hat. Um die Systemkonfiguration, Sicherheit und dergleichen kümmert sich der Anbieter. Selbstverständlich sind solche Angebote teurer als einfache Rootserver. Dafür erhält man aber auch eine adäquate Gegenleistung: Man braucht sich quasi um nichts zu kümmern – und das Schadensrisiko liegt beim Anbieter.

Noch aktueller sein

Als erstes gilt: Noch schneller und gewissenhafter mit Systemaktualisierungen umgehen als bei einem Desktop-System. Spätestens jetzt sollte man die betreffende Sicherheits-Mailingliste der auf dem Server verwendeten Distribution abonnieren, ebenso wie die betreffenden Mailinglisten aller Softwarepakete, die man zusätzlich installiert. Gerade Gameserver, Content-Management-Systeme und Wikis - also Dinge, die man sehr häufig auf eigenen Servern installieren möchte - werden häufig nicht gerade mit dem Hauptaugenmerk auf Sicherheit entwickelt, und es werden regelmäßig schwerwiegende Lücken gefunden, die dann oft innerhalb kürzester Zeit auch im größeren Umfang ausgenutzt werden. Das einzige, was einen davor schützen kann, ist immer "up to date" zu sein.

Einen Plan erstellen

Bevor man einen Server aufsetzt, sollte man einen Plan erstellen, was man mit diesem Server eigentlich erreichen will und welche Software man dafür benötigt. Für die meisten Zwecke gibt es unter Linux durchaus mehrere Alternativen, von denen man sich unter folgenden Kriterien eine aussuchen sollte:

  • Was für Ausstattungsmerkmale benötigt man? Welche Software bietet diese, und am besten nur diese, Merkmale?

  • Was für eine Sicherheitsgeschichte bzw. Ruf hat eine Software? Gehört Sicherheit zu den erklärten Designzielen?

  • Reichen die eigenen Fähigkeiten aus um die Konfiguration der Software zu verstehen bzw. die Software zu beherrschen?

  • Wird die Software von der Distribution unterstützt? (Das trifft im Falle von Ubuntu nur auf die Pakete des main-Repositories uneingeschränkt zu!)

Am besten setzt man zu Hause im abgeschlossenen Netzwerk einen Testserver auf, an dem man erstmal gefahrlos rumprobieren kann. Insbesondere sollte man den Server auch auf seine Sicherheit überprüfen, u.a. mit einem Portscan. Wenn der Server beweglich ist (soll heißen, er steht nicht in einem Rechenzentrum), kann man ihn auch im lokalen Netz installieren und dann erst im fertigen Zustand mit dem Internet verbinden.

Sichere Authentifizierung

Noch viel wichtiger als bei einem relativ unangreifbaren Desktop-System ist bei einem Server die sichere Authentifizierung. SSH-Zugänge sollten entweder für sehr komplexe Passwörter - oder aber besser noch passwortlos für das PublicKey-Verfahren konfiguriert werden. Für Dienste, bei denen man um Passwörter nicht herum kommt, gelten die gleichen Richtlinien wie in Sicherheits-Einmaleins/Passwörter und müssen besonders ernst genommen werden. Wer einmal einen Server administriert hat (und die Logs ab und zu gelesen hat), der weiß, wie häufig Fremde aus Übersee mit Attacken durch einfaches Raten schwache Passwörter zu finden versuchen.

Ferner sollte man beachten, wenn der Server außer Haus steht, dass keine Passwörter im Klartext übermittelt werden. Insbesondere zur Administration sollte man das ssh2-Protokoll (openssh) verwenden, das von Haus aus eine starke Verschlüsselung bietet. Mit den Befehlen scp und sftp kann man über dieses Protokoll auch Dateitransfers durchführen, so dass man auf den unsicheren FTP-Dienst ebenfalls verzichten kann. Einige grafische FTP-Programme wie z.B. gFTP oder FileZilla unterstützen ebenfalls das ssh-Protokoll (siehe auch FTP).

Andere Dienste können mit wenig Aufwand zur Benutzung von SSL-Verschlüsselung konfiguriert werden, was unbedingt gemacht werden sollte.

Firewall

Wer Serverdienste im Internet zur Verfügung stellt, der sollte die zugehörigen Rechner auf keinen Fall im internen, vertrauenswürdigen Netzwerk platzieren, wo er auch lokale Dienste wie CUPS, Samba, NFS, etc. laufen hat. Die Gefahr ist zu groß, dass doch mal in den Server eingebrochen wird, und dann verfügt der Angreifer über einen perfekten Brückenkopf ins private Netz. Wenn man seine Serverdienste also nicht von einem dedizierten Server aus einem Rechenzentrum anbietet, sondern von zu Hause bzw. vom Büro aus, dann sollte man den oder die Server mit Hilfe einer Firewall in eine Demilitarisierte Zone (DMZ) einsperren.

Diese sollte sowohl vom Internet als auch vom privaten Netz so weit wie möglich abgeschottet werden, d.h. nur solche Verbindungen, die dem Zweck des Servers dienen oder für die Administration essentiell sind, sollten erlaubt werden.

Außerdem sollten auf der Firewall alle ungewöhnlichen Verbindungen, besonders wenn sie von der DMZ ausgehen, ausführlich protokolliert werden (und die Protokolle auch regelmäßig gelesen werden), um Einbrüche kurzfristig erkennen zu können. Hierbei hilft auch die Installation von Intrusion Detection Systemen (IDS) bzw. Intrusion Prevention Systemen (IPS). In den Ubuntu-Paketquellen findet man dazu bspw. tripwire und Aide als prüfsummenbasierte Host-IDSe sowie snort als signaturbasiertes Netzwerk-IDS.

Diese Revision wurde am 14. Januar 2022 15:02 von noisefloor erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Internet, Sicherheit, SSH, Passwort, Netzwerk, Firewall, root-server