Page 1 of 2

Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?]

Posted: 2006-06-19 01:01
by elch_mg
Namd,

ich stehe gerade vor einem Problem.. ich habe einige FTP-User, denen ich gerne eine Möglichkeit zur Verfügung stellen würde, ihr Passwort zu ändern.
Mir fiele da die Möglichkeit einer Weboberfläche in Perl mit Authen::PAM ein, beispielsweise - oder vollständige Umstellung des Systems auf PAM per LDAP. Halbe Sachen mag ich nicht, wie beispielsweise ProFTPd mit mySQL. Ich möchte den Usern auch evtl. noch die Möglichkeit geben (können), sich per ssh einzuloggen wenn Bedarf besteht. Allerdings - einige User kommen nicht einmal mit ftp richtig zurecht, eine Lösung wie die Shell auf /usr/bin/passwd setzen fällt also raus.

Momentan hab ich keine Ahnung, wie ich das lösen soll. Es soll ja nicht nur rudimentär laufen, sondern sicher.
Ich will auf jeden Fall bei PAM bleiben, denn das läuft eigentlich immer, bei Shell/SSH, vsFTPd, Exim, Courier etc.
Wie würdet Ihr das machen?


EDIT
Hm, nachdem einige Missverständnisse aufgetaucht sind: Ich suche im Grunde eine Möglichkeit, eine Weboberfläche zu programmieren, um Usern die Möglichkeit zu geben, ihr Passwort zu ändern. Die Authentifizierung läuft dabei komplett über PAM.
Frage: Daemon basteln, der Anfragen (u.a. aus php/perl-Scripts) entgegennimmt und zu fuß, per Authen::PAM oder so in die /etc/passwd / shadow einpflegt, oder System auf pam_ldap umstellen, was das ganze theoretisch vereinfacht, weil perl, php etc. nativ LDAP können?

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 08:19
by debianneuling
ich verwende hierfür Usermin, ein Modul von Webmin.
Da kannst du dann einzelne Module freischalten, die deinen Usern zu verfügung stehen sollen, z.B. Passwort ändern, Emails online lesen/versenden, SPAM-Filter konfigurieren, usw.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 08:37
by captaincrunch
Wenn's "nur" um die Passwortänderung ginge, könntest du auch als Shell sehr simpel "/usr/bin/passwd" setzen (Eintrag in der /etc/shells nicht vergessen). Wer sich dann per SSH-Client anmeldet, kann haklt nur das PW ändern.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 10:21
by elch_mg
die Lösung mit der Shell auf /usr/bin/passwd fällt wie gesagt raus, das kann ich einigen Usern nicht zumuten.
Usermin... ich weiß nicht, lieber nicht, man hört da so einiges ;)

Ja, momentan ist es nur eine Passwortänderung. Ich fände es allerdings praktisch wenn sich in dieser Weboberfläche nachher auch noch andere Sachen einbauen ließen.
Programmieren kann ich die Geschichte selber, ich stelle mir halt nur gerade die Frage wie sich die Passwortänderung anstellen lässt...?

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 11:06
by blnsnoopy26
proftpd + mysql dann ein phpscript schreiben womit sich dann für den user das PW ändern lässt und dafür braucht es nichtmal ne shell.

und auch shellzugriff kann dann dort über das mysql geregelt werden - dafür bietet proftpd diese funktion an.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 11:28
by elch_mg
irgendwie liest sich niemand das richtig durch, was ich oben geschrieben hab. Ich habe gesagt, ich möchte kein ProFTPd mit mysql, sondern bei vsftpd bleiben + PAM bleiben. Weil PAM ganz einfach immer tut und weniger Probleme verursacht.
Und zur Weboberfläche: Nochmal, ich kann zum Beispiel mir ein Perl-Script basteln, was mit Authen::PAM das Passwort ändert (gibt sogar ein Beispiel in der FAQ, was nicht-interaktiv funktioniert), die Lösung ist aber nicht sonderlich sauber, das Script benötigt möglicherweise root-Rechte etc.pp.. Oder ich biege PAM auf einen LDAP um - und LDAP-Einträge von Perl, PHP, sonstwo aus ändern ist ja nun wirklich kein Problem.
Momentan würde ich LDAP bevorzugen, allerdings hab ich bisher mehr oder weniger keine Dokumentation zu PAM + LDAP gefunden. Wahrscheinlich war ich bisher nur zu blöd zum Suchen.

Ich stelle mir jetzt die Frage, welche von diesen Lösungen Ihr bevorzugen würdet, welche unsicher(er) ist, und evtl. was es noch für Möglichkeiten gäbe.
Ziel ist, eine Weboberfläche zu schaffen über die sich (vorerst nur) das Passwort ändern lässt, die User sollen möglicherweise auch noch später eine Shell bekommen können, ich will, wenn ich gerade dabei bin auch noch die Möglichkeit haben, Exim4, Courier-POP/IMAP, Apache, und hast du nicht gesehn anzubinden - eben alles was PAM oder LDAP kann. Ich würde das Script am liebsten jeweils unter der UID des Benutzers laufen lassen, der sein Passwort gerade ändern will, dafür hab ich bereits Apache mit suEXEC eingerichtet.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 11:50
by flo
Confixx-like: Änderungen in eine Textdatei (oder Datenbank) schreiben und dann ins System (flatfiles) übernehmen - das habe ich derzeit vor.

flo.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 11:55
by elch_mg
Also per Cronjob? Das hört sich ungefähr so nach der Lösung mit der Endlosschleife an, die auf irgendwas wartet - also Ressourcenverschwendung *kopfkratz*
Vielleicht lässt sich da was mit Interprozesskommunikation basteln. Mal sehn...

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 12:16
by blnsnoopy26
elch_mg wrote:irgendwie liest sich niemand das richtig durch, was ich oben geschrieben hab. Ich habe gesagt, ich möchte kein ProFTPd mit mysql, sondern bei vsftpd bleiben + PAM bleiben.
[...]
Ich hatte zuerst auch vsftpd und wollte davon nicht weg, aber proftpd bietet mehr als vsftpd und ist leistungsstarker, daher bin ich auch zu proftpd gezwungerer massen gewechselt.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 12:35
by debianneuling
elch_mg wrote:Usermin... ich weiß nicht, lieber nicht, man hört da so einiges ;)
Ja? Hab da nix negatives außer der Sicherheitslücke von Ende 2005 gefunden. Was hast du denn konkret gehört?

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 12:51
by elch_mg
blnsnoopy26 wrote:Ich hatte zuerst auch vsftpd und wollte davon nicht weg, aber proftpd bietet mehr als vsftpd und ist leistungsstarker, daher bin ich auch zu proftpd gezwungerer massen gewechselt.
ich hatte proftpd und bin dann zu vsftpd gewechselt, weil vsftpd schön klein und sicher ist. Die ganzen Features von proftpd brauch ich garnicht.
debianneuling wrote:Ja? Hab da nix negatives außer der Sicherheitslücke von Ende 2005 gefunden. Was hast du denn konkret gehört?
Alles, was auf Webmin basiert, mag ich nicht. Rein persönliche Abneigung, ich bin gerade zu faul (und zu beschäftigt) um Gegenargumente rauszukramen *g*

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 13:06
by Joe User
Ebenfalls klein und ausreichend sicher, mit vielen nützlichen Features: pure-ftpd

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 13:23
by blnsnoopy26
Jede software/Programm hat seine Vor -und Nachteile.

Ich Persönlich bin auch zu ProFTPD gewechselt, weil das s*** quota unterm reiserFS Dateisystem nicht funzt, aber ich dennoch das anbieten möchte, musste ich mich entscheiden,... entweder so lassen wie es ist oder eine Alternative - und die hieß dan halt ProFTPD, weil es eine eingebaute Quota unterstützung hat in verbindung mit mysql :)

War jetzt ein wenig zu sehr offtopic, aber ich dachte es passte hier jetzt ganz gut rein :wink:

Nix für ungut - jeder soll das einsetzen was ihm beliebt - dies war halt nur mein Gedankengang :) :wink:

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 20:03
by elch_mg
Idee: statt jeweils per Cron ein Script aufzurufen, was die Änderungen übernimmt, könnte man doch bestimmt auch ein Signal senden. Kann IIRC auch PHP, per posix_kill.
Es wird eine Datei generiert, die den Hash des aktuellen Passworts und den neuen Hash enthält, woraufhin - durch das Signal angestoßen - das "Änderungs"-Script den Besitzer der Datei überprüft und dessen Passwort ändert. Die Dateizugehörigkeit wird ja durch suEXEC gesichert.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 21:02
by duergner
Du kannst es auch durch einen an localhost gebundenen Service machen den du z.B. ueber den Xinetd startest.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 21:06
by elch_mg
die Idee ist mir auch schon gekommen. da müsste ich dann eine Art Authentifizierung reinpacken, denn der Serverprozess kann ja nicht so ohne weiteres rausfinden, unter welcher UID der Client läuft oder?
Hm, wird aber wahrscheinlich am einfachsten zu realisieren sein, auch wenn ich noch nie mit Sockets unter Perl gespielt habe, und beispielsweise nicht weiß, wie ich parallele Zugriffe behandeln kann. Aber es gibt ja Dokumentationen, Nächte, und Koffeinhaltige Lebensmittel ;)

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 21:25
by Joe User
Warum wollt Ihr eigentlich das Rad erneut erfinden? pure-ftpd bietet "das Rad" OOTB und ist sicherheitstechnisch mit vsftpd gleichzusetzen...

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 21:28
by elch_mg
wovon genau redest du?

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 21:51
by Joe User
Vom ursprünglichem Thema dieses Threads...

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 21:54
by elch_mg
pure-ftpd bietet mir also eine sichere Weboberfläche, über die ich Passwörter für Systemuser ändern kann, so dass verschiedenste Programme per PAM eine Authentifizierung anhand dieser Passwörter vornehmen können? *guckt dumm*

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 22:15
by Joe User
Ich beziehe mich auf das Subject und Deinen ersten Satz:
elch_mg wrote:ich stehe gerade vor einem Problem.. ich habe einige FTP-User, denen ich gerne eine Möglichkeit zur Verfügung stellen würde, ihr Passwort zu ändern.
Da pure-ftpd eine eigene (optionale) Benutzerverwaltung mitbringt, lässt sich dafür schnell ein Frontend schreiben, oder ein fertiges wie etwa http://machiel.generaal.net/index.php?s ... r_pureftpd anpassen. Naja, ist auch egal, Du wolltest den FTPd ja nicht wechseln...

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 22:17
by elch_mg
ich übe noch daran, mich in jedem Satz exakt auszudrücken, so dass keine Missverständnisse entstehen können ;)

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 22:50
by flo
Wenn Du schon sagst, daß Du Dir LDAP überlegst - warum nicht?

flo.

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 22:55
by elch_mg
gute frage... was mache ich, wenn der LDAP abraucht?
Es ist doch möglich, pam_ldap und pam_pwb (?) parallel laufen zu lassen.. oder? So dass ich zumindest root und einen benutzer wie gehabt über passwd/shadow laufen lassen kann.

Das eigentliche Problem (??) ist aber, dass ich noch nie was mit LDAP gemacht habe. Lernen kann mans ja..

Re: Auth über PAM - Password per Weboberfläche ändern? [was: FTP-User ohne Shell - Passwortänderung?

Posted: 2006-06-19 23:09
by flo
per PAM ist das doch kein Thema - außer den UNIX-Accounts gibt es dann eben noch pam_ldap, pam_winbindd, pam_mysql oder wie auch immer.

flo.