Berechtigungen für beschränkten SSH-Zugang

converge

New Member
Hallo zusammen,

ich möchte jemandem Zugang per SSH auf einen Server geben und bin gerade wegen der Zugriffsberechtigungen etwas unsicher, da ich bisher der einzige Benutzer war.

Wie schränke ich einen neuen User so ein, dass er nur Zugriff auf sein Home-Verzeichnis und das entsprechende Root einer bestimmten Website hat?

  • Was hat die shell genau für eine Bedeutung? Es geht ja auch um Berechtigungen, oder? Wenn ich dem User die shell /bin/bash zuweise, dann hat der User Einsicht auf das ganze System. Was für eine Shell verwendet man für solch einen Account?
  • Einige der Ordner im root der Website müssen der Gruppe www-data zugeordnet sein. Sprich, der SSH-User darf nicht in diese Ordner rein. Ich denke, wenn ich den SSH-User der Gruppe www-data zuweise, dann hat er eigentlich mehr Berechtigungen als er haben darf. Richtig?

Das System ist wie oben erwähnt Debian 6, ohne Plesk oder ähnliches.
 
Als erste Anregung verweise ich mal auf das hier: http://www.debian.org/doc/manuals/securing-debian-howto/ap-chroot-ssh-env.de.html

D.h. eine chroot-Umgebung wäre die direkte Lösung auf die Frage. Allerdings ist das vergleichsweise aufwendig. Muss der User unbedingt SSH-Zugriff auf die Verzeichnisse haben oder reicht nicht auf eine sFTP-Verbindung? Mit letzterem lässt sich der gewünschte "Effekt" IMHO mit deutlich weniger Aufwand erzielen; z.B. wäre auch möglich zugriffe auf bestimmte Dateien/Verzeichnisse gezielt zu unterbinden (mit proFTP).

Für konkretere Empfehlungen wären genauere Angaben zur Webserver-Konfiguration hilfreich und ein konkretes Beispiel der Verzeichnisstruktur mit den gewünschten Zugriffsrechten.
 
Last edited by a moderator:
Das klingt alles sinnvoll, aber ich denke, ich habe derzeit nicht die Zeit, es auf diesem aufwendigeren Wege zu realisieren, wenn es eventuell auch eine leichtere Möglichkeit gibt.

Die Verzeichnisstruktur ist folgende:

/var/www als Root für alle zukünftigen Websites

Innerhalb /var/www liegt dann vhost1/htdocs

Ist es eventuell möglich, dass man dem User den Odner htdocs als Home zuweist und über die Gruppenberechtigungen das "browsen" in höhergelegene Ordner verbietet? Oder ist tatsächlich schon alles zu spät, wenn der User seine shell zugewiesen bekommen hat?
 
Ok, ich glaube, ich habe es kapiert. Scheint tatsächlich nichts drumrum zu führen, dies über chroot zu lösen.
 
Deswegen ja meine Empfehlung zu prüfen, ob nicht der Zugriff per FTP für die User ausreicht. Dort lässt sich die chroot-Umgebung fast schon out-of-the-box nutzen.

Gibt es einen besonderen Grund warum die User SSH-Zugriff bekommen sollen/müssen?
 
Ja, der Grund ist die gemeinsame Entwicklung an einer Website und der Zugriff per Kommandozeile auf die SQL-Datenbank.

Ein möglicher Umweg wäre, tatsächlich über sFTP zu gehen und die Datenbank-Zugriffe via phpmyadmin zu erlauben. Aber ich sehe sowohl ein Sicherheitsrisiko in FTP als auch bzw. vor allem in phpmyadmin.
 
Sofern die Verbindungen zum FTP-Server bzw. phpmyadmin Installation gesichert (SSL) sind und keinen anonymen Zugang erlauben, sehe ich keinerlei Sicherheitslücken!
 
Als Alternative zu phpmyadmin könntest du dir auch mal Adminer anschauen.
 
Wenn dein Projekt-Datenbank-User nur auf die Datenbank des Projekts Zugriff hat, dann kann er maximal diese Datenbank zerstören/unbrauchbar machen, imo. Also vorher Backup machen.
 
... Aber ich sehe sowohl ein Sicherheitsrisiko in FTP als auch bzw. vor allem in phpmyadmin.
Das sehe ich etwas anders. Für den Zugang per SSH muss per se ein lokaler User herhalten, der per default eben auch viele Rechte und Zugriffsmöglichkeiten mitbringt, die nicht unbedingt gewünscht sind. Diese zu reduzieren ist aufwendig und mehr fehleranfällig (Blacklist-Prinzip).

Mit FTP-Server und phpmyadmin kann man das ganze umdrehen (Whitelist-Prinzip). Wenn der FTP-Server keine lokalen Accounts sondern virtuelle User verwendet, dann kann der Anwender nur exakt das tun, was man explizit erlaubt.

Shellzugriff sehe ich als das größere Risiko als mögliche Sicherheitslücken in FTP-Serversoftware oder phpmyadmin - sofern letztere regelmäßig und zeitnah aktualisiert werden.
 
OK, eigentlich habt ihr alle recht. Ich denke, ich werde eher einen FTP-Account + ein gesichertes phpmyadmin zur Verfügung stellen.

Vielen Dank an euch
 
Back
Top