21 Stimmen

Absicherung eines Linux-Webservers für den öffentlichen Zugang

Ich möchte einen billigen Linux-Rechner als Webserver einrichten, um eine Reihe von Webtechnologien zu hosten (PHP und Java EE kommen mir in den Sinn, aber ich möchte in Zukunft auch mit Ruby oder Python experimentieren).

Ich kenne mich mit der Einrichtung von Tomcat unter Linux für die Bereitstellung von Java EE-Anwendungen recht gut aus, aber ich würde diesen Server gerne öffnen, und sei es nur, um einige Tools zu erstellen, die ich während meiner Arbeit im Büro verwenden kann. Alle Erfahrungen, die ich mit der Konfiguration von Java EE-Sites gemacht habe, betrafen Intranet-Anwendungen, bei denen wir uns nicht auf die Sicherung der Seiten für externe Benutzer konzentrieren sollten.

Was raten Sie, um einen persönlichen Linux-Webserver so sicher einzurichten, dass er für externen Datenverkehr zugänglich ist?

5voto

Dogmang Punkte 727

Es ist wichtig, sich an bewährte Sicherheitspraktiken zu halten, wo immer dies möglich ist, aber Sie wollen es sich nicht unnötig schwer machen oder sich den Kopf darüber zerbrechen, ob Sie mit den neuesten Sicherheitslücken Schritt halten können. Meiner Erfahrung nach gibt es zwei wichtige Dinge, die dazu beitragen können, dass Ihr persönlicher Server sicher genug ist, um ihn ins Internet zu stellen, ohne dass Sie Ihren Verstand verlieren:

1) Sicherheit durch Unklarheit

Es erübrigt sich zu erwähnen, dass es keine gute Idee ist, sich in der "realen Welt" darauf zu verlassen, und dass man sich nicht darauf einlassen sollte. Aber das liegt daran, dass in der realen Welt die Bösewichte wissen, was dort ist und dass es dort Beute zu holen gibt.

Auf einem privaten Server sind die meisten "Angriffe", die Sie erleiden, einfach automatische Durchsuchungen von bereits kompromittierten Rechnern, die nach Standardinstallationen von Produkten suchen, die als anfällig bekannt sind. Wenn Ihr Server nichts Verlockendes auf den Standard-Ports oder an den Standard-Speicherorten anbietet, wird der automatische Angreifer weiterziehen. Wenn Sie also einen SSH-Server betreiben wollen, sollten Sie ihn an einen nicht standardmäßigen Port (>1024) anschließen, damit er wahrscheinlich nicht gefunden wird. Wenn Sie diese Technik auch für Ihren Webserver anwenden können, sollten Sie auch diesen auf einen obskuren Port verlegen.

2) Paketverwaltung

Kompilieren und installieren Sie Apache oder sshd nicht selbst aus dem Quellcode, es sei denn, Sie müssen es unbedingt tun. Wenn Sie das tun, übernehmen Sie die Verantwortung dafür, mit den neuesten Sicherheitspatches auf dem Laufenden zu bleiben. Lassen Sie die netten Paketbetreuer von Linux-Distributionen wie Debian oder Ubuntu die Arbeit für Sie erledigen. Installieren Sie von den vorkompilierten Paketen der Distribution, und um auf dem neuesten Stand zu bleiben, brauchen Sie nur gelegentlich die apt-get update && apt-get -u dist-upgrade Kommando oder mit dem ausgefallenen GUI-Tool, das Ubuntu anbietet.

5voto

helloandre Punkte 10227

In diesem Artikel finden Sie einige der besten Möglichkeiten, Dinge zu sichern:

http://www.petefreitag.com/item/505.cfm

Einige Highlights:

  • Sicherstellen, dass niemand die Verzeichnisse durchsuchen kann
  • Stellen Sie sicher, dass nur Root Schreibrechte auf alles hat und nur Root Leserechte auf bestimmte Konfigurationsdateien hat
  • mod_security ausführen

Der Artikel enthält auch einige Hinweise aus diesem Buch:

Apache-Sicherheit (O'Reilly Press)

Was die Distributionen angeht, so habe ich Debain und Ubuntu benutzt, aber es hängt einfach davon ab, wie viel man machen will. Ich habe Debian ohne X laufen lassen und mich einfach per ssh eingeloggt, wann immer ich etwas brauchte. Das ist ein einfacher Weg, um den Overhead gering zu halten. Oder Ubuntu hat einige nette GUI-Dinge, die es einfach machen, Apache/MySQL/PHP zu kontrollieren.

2voto

icco Punkte 3033

Eine Sache, die Sie unbedingt berücksichtigen sollten, ist, welche Häfen für die Welt offen sind. Ich persönlich öffne nur Port 22 für SSH und Port 123 für ntpd. Wenn Sie jedoch Port 80 (http) oder ftp öffnen, sollten Sie zumindest wissen, was Sie der Welt zur Verfügung stellen und wer was damit machen kann. Ich weiß nicht viel über ftp, aber es gibt Millionen von großartigen Apache-Tutorials, die nur eine Google-Suche entfernt sind.

2voto

Pondidum Punkte 11289

Bit-Tech.Net hat eine Reihe von Artikeln über die Einrichtung eines Heimservers unter Linux veröffentlicht. Hier sind die Links:

Artikel 1
Artikel 2

Ich hoffe, dass diese Informationen hilfreich sind.

2voto

Gary Richardson Punkte 15543

@svrist erwähnte EC2. EC2 bietet eine API zum Öffnen und Schließen von Ports aus der Ferne. Auf diese Weise können Sie Ihre Box am Laufen halten. Wenn Sie eine Demo von einem Café oder dem Büro eines Kunden aus geben müssen, können Sie Ihre IP-Adresse nehmen und sie zur ACL hinzufügen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X