Frage

Ich habe Apache auf einem öffentlich zugänglichen Debian-Server ausgeführt wird, und bin ein bisschen besorgt über die Sicherheit der Anlage. Dies ist eine Maschine, die mehrere Freizeit Hobby-Projekte beherbergt, so dass keiner von uns, die die Maschine benutzen wirklich die Zeit hat, sich ständig für die Upstream-Patches zu sehen, bleibt von Sicherheitsfragen bewusst, etc. Aber ich würde die bösen Jungs halten darauf oder wenn sie in zu bekommen, so dass sie in einer Sandbox halten.

Also, was ist die beste, einfach einzurichten, einfache Lösung hier zu halten? Ist es einfach, eine User-Mode-Linux-Sandbox auf Debian einrichten? Oder vielleicht ein chroot-Gefängnis? Ich möchte einfachen Zugriff auf Dateien von außen im Inneren des sadbox haben. Dies ist eine jener Zeiten, in denen es ganz klar zu mir wird, dass ich ein Programmierer bin, kein Sysadmin. Jede Hilfe wäre sehr geschätzt!

War es hilfreich?

Lösung

Chroot Jails kann wirklich unsicher sein, wenn Sie eine vollständige Sandbox-Umgebung ausgeführt werden. Angreifer haben die vollständige Zugriffsfunktionalität auf Kernel und können zum Beispiel Laufwerke montieren „host“ System zugreifen zu können.

Ich würde vorschlagen, dass Sie Linux-VServer verwenden. Sie können Linux-VServer als verbessertes chroot-Gefängnis mit einer kompletten Debian-Installation innen sehen. Es ist wirklich schnell, da es in einem einzigen Kernel ausgeführt wird, und die gesamte Code nativ ausgeführt.

Ich persönlich Linux-VServer für Trennung von allen meinen Diensten und es gibt nur kaum merkliches Leistungsunterschiede nutzen.

Haben Sie einen Blick auf die Linux-VServer Wiki für Installationsanweisungen.

Grüße, Dennis

Andere Tipps

Ich zweite, was xardias sagt, aber empfehlen OpenVZ statt.

Es ist ähnlich wie Linux-VServer, so dass Sie vielleicht diese beiden, wenn diesen Weg gehen vergleichen wollen.

Ich habe eine Webserver-Setup mit einem Proxy-HTTP-Server ( nginx ), die dann die Delegierten Verkehr zu verschiedenen OpenVZ Behälter (basierend auf den Hostnamen oder die angeforderte Pfad). Innerhalb jeder Container können Sie Setup Apache oder einem anderen Webserver (z nginx, lighttpd, ..). Auf diese Weise können Sie ein Apache nicht für alles, kann aber einen Behälter für jede Teilmenge von Diensten (z pro Projekt) erstellen.

OpenVZ Container können ganz einfach zusammen aktualisiert werden ( "for i in $ (vzlist); tun vzctl exec apt-get upgrade; done")

Die Dateien der einzelnen Behälter werden in dem Hardware-Knoten gespeichert und daher können Sie ganz leicht sie zugreifen, indem Sie in die Hardware-Knoten SFTPing. Abgesehen davon, dass Sie könnte fügen Sie eine öffentliche IP-Adresse, um einige Ihrer Container, installieren dort SSH und sie dann direkt zugreifen aus dem Behälter. Ich habe sogar von SSH-Proxys gehört, so dass die zusätzliche öffentliche IP-Adresse möglicherweise nicht notwendig sein, auch in diesem Fall.

Sie könnten es immer gesetzt in einer virtuellen Maschine und halten davon ein Bild, so können Sie diese Rolle wieder, wenn es sein muss. So kann der Server von Ihrem aktuellen Computer und jedes Virus' oder so weiter abstrahiert werden innerhalb der virtuellen Maschine enthalten ist. Wie ich schon sagte, wenn Sie ein Bild als Backup halten können Sie Ihre vorherigen Zustand ganz einfach wiederherstellen.

Um sicherzustellen, dass es gesagt wird, chroot Jails ist selten eine gute Idee ist es, trotz der Absicht, sehr leicht zu brechen aus, infact Ich habe es von den Benutzern gemacht gesehen versehentlich!

Nichts für ungut, aber wenn Sie für Sicherheits-Patches keine Zeit haben, zu beobachten und bewusst Sicherheitsfragen bleiben, sollten Sie besorgt sein, egal, was Ihr Setup. Auf der anderen Seite ist die bloße Tatsache, dass Sie über diese Themen denken unterscheidet Sie von den anderen 99,9% der Besitzer solcher Maschinen. Sie sind auf dem richtigen Weg!

Während alle der oben genannten gute Vorschläge sind, schlage ich vor, auch das Hinzufügen einer iptables-Regel unerwartet ausgehende Netzwerkverbindungen zu verbieten. Da das erste, was die meisten automatisierten Web-Exploits den Rest ihrer Nutzlast tun, ist herunterladen, die Netzwerkverbindung verhindern kann den Angreifer verlangsamen.

Einige Regeln ähnlich wie diese verwendet werden (Vorsicht, Webserver Zugriff auf andere Protokolle benötigen):     iptables --append OUTPUT -m Besitzer --uid-Inhaber Apache -m state --state ESTABLISHED, RELATED --jump ACCEPT     iptables --append OUTPUT -m Besitzer --uid-Inhaber Apache --protocol udp --destination-port 53 --jump ACCEPT     iptables --append OUTPUT -m Besitzer --uid-Inhaber Apache --jump REJECT

Wenn Debian verwenden, Debootstrap ist dein Freund gekoppelt mit QEMU, Xen, OpenVZ, Lguest oder einer Vielzahl von anderen.

Erstellen Sie eine virtuelle Maschine. versuchen, so etwas wie VMWare oder QEMU

Was Problem versuchen Sie wirklich zu lösen? Wenn Sie sich interessieren, was auf diesem Server, müssen Sie Eindringlinge verhindern, dass in sie zu bekommen. Wenn Sie sich interessieren, was Eindringlinge mit Ihrem Server tun würde, müssen Sie die Fähigkeiten des Servers selbst beschränken.

konnte keine dieser Probleme mit der Virtualisierung gelöst werden, ohne severly criplling den Server selbst. Ich denke, die wirkliche Antwort auf Ihr Problem ist folgende:

  1. läuft ein Betriebssystem, das Sie mit einem einfachen Mechanismus für OS-Updates.
  2. verwenden, um die vom Hersteller bereitgestellte Software.
  3. Backup alles oft.
scroll top