sftp Server Config (was: Re: sftp und virtual users)

Autor: Raphael Eiselstein <rabe_at_uugrn.org>
Datum: Sun, 27 Mar 2011 04:06:09 +0200
> > Oder einfach direkt mit OpenSSH, z.B.:
> >     Match Group sftponly
> >         ChrootDirectory %h
> >         ForceCommand internal-sftp
> > 	AllowTcpForwarding no
> > 	X11Forwarding no
> > 	AllowAgentForwarding no

------------------------------------------------------
[...]
# user haben keine Homeverzeichnisse, die Keys werden entsprechend
# an einem zentralen Ort vorgehalten. Insbesondere koennen User ihre
# eigenen Keys nicht veraendern.
AuthorizedKeysFile      /etc/ssh/authorized_keys.d/%u

# User haben ohnehin keine Passwoerter, * im shadow. Entsprechend
# den clients das auch gar nicht erst Passwortauthentifizierung 
# anbieten um Fehllogins zu unterbinden.
PasswordAuthentication no

# abweichend vom debian-lenny default ...
Subsystem sftp internal-sftp

# es sollen nur und ausschließlich Keys verwendet werden, ergo brauchen
# wir auch kein PAM
UsePAM no

# es sollen nur und ausschließlich User authentifizieren koennen, die
# einer erlauchten Gruppe angehoeren
AllowGroups     sftpusers

# ... eigetlich braeuchte ich hier kein match, aber falls ich mal
# verschiedene Benutzergruppen unterscheiden will
# (Mantantentauglichkeit), wird mir das helfen.
Match Group sftpusers
        ChrootDirectory /space/ftp/homes/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
        AllowAgentForwarding no
------------------------------------------------------

Wichtig: ich verwende hier "%u" und nicht "%h" für ChrootDirectory.

Das funktioniert soweit auch alles sehr gut. Allerdings habe ich ein
"Problem" mit dem Verhalten von ChrootDirectory in Verbindung mit
internal-sftp: Im "normalen Fall" ist es korrekt, dass das
ChrootDirectory root gehören muss und ausser root niemand Schreibrechte
dort haben darf, aus Sicht des eingeloggten Benutzers ist das /

Im Falle von internal-sftp benötigt das ChrootDirectory jedoch gar keine
Dateien, da internal-sftp direkt im sshd läuft und nicht als externe
Software aufgerufen wird. Entsprechend sollte es auch reichlich egal
sein, ob der Benutzer in / direkt  schreiben kann oder nicht.

Ich muss hier leider innerhalb des ChrootDirectory ein Unterverzeichnis
verwenden, wo der eingeloggte Benutzer Vollzugriff hat. Ich würde gerne
auf dieses Unterverzeichnis verzichten, d.h. ich will, dass sftp-User
unter "/" direkt lesen und schreiben können.

Kann man das irgendwie mit Tricks umgehen? Hier steht ganz klar die 
convenience für den sftp-User im Vordergrund alle Daten unter "/" zu
finden.

Gruß
Raphael

PS: Das obige sshd-Setup ist *nicht* fuer den system-sshd sondern fuer
einen getrennt laufenden sshd, der nur auf einer bestimmten IP-Adresse
laeuft. Mit der obigen Config auf dem "standard-sshd" im System würde
man sich (hoffentlich ;-) sehr zuverlässig aussperren.

-- 
Raphael Eiselstein <rabe@uugrn.org>               http://rabe.uugrn.org/
xmpp:freibyterægmx.de  | https://www.xing.com/profile/Raphael_Eiselstein   
GnuPG:                E7B2 1D66 3AF2 EDC7 9828  6D7A 9CDA 3E7B 10CA 9F2D
.........|.........|.........|.........|.........|.........|.........|..


-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/

Empfangen am 27.03.2011

Dieses Archiv wurde generiert von hypermail 2.2.0 : 27.03.2011 CEST