Frage

Ich möchte eine günstige Linux-Box als Webserver einrichten, um verschiedene Webtechnologien zu hosten (da fallen mir PHP und Java EE ein, aber ich würde in Zukunft auch gerne mit Ruby oder Python experimentieren).

Ich bin ziemlich versiert darin, Tomcat so einzurichten, dass es unter Linux läuft, um Java EE-Anwendungen bereitzustellen, aber ich würde diesen Server gerne öffnen können, auch nur damit ich einige Tools erstellen kann, die ich während meiner Arbeit verwenden kann das Büro.Die gesamte Erfahrung, die ich mit der Konfiguration von Java EE-Sites gemacht habe, betraf Intranetanwendungen, bei denen uns gesagt wurde, wir sollten uns nicht auf die Sicherung der Seiten für externe Benutzer konzentrieren.

Was raten Sie dazu, einen persönlichen Linux-Webserver so sicher einzurichten, dass er für externen Datenverkehr geöffnet ist?

War es hilfreich?

Lösung

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

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

Einige Highlights:

  • Stellen Sie sicher, dass niemand die Verzeichnisse durchsuchen kann
  • Stellen Sie sicher, dass nur Root Schreibrechte für alles hat und nur Root Leserechte für bestimmte Konfigurationsdateien hat
  • Führen Sie mod_security aus

Der Artikel übernimmt auch einige Hinweise aus diesem Buch:

Apache-Sicherheit (O'Reilly Press)

Was Distributionen betrifft, habe ich Debain und Ubuntu ausgeführt, aber es hängt nur davon ab, wie viel Sie tun möchten.Ich habe Debian ohne X ausgeführt und bin einfach per SSH darauf gestartet, wann immer ich etwas brauchte.Das ist eine einfache Möglichkeit, den Overhead niedrig zu halten.Oder Ubuntu verfügt über einige nette GUI-Elemente, die die Steuerung von Apache/MySQL/PHP erleichtern.

Andere Tipps

Es ist wichtig, bewährte Sicherheitspraktiken zu befolgen, wo immer möglich, aber Sie möchten es sich nicht übermäßig schwer machen oder schlaflose Nächte damit verbringen, mit den neuesten Exploits Schritt zu halten.Meiner Erfahrung nach gibt es zwei wichtige Dinge, die dabei helfen können, Ihren persönlichen Server so sicher zu halten, dass er im Internet abstürzt, und gleichzeitig Ihren Verstand zu bewahren:

1) Sicherheit durch Dunkelheit

Unnötig zu erwähnen, dass es eine schlechte Idee ist, sich in der „realen Welt“ darauf zu verlassen, und dass es keinen Spaß macht.Aber das liegt daran, dass in der realen Welt die Bösewichte wissen, was da ist und dass es Beute zu holen gibt.

Auf einem persönlichen Server handelt es sich bei den meisten „Angriffen“, denen Sie ausgesetzt sind, einfach um automatisierte Scans von Computern, die bereits kompromittiert wurden und nach Standardinstallationen von Produkten suchen, die als anfällig gelten.Wenn Ihr Server an den Standard-Ports oder an den Standard-Standorten nichts Verlockendes anbietet, wird der automatisierte Angreifer weiterziehen.Wenn Sie also einen SSH-Server betreiben, legen Sie ihn auf einen nicht standardmäßigen Port (>1024) und es ist wahrscheinlich, dass er nie gefunden wird.Wenn Sie mit dieser Technik für Ihren Webserver durchkommen, ist es großartig, sie auch auf einen unbekannten Port zu verschieben.

2) Paketverwaltung

Kompilieren und installieren Sie Apache oder sshd nicht selbst aus dem Quellcode, es sei denn, dies ist unbedingt erforderlich.Wenn Sie dies tun, übernehmen Sie die Verantwortung, mit den neuesten Sicherheitspatches auf dem neuesten Stand zu bleiben.Lassen Sie die netten Paketbetreuer von Linux-Distributionen wie Debian oder Ubuntu die Arbeit für Sie erledigen.Installieren Sie die vorkompilierten Pakete der Distribution, und um auf dem Laufenden zu bleiben, müssen Sie nur gelegentlich etwas ausgeben apt-get update && apt-get -u dist-upgrade Befehl ausführen oder ein beliebiges ausgefallenes GUI-Tool verwenden, das Ubuntu bereitstellt.

Eine Sache, die Sie unbedingt berücksichtigen sollten, ist, welche Häfen für die Welt geöffnet sind.Ich persönlich öffne einfach Port 22 für SSH und Port 123 für ntpd.Aber wenn Sie Port 80 (http) oder FTP öffnen, stellen Sie sicher, dass Sie zumindest wissen, was Sie der Welt servieren und wer was damit machen kann.Ich weiß nicht viel über FTP, aber es gibt Millionen großartiger Apache-Tutorials, nur eine Google-Suche entfernt.

Bit-Tech.Net hat einige Artikel darüber veröffentlicht, wie man einen Heimserver unter Linux einrichtet.Hier sind die Links:

Artikel 1
Artikel 2

Ich hoffe, die sind hilfreich.

@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 in einem Café oder im Büro eines Kunden eine Demo geben müssen, können Sie Ihre IP abrufen und zur ACL hinzufügen.

Es ist sicher und geschützt, wenn Sie sich darüber im Klaren sind (d. h. es wird selten jemand hinter Ihrem Heimserver her sein, wenn Sie nur einen verherrlichten Webroot auf einer Heimverbindung hosten) und sich über Ihre Konfiguration im Klaren sind (d. h. die Verwendung von Root vermeiden). Stellen Sie bei allem sicher, dass Sie Ihre Software auf dem neuesten Stand halten.

In diesem Sinne ist mein Vorschlag für Ihren persönlichen Server, sich an alles zu halten, was Ubuntu betrifft, auch wenn dieser Thread möglicherweise nur noch auf Flaming beschränkt ist (Holen Sie sich Ubuntu Server hier);Meiner Erfahrung nach erhält man am schnellsten Antworten, wenn man in Foren Fragen stellt (ich bin mir allerdings nicht sicher, was ich zur Akzeptanz sagen soll).

Die Sicherheit meines Heimservers profitiert übrigens irgendwie (glaube ich, oder ich denke gern), wenn ich keine statische IP habe (läuft auf DynDNS).

Viel Glück!

/mp

Seien Sie vorsichtig, wenn Sie den SSH-Port für den freien Zugriff öffnen.Stellen Sie in diesem Fall sicher, dass Sie Root-Anmeldungen deaktivieren (dies ist jederzeit möglich). su oder sudo sobald Sie reinkommen) und erwägen Sie im Rahmen des Zumutbaren aggressivere Authentifizierungsmethoden.Eines Wochenendes sah ich in meinen Serverprotokollen einen riesigen Wörterbuchangriff, der meinen SSH-Server von einem DynDNS-Heim-IP-Server aus angegriffen hatte.

Abgesehen davon ist es wirklich großartig, von der Arbeit oder unterwegs zu Ihrem Zuhause zu gelangen ...Und wenn man dann noch die Tatsache hinzufügt, dass man SFTP über denselben Port nutzen kann, könnte ich mir ein Leben ohne SFTP nicht vorstellen.=)

Sie könnten darüber nachdenken EC2-Instanz von Amazon.Auf diese Weise können Sie „Sachen“ einfach testen, ohne sich mit der Produktion herumschlagen zu müssen.Und zahlen Sie nur für den Speicherplatz, die Zeit und die Bandbreite, die Sie nutzen.

Wenn Sie einen Linux-Server von zu Hause aus betreiben, installieren Sie ihn Ossec darauf für ein schönes, leichtes IDS, das wirklich gut funktioniert.

[BEARBEITEN]

Als Randbemerkung: Stellen Sie sicher, dass Sie nicht gegen die Richtlinien zur akzeptablen Nutzung Ihres Internetdienstanbieters verstoßen Und dass sie eingehende Verbindungen auf Standardports zulassen.Der ISP, für den ich früher gearbeitet habe, hatte in seinen Geschäftsbedingungen geschrieben, dass man für den Betrieb von Servern über Port 80/25 von der Verbindung getrennt werden kann, es sei denn, man verfügt über ein Business-Class-Konto.Obwohl wir diese Ports nicht aktiv blockiert haben (es war uns egal, es sei denn, es verursachte ein Problem), erlauben einige ISPs keinen Datenverkehr über Port 80 oder 25, sodass Sie alternative Ports verwenden müssen.

Wenn Sie dies tun, geben Sie etwas Geld aus und kaufen Sie zumindest einen dedizierten Router/eine Firewall mit einem separaten DMZ-Port.Sie sollten Ihr internes Netzwerk von Ihrem Server aus mit einer Firewall abschirmen, damit Ihr internes Netzwerk nicht sofort angreifbar ist, wenn (nicht wenn!) Ihr Webserver kompromittiert wird.

Es gibt viele Möglichkeiten, dies zu tun, die gut funktionieren.Normalerweise würde ich einfach eine .htaccess-Datei verwenden.Schnell aufgebaut und gesichert genug .Wahrscheinlich nicht die beste Option, aber es funktioniert für mich.Ich würde meine Kreditkartennummern nicht dahinter stecken, aber ansonsten ist mir das eigentlich egal.

Wow, Sie öffnen eine Büchse voller Würmer, sobald Sie anfangen, etwas für externen Datenverkehr freizugeben.Denken Sie daran, dass das, was Sie als experimentellen Server betrachten, fast wie ein Opferlamm, auch eine leichte Beute für Leute ist, die Ihr Netzwerk und Ihre Ressourcen schlecht nutzen wollen.

Ihr gesamter Ansatz für einen extern verfügbaren Server sollte sehr konservativ und gründlich sein.Es beginnt mit einfachen Dingen wie Firewall-Richtlinien, umfasst das zugrunde liegende Betriebssystem (Patches halten, Sicherheitskonfiguration usw.) und umfasst jede Ebene jedes Stacks, den Sie verwenden werden.Ich fürchte, es gibt keine einfache Antwort oder ein einfaches Rezept.

Wenn Sie experimentieren möchten, ist es viel besser, den Server privat zu halten und ein VPN zu verwenden, wenn Sie aus der Ferne daran arbeiten müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top