ubuntuusers.de

System von Anfang richtig für Sicherheit konfigurieren

Status: Ungelöst | Ubuntu-Version: Server 14.04 (Trusty Tahr)
Antworten |

Macvot

Anmeldungsdatum:
28. September 2007

Beiträge: 129

Hallo,

ich habe eine recht allgemeine Frage zum Einrichten des Systems.

Gehen wir mit folgendem Szenario aus:

Ein Ubuntu Server soll für eine Webseite konfiguriert werden, welche bei einem externen Speicherzentrum gehostet wird. Bei dem Rechenzentrum ist keine Firewall mitgebucht. Es muss also für die eigene Sicherhheit des Systems garantiert werden.

Wie geht man von Grund auf vor um alles so sicher wie möglich einzurichten. SSH, SFTP, Webdav VPN, Ldap-Anbindung wird benötigt.

Dort fängt es ja schon an den Port für SSH zu ändern und nicht auf Port 22 laufen zu lassen und User nur mit private-key anmeldung zu lassen.

Was kann man noch beachten oder zur Sicherheit beitragen?

Wie sollte man auch das www Verzeichnis vor aussen schützen? Extra Berechtigungsgruppen erstellen wenn mehrer User auf den Verzeichnis arbeiten sollen? Kann man mit ACLs arbeiten, wenn ja wie?

Sollte man den User root komplett deaktivieren und nur mit normalen Benutzern arbeiten?

Was gibt es sonst noch was man unbedingt beachten sollte, wenn man so ein neuen Server installiert und der Außenwelt zur Verfügung stellen möchte (Webseite) . Noch eine Software-Firewall mit installieren, wenn ja welche wäre gut?

Vielen Dank schon einmal

redknight Team-Icon

Moderator & Supporter
Avatar von redknight

Anmeldungsdatum:
30. Oktober 2008

Beiträge: 21859

Wohnort: Lorchhausen im schönen Rheingau

Macvot schrieb:

ich habe eine recht allgemeine Frage zum Einrichten des Systems.

Dann kann man dir auch nur allgemeine Antworten geben. Wenn Du konkrete Antworten willst, musst Du konkreter fragen.

Dort fängt es ja schon an den Port für SSH zu ändern und nicht auf Port 22 laufen zu lassen

Das erhöht die Sicherheit kein Stück. Es erspart dir nur ein paar Log-EInträge von Bots.

und User nur mit private-key anmeldung zu lassen.

Das hingegen erhöht die Sicherheit und ist unedingt zu empfehlen.

Was kann man noch beachten oder zur Sicherheit beitragen?

So wenig wie möglich Dienste installieren und starten. Wenn, so weit wie möglich einschränken. Kleine Beispiel? Datenbanken sind in der regel so kinfguriert, dass man sie nur von localhost aus ansprechen kann. Wenn möglich alle Dienste in der Art konfigurieren.

Wie sollte man auch das www Verzeichnis vor aussen schützen? Extra Berechtigungsgruppen erstellen wenn mehrer User auf den Verzeichnis arbeiten sollen?

Warum sollten mehrere user auf dem www-Verzeichnis arbeiten?

Kann man mit ACLs arbeiten, wenn ja wie?

Ja. Wie in ACL beschrieben - Bitte immer einen Blick ins Wiki werfen.

Sollte man den User root komplett deaktivieren und nur mit normalen Benutzern arbeiten?

Das ist in der Standardinstallation der Fall. Es macht dahingehend sinn, dass man a) deinen key haben muss um sich zu verbinden und b) dein Passwort kennen muss um mittels sudo rootrechte zu erlangen.

Noch eine Software-Firewall mit installieren, wenn ja welche wäre gut?

Sei mir nicht bös, aber lass davon erst mal die Finger. Wenn Du die Frage stellst, solltest Du dich erst mal mit der sauberen Konfiguration deiner Dienste befassen. Das ist Abreit genug. Wenn Du dann etwas findest, was sich durch KOnfiguration nicht sauber machen kannst, dann kann man immer noch eine Firewall hinzunehmen.

Eine Firewall verhindert nur die Verbindung zu einem Serverdienst. Die beste Art, das zu verhindern, ist den Dienst gar nicht erst aktiv zu haben. Die zweitbeste Art ist, den Dienst so zu konfigurieren, dass unerwünschte Verbindungen nicht angenommen werden. Die Firewall ist maximal die drittbeste Art...

jug Team-Icon

Ehemalige
Avatar von jug

Anmeldungsdatum:
19. März 2007

Beiträge: 12335

Wohnort: Berlin

Du stellst sehr allgemeine Fragen, aber beim Thema Sicherheit gibt es selten allgemeine Antworten …

Macvot schrieb:

Dort fängt es ja schon an den Port für SSH zu ändern und nicht auf Port 22 laufen zu lassen

Bringt ungefähr so viel wie den Schlüssel oben auf den Türrahmen zu legen, anstatt ihn unter die Türmatte zu tun …

und User nur mit private-key anmeldung zu lassen.

Wenn du das machst, dann brauchst du auch den Port nicht verlegen. Es kann im Einzelfall Gründe geben, den Port zu verlegen, mit der Sicherheit haben die aber wenig zu tun. Gibt da bessere Lösungen, zum Beispiel Port-Knocking. Oder halt einfach Schlüssel verwenden und dann ausschließlich Schlüssel erlauben.

Wie sollte man auch das www Verzeichnis vor aussen schützen?

Hier ist der Teil, der sich nicht allgemein beantworten lösst. Vor wem soll da was geschützt werden. Und was ist da drin was geschützt werden muss? Ich nehme an, da liegt eine Webseite drin, also gehe ich davon aus, dass die größte Gefahr für diese Daten aus dem Internet kommt, nämlich von den Leuten, die diese Webseite aufrufen bzw. mit dem Webserver interagieren? Ist es eine dynamische Seite mit Skripten, die ausgeführt werden? PHP oder Ähnliches? Die Menschen, die Zugriff auf den Server bekommen, sollten vertrauenswürdig sein, sonst bekommen sie keinen Zugriff, fertig.

Sollte man den User root komplett deaktivieren und nur mit normalen Benutzern arbeiten?

Klingt generell nach einer gute Idee, ja. Im zweifelsfall halt sudo. Auf jeden Fall darf sich root nicht mit dem Server verbinden – PermitRootLogin in der SSHd-Konfiguration.

Für die anderen Dienste müsstest du mehr ins Detail gehen, vor allem auch auf die Frage was für Nutzer diese Dienste in welcher Weise nutzen sollen … Zu sftp: SSH-Nutzer kann man recht schön in ihr Homeverzeichnis einsperren und die haben dann nur sftp-Zugriff. https://www.linode.com/docs/tools-reference/tools/limiting-access-with-sftp-jails-on-debian-and-ubuntu Ich habe natürlich keine Ahnung, ob das dir irgendwie hilft, weil ich nicht weiß, was die SSH-Nutzer bei dir machen sollen …

Was gibt es sonst noch was man unbedingt beachten sollte, wenn man so ein neuen Server installiert und der Außenwelt zur Verfügung stellen möchte (Webseite) . Noch eine Software-Firewall mit installieren, wenn ja welche wäre gut?

Personal Firewalls – um dir viel lesen zu ersparen: alles Bullshit. Das ist entweder ein eigenes System im Netzwerk, oder es ist nix wert. Auf deinem System ist es nur ein weiteres Werkzeug das richtig konfiguriert werden muss und mehr Code der ausgeführt wird und damit auch mehr potentielle Sicherheitslücken … Die Funktionen, die du anbieten willst, müsstest du ja dann ohnehin freischalten, aber das sind genau die Angriffsvektoren. Was du nicht anbietest kann auch nicht angegriffen werden …

iptables2 ist im Zweifelsfall ohnehin vorhanden – ist ein tolles Werkzeug, das richtig konfiguriert auch die Sicherheit positiv beeinflussen kann, aber ein magisches „install-and-forget“ gibt es da nicht. Sowas hilft eher im Zusammenarbeit mit anderen Tools wie fail2ban oder denyhosts. Und sei es nur um die Logfiles klein zu halten und nicht ohne ende gescheiterte Login-Versuche zu protokollieren.

Ach ja und … Sicherheitskonzepte 😉 Updates, Updates, Updates. Und wenn du weniger allgemeine Antworten möchtest, dann musst du schon genauer beschreiben wie das System funktionieren soll. Sicherheit ist auf jeden Fall kein Ding was man dazu installieren kann und keine Einstellung die man einfach aktivieren kann (dann wäre das standardmäßig schon drin) sondern Sicherheit ist immer ein Konzept, und das richtet sich nach den ganz speziellen Anforderungen.

~jug

Antworten |