[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: sftp und virtual users
[Thread Prev] | [Thread Next]
- Subject: Re: sftp und virtual users
- From: Håkan Kaellberg <hk@xxxxxxxxxxx>
- Date: Tue, 22 Mar 2011 08:34:07 +0100
- To: uugrn@xxxxxxxxxxxxxxx
On Sun, Mar 20, 2011 at 03:36:24AM +0100, Raphael Eiselstein wrote: > On Sat, Mar 19, 2011 at 10:02:30PM +0100, Håkan Kaellberg wrote: > > On Sat, Mar 19, 2011 at 08:36:45PM +0100, Raphael Eiselstein wrote: > > > Håkan Kaellberg wrote: > > > > Die Unix User muessen mit einem * in /etc/shadow angelegt sein. > > > > > Das ist schade, weil ich die Verwaltung der Systemaccounts und die der > > > Dienstbenutzer (sftp-Accounts) getrennt halten will (muss). Also brauche > > > ich hier wohl tatsaechlich ein chroot-environment, in dem der sshd laeuft. > > > > Das verstehe ich nicht ganz... Chroot macht doch sshd selber: > > > > > > ChrootDirectory %h > > Aus sshd_config(5): > > ChrootDirectory > Specifies the pathname of a directory to chroot(2) to *after* authentication. > > Das bedeutet, dass ich alle sftp-Benutzer in meiner /etc/(passwd|shadow) > anlegen muss, in der ich auch meine normalen Systemaccounts habe, also > Adminaccounts etc. Diese Dateien werden vollautomatisch und > zentralisiert gepflegt, ich kann (will) also in /etc/* keine "Kunden- > Accounts" pflegen. > > Daher war auch meine "Anforderung", dass es "Virtual Users" sein sollen, > also Benutzer, die von /etc/* unabhaengig verwaltet werden koennen.[1] Ich habe nicht verstanden, dass Du die Users nach Login trennen mu�. Es war erstmals nur von Authentication die Rede, und dann reichen Public Keys in .ssh/authorized_keys. Wenn Du nach Login unterschiedliche User-Rechte, z.B. fuer Zugriff haben willst, muss Du eher Unix-User haben, dann waere wohl ein richtiger Chroot die LOesung. > openssh kann man aber scheinbar nicht nativ dazu bringen, User > ausschliesslich(!) unabhaengig von von /etc/passwd zu authentiizieren. Ich sehe zwei moeglich andere Wege... Ob sie fuer Dich gangbar sind, oder nicht kann ich nicht so genau sagen. "UsePAM" gibt die Moeglichkeit ueber PAM zu authentifizieren, leider scheint die Schnittstelle ausschliesslich fuer User/Pw ausgelegt zu sein. Mit PAM kann man ja sonnst die abgefahreneste Dinge machen. Es gibt auch GSSAPIAuthentication, also Kerberos. Beide Wege sind hochkomplex und ein ChRoot-Loesung waere sicherlich einfacher. > Weitere Ueberlegung: Wenn ich fuer eine systemunabhaengige sftp-Authentifi- > kation ein chroot bauen muss, dann kann ich auch fuer die einfache ftp- > Authentifikation einen ganz normalen vsftpd mit "real users" verwenden, > der innerhalb des gleichen chroot laeuft. Aktuell laeuft schon ein vsftpd > mit "virtual users", der Benutzer mit PAM ueber /opt/path/to/passwordfile > authentifiziert. Ich kenne vsftpd nicht. Kommst Du damit von klartext-uebertragene Passwoerter weg?? > > Viele Gruesse: Håkan > > Gruss > Raphael > > PS: 1. Der entscheidende zweite entscheidende Aspekt ist, dass Benutzer, > die in /etc/shadow bzw /etc/passwd angelegt sind idR normale Admins > sind. Admins haben idR sehr hohe Rechte am System via sudo. Nur die mit Public Key in .ssh/authorized_keys kommen dran... > Es *muss* ausgeschlossen sein, dass sich hochprivilegierte User direkt > aus dem Internet auf dem System einloggen koennen. Schon aus diesem Grund > darf der von extern erreichbare ssh-Daemon keine Benutzer authtentifi- > zieren *koennen*, es muss also durch Konfiguration 100% ausgeschlossen > werden. Schon allein fuer diese Sicherheitsanforderung ist ein chroot fuer > den *externen* ssh-Daemon fast unumgaenglich. Das waere ein Argument in sich! Aber eigentlich ist dass auch mit Public Key Login gewaehrleistet. Sofern, und das waere vielleicht das Problem, die priviligierte Users kein Public Key in ihren .ssh/authorized_keys einpflegen... Aber, wie denkst Du denn als Admin an den Server zu kommen? In dem Fall muesstest Du ja Konsolezugang zur Hardware haben... Heute stehen ja die Rechnier im RZ, irgendwo anders. Dann *muessen* wir ja mit ssh als Priv-User mittelst Public Key an die Kisten kommen. Das ist doch ein Mechanismus, den wir absolut trauen muessen, sonnst geht gar nichts mehr im Internet:-) > PPS: Ich vermisse Jails unter Linux. Ein chroot-Environment ist zwar > schon ganz gut, aber wenn es kompromittiert wird und root-Rechte > eskaliert werden, kann man auch aus einem chroot heraus sehr unangenehme > Dinge fuer das ganze System tun, zum Beispiel device-nodes fuer die > Systemplatten in /dev anlegen und die Systemplatte einfach ins chroot > mounten, oder aber auf Prozesse zugreifen, die ausserhalb des chroots > laufen (z.B. kill 1). Ja, aber schau Euch mal alle Lxc an: http://lxc.sourceforge.net/. Lxc ist sicherlich nicht so ausgereift, wie jails, paralells, zones et al. Ich habe aber da Hoffnung! V-Server und OpenVZ hat es ja nie nativ in den Kernel geschafft. ( Wohl bewusst, da� alle genannte Konzepte nicht ganz vergleichbar sind ) Viele Gruesse: Håkan -- -- 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/