Blog

SSH-Benutzer in Linux erstellen

Wer einen root-Server selber konfiguriert, hat sicherlich schon den Anwendungsfall „Erstellen eines neuen Users“ gehabt. Im folgenden Abschnitt erkläre ich, wie ein Benutzer in der Shell erstellt und einer Gruppe zugeordnet werden kann. Der User wird zum SSH-Login anstelle des root-Users verwendet, um die Sicherheit auf dem Server zu verbessern.

SSH-Logins über root müssen auf einem Server deaktiviert werden, da der root-User ein Standard User ist. Dies bietet ein einfaches Angriffsziel für automatische Scripte, die Brute-Force Angriffe / Wörterbuch-Attacken auf einfach im Internet frei zugängliche Ziele durchführen.

1. Benutzer erstellen

Das Erstellen des Users und Vergabe eine Kennworts ist der einfachste Schritt zum Konfigurieren eines neuen SSH-Benutzer-Zugriffs auf dem Server:

2. Benutzer benötigten Gruppen zuordnen

Der Benutzer wird nun den Gruppen auf dem Server zugeordnet. Bei mir habe ich eine eigene Gruppe „ssh-login“ für den SSH-Zugriff. Darin sind alle User enthalten, die per Fernzugriff auf den Server zugreifen dürfen.

Außerdem füge ich den User der Gruppe „www-data“ hinzu, da er Dateien und Verzeichnisse vom Webserver bearbeiten können soll. Wenn der Benutzer keine Daten vom Webserver-Prozess ändern darf, kann dieser Schritt entfallen.

3. Home-Verzeichnis für Benutzer erstellen

Manchmal muss für den neu erstellten Benutzer ein anderes Home-Verzeichnis erstellt und zugewiesen werden. Dies wird mit den beiden Kommandos erledigt:

4. SSH-Zugang für Benutzer erlauben

Nun kann für den User der SSH-Zugriff aktiviert werden. Ich habe in meiner Konfiguration „root“ den SSH-Zugriff verweigert, der SSH-Login wird nur Benutzern der Gruppe „ssh-login“ gewährt.

5. Berechtigungen für notwenige Dateien vergeben

Damit der neue Benutzer Rechte für die benötigten Verzeichnisse und Dateien hat, habe ich ihn bereits in Schritt 2 der Gruppe „www-data“ zugeordnet. Meine Webserver-Verzeichnisse gehören dem User „www-data“, die Gruppe „www-data“ hat jedoch Lese- und Schreibrechte auf den Inhalt. Der eben erstellte User ist Mitglied dieser Gruppe und kann somit Dateien erstellen, ändern und löschen.

5.1 Setgid auf Verzeichnisse

Ein häufiges Problem, das ich festgestellt habe:

Wenn mehrere Benutzer erstellt wurden und zusammen auf dem gleichen Verzeichnisstamm arbeiten (z.B. bei Webprojekten), kann es zu Problemen beim Zugriff auf Dateien geben.

Erstellt der eine Benutzer eine neue Datei, dann wird er gleichzeitig die primäre Gruppe des Users der Datei zugeordnet. Andere Benutzer, die zwar zur „www-data“-Gruppe, dürfen diese neue Datei aber nicht bearbeiten! Bei Webprojekten möchte ich jedoch, dass alle User der Gruppe „www-data“ neu erstellte Dateien bearbeiten dürfen.

Um bei Erstellung einer neuen Datei allen Gruppen-Mitgliedern automatisch Zugriffs-Rechte auf diese Datei zu geben, kann das Verzeichnis mit dem setgid versehen werden (weitere Infos zu Setgid). Dabei wird die Gruppe des Web-Verzeichnisses an neu erstellte Dateien und Unterordner vererbt, genau das was ich brauche!

5.2 Sticky-Bit

Mit dem Sticky-Bit kann festgelegt werden, dass nur der Ersteller einer Datei (oder root) diese wieder löschen darf. Selbst wenn die Gruppe Änderungsrechte hat, gelöscht werden kann die Datei dann nicht aus Versehen. Das Sticky-Bit ist sinnvoll, wenn man das Setgid Bit verwendet.

6. SSH-Zugriff prüfen

In der folgenden Datei lässt sich prüfen, welcher Benutzer per SSH auf den root-Server zugreifen darf:

Posted in: News, Server

Leave a Comment (0) ↓