Titel: AuthUserFile Beitrag von: smb am 07. März 2007, 18:10:01 Hi ;-)
ich habe leichte Probleme beim einrichten des proftpd. Um die korrekte Installation sicherzustellen, habe ich einen Systemuser ftptest und eine Gruppe ftptester angelegt und in der proftpd.conf den Eintrag Code: <Limit LOGIN> DenyGroup !ftptester </Limit> hinzugefügt. Ein Test klappte sofort. Nun möchte ich aber die Authentifizierung via AuthUserFile vornehmen. Also habe ich mittels ftpasswd eine Gruppe filegroup angelegt im File /var/pass/ftpdgroup.group Code: filegroup:x:1010:filetest und ebenfalls einen User filetest im File /var/pass/ftpduser.passwd Code: filetest:$1$4GgvCQUk$RxJFpMuAsCeL8xjFknBoi0:1010:1010::/home/filetest:/bin/false Der proftpd.conf habe ich folgende Einträge hinzugefügt: Code: # ------------------------------------------- # Authfile # ------------------------------------------- AuthOrder mod_auth_file.c AuthUserFile /var/pass/ftpduser.passwd AuthGroupFile /var/pass/ftpdgroup.passwd Danach ein proftpd restart gemacht. Beim Test sagt mir der proftpd "Login incorrect". Das Systemlog (auth-log) zeigt: Code: Mar 7 17:51:06 xx.xx.xx.xx proftpd[25955]: "hostname" ("hostname"[127.0.0.1]) - USER filetest: no such user found from "hostname" [127.0.0.1] to 127.0.0.1:21 Ich habe vorher schon ein wenig probiert, was nicht zum Erfolg führte. Deswegen habe ich jetzt versucht, nur die minimal notwendigen Änderungen vorzunehmen, um andere Config-Fehler auszuschliessen. Was habe ich vergessen? Muss die Gruppe filegroup vielleicht ein Systemuser sein? Titel: Re: AuthUserFile Beitrag von: smb am 07. März 2007, 18:58:41 Der Übersicht halber nochmal ein neues Posting:
proftpd.conf (zu Testzwecken, ziemlich nackt) Code: # This is a basic ProFTPD configuration file (rename it to # 'proftpd.conf' for actual use. It establishes a single server # and a single anonymous login. It assumes that you have a user/group # "nobody" and "ftp" for normal operation and anon. ServerName "meinserver" # den eigenen Server angeben ServerType standalone DeferWelcome off ShowSymlinks on MultilineRFC2228 on DefaultServer on AllowOverwrite on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-An +R" strict DenyFilter \*.*/ #PersistentPasswd off Port 21 MaxInstances 30 User nobody Group nogroup <Directory /*> Umask 022 022 AllowOverwrite on </Directory> # ------------------------------------------- # Authfile # ------------------------------------------- AuthOrder mod_auth_file.c AuthUserFile /var/pass/ftpduser.passwd AuthGroupFile /var/pass/ftpdgroup.group DefaultRoot ~ #<Limit LOGIN> # DenyGroup !ftptester #</Limit> RootLogin off RequireValidShell off UseReverseDNS off IdentLookups off LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat auth "%v [%P] %h %t \"%r\" %s" LogFormat write "%h %l %u %t \"%r\" %s %b" ExtendedLog /var/log/ftp_auth.log AUTH auth ExtendedLog /var/log/ftp_access.log WRITE,READ write ExtendedLog /var/log/ftp_paranoid.log ALL default Beim erstellen des Users mit ftpasswd kam übrgens folgende Meldung: Code: :~# ftpasswd --passwd --name=filetest --uid=1010 --home=/home/filetest --shell=/bin/false --file=/var/pass/ftpduser.passwd ftpasswd: using alternate file: /var/pass/ftpduser.passwd ftpasswd: --passwd: missing --gid argument: default gid set to uid ftpasswd: creating passwd entry for user filetest ftpasswd: /bin/false is not among the valid system shells. Use of ftpasswd: the RequireValidShell may be required, and the PAM ftpasswd: module configuration may need to be adjusted. Muss da vielleicht noch etwas zusätzlich configuriert werden? Code: :~# proftpd -l Compiled-in modules: mod_core.c mod_xfer.c mod_auth_unix.c mod_auth_file.c mod_auth.c mod_ls.c mod_log.c mod_site.c mod_auth_pam.c mod_quotatab.c mod_ratio.c mod_tls.c mod_rewrite.c mod_radius.c mod_wrap.c mod_quotatab_file.c mod_delay.c mod_readme.c mod_ifsession.c mod_cap.c Titel: Re: AuthUserFile Beitrag von: smb am 07. März 2007, 20:42:58 Nochmal ich :)
:~# proftpd -nd5 - mod_tls/2.0.7: using OpenSSL 0.9.7e 25 Oct 2004 - parsing '/etc/proftpd.conf' configuration - Compiling deny regex '\*.*/'. - Allocated deny regex at location 0x8118578. - <Directory /*>: adding section for resolved path '/*' hostname - hostname - Config for meinserver: hostname - /* hostname - Umask hostname - DirUmask hostname - AllowOverwrite hostname - ShowSymlinks hostname - DisplayLogin hostname - DisplayFirstChdir hostname - ListOptions hostname - DenyFilter hostname - RootLogin hostname - RequireValidShell hostname - DeferWelcome hostname - ShowSymlinks hostname - DefaultServer hostname - AllowOverwrite hostname - TimeoutNoTransfer hostname - TimeoutStalled hostname - TimeoutIdle hostname - DisplayLogin hostname - DisplayFirstChdir hostname - ListOptions hostname - DenyFilter hostname - UserID hostname - UserName hostname - GroupID hostname - GroupName hostname - AuthOrder hostname - AuthUserFile hostname - AuthGroupFile hostname - DefaultRoot hostname - RootLogin hostname - RequireValidShell hostname - IdentLookups hostname - ExtendedLog hostname - ExtendedLog hostname - ExtendedLog hostname - deleting existing scoreboard '/var/run/proftpd/proftpd.scoreboard' hostname - Failed binding to 0.0.0.0, port 21: Address already in use hostname - Check the ServerType directive to ensure you are configured correctly. Hm, beim Start bzw proftpd restart kommt aber keine Fehlermeldung. :~# netstat -pant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 20229/mysqld tcp 0 0 0.0.0.0:110 0.0.0.0:* LISTEN 13649/couriertcpd tcp 0 0 0.0.0.0:143 0.0.0.0:* LISTEN 13827/couriertcpd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 28178/apache2 tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 20006/proftpd: (acc tcp 0 0 xx.xx.xx.xx:53 0.0.0.0:* LISTEN 18316/named tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 18316/named tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 11554/sshd tcp 0 0 0.0.0.0:25 0.0.0.0:* LISTEN 21506/master tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 18316/named tcp 0 0 0.0.0.0:993 0.0.0.0:* LISTEN 13892/couriertcpd tcp 0 0 0.0.0.0:995 0.0.0.0:* LISTEN 13752/couriertcpd tcp 0 832 xx.xx.xx.xx:22 IP-von-Zuhause:2124 ESTABLISHED1595/0 Bin jetzt planlos ??? Titel: Re: AuthUserFile Beitrag von: smb am 07. März 2007, 21:19:32 Hallo liebes Tagebuch *g*
gibt es eigentlich keine Edit-Funktion? ??? Ich habe mal die das AuthUserFile und AuthGroupFile in /etc/pass gelegt und den Pfad entsprechend angepasst - bringt aber keinen Erfolg. Was ist denn mit /etc/init.d/proftpd ? Dort steht Code: #%PAM-1.0 auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed @include common-auth # This is disabled because anonymous logins will fail otherwise, # unless you give the 'ftp' user a valid shell, or /bin/false and add # /bin/false to /etc/shells. #auth required pam_shells.so @include common-account @include common-session Muss da vielleicht etwas verändert werden? Argh, das macht mich ganz wuschig :( Titel: Re: AuthUserFile Beitrag von: VolGas am 08. März 2007, 14:15:06 Hallo!
Da hast Du aber ein Megaposting abgelassen mit allen wichtigen Daten - das hat mich doch ein wenig abgeschreckt. Aber eines fehlt: was ist das für eine Installation? (Neue von Debian oder was sonst?) Dein letztes Posting hat mich nämlich verblüfft - so etwas hatte ich bisher noch nicht gesehen. In der "/etc/init.d/proftpd" wäre vielleicht auch der Fehler zu suchen, denn da steht wohl ein anderer Pfad zum Userfile als den, den Du gewählt hast. Aber meiner Meinung nach ist es kompletter Unsinn, den ProFTPD mit PAM zu benutzen, da dieses nur die Authorisation bewerkstelligt und sonst nichts. Ich empfehle Dir daher, ein Backup Deiner bisherigen "/etc/init.d/proftpd" zu machen und dann eine passende aus dem Tool-Bereich dieser Website (->hier (http://www.proftpd.de/Tools.53.0.html)) einzusetzen - natürlich entsprechend angepasst... Deine Konfigurationsdatei sieht recht ordentlich aus, mir ist auch kein Fehler aufgefallen - sollte funktionieren. Die riesige Liste der Module läßt wirklich darauf schließen, daß Du ein vorgefertigtes Paket benutzt. Das ist zunächst nicht unbedingt etwas schlechtes, doch vertrete ich die Meinung, daß man seine Serversoftware so schlank wie möglich halten sollte. Das minimiert mögliche Softwarefehler, Seiteneffekte und Angriffsflächen. Ich compiliere aus diesen Gründen unsere Serversoftware immer selbst. Wenn Du das auch probieren möchtest: ein Posting mit Beispiel zum Compilieren des ProFTPD: ->hier (http://www.proftpd.de/forum/index.php/topic,1989.msg9444.html#msg9444), (mySQL-Teile und natürlich auch "--disable-auth-file" entfernen!), Erklärungen zu den dort genutzten Optionen: ->hier (http://www.proftpd.de/forum/index.php/topic,2185.msg10312.html#msg10312). Hier noch ein Textbaustein, der Dir vielleicht weiterhelfen könnte (nicht, daß ich Deine Konfig schlecht halten würde!): Eine gut funktionierende proftpd.conf, die die wichtigsten und meist benötigten Anforderungen abdeckt, kann man bei den ->Beispiel Konfigurationen (http://www.proftpd.de/Beispiel-Konfigurationen.25.0.html) finden: die ->proftpd.conf Standard Deluxe (http://www.proftpd.de/uploads/media/proftpd.conf)... Sodele, jetzt bist Du aber gerüstet... Ach ja, das hätte ich beinahe vergessen: "hostname - Failed binding to 0.0.0.0, port 21: Address already in use" Schieß' diesen Prozess ab und sieh' nach, ob Du den Hostnamen für Dein System eingetragen hast (/etc/hostname) und Deine sonstige Netzwerkonfiguration in Ordnung ist. Nach all dem starte am besten Deine Maschine neu... mfg. VolGas Titel: Re: AuthUserFile Beitrag von: smb am 08. März 2007, 16:10:49 Hi,
Da hast Du aber ein Megaposting abgelassen mit allen wichtigen Daten - das hat mich doch ein wenig abgeschreckt. Aber eines fehlt: was ist das für eine Installation? (Neue von Debian oder was sonst?) Immerhin hast du dich dich noch aufgerafft ;-)) Danke :) Ja, es ist eine Debian Installation eines vServers, den ich für zwei Projekte benötige. Ansonsten hätte ich die Installation sicher selbst versucht vorzunehmen, es ist mir lieber ich arbeite mich in etwas ein und lerne aus meinen eigenen Fehlern, als die Fehler anderer zu übernehmen (übernehmen zu müssen) *g* Zitat Dein letztes Posting hat mich nämlich verblüfft - so etwas hatte ich bisher noch nicht gesehen. In der "/etc/init.d/proftpd" wäre vielleicht auch der Fehler zu suchen, denn da steht wohl ein anderer Pfad zum Userfile als den, den Du gewählt hast. Aber meiner Meinung nach ist es kompletter Unsinn, den ProFTPD mit PAM zu benutzen, da dieses nur die Authorisation bewerkstelligt und sonst nichts. Die dort angeführte /etc/ftpusers beinhaltet Systemuser wie postfix usw... mh, auch nobody vielleicht? Mom... :) Ah... Code: # /etc/ftpusers: list of users disallowed FTP access. See ftpusers(5). root daemon bin sys sync games man lp news uucp nobody Vielleicht ist das der Grund, der proftpd läuft ja an sich als User noboy? Wobei... im "normalen" Betrieb, also mit der Systemuser-Auth, klappt es ja auch. Trotzdem, das werde ich mal testweise ändern und den nobody herausnehmen bzw einen anderen User erstellen nur für den proftpd, der dann nicht verboten ist. Code: Ich empfehle Dir daher, ein Backup Deiner bisherigen "/etc/init.d/proftpd" zu machen und dann eine passende aus dem Tool-Bereich dieser Website (->[url=http://www.proftpd.de/Tools.53.0.html]hier[/url]) einzusetzen - natürlich entsprechend angepasst... Auch das werde ich probieren, danke für den Link. Code: Deine Konfigurationsdatei sieht recht ordentlich aus, mir ist auch kein Fehler aufgefallen - sollte funktionieren. Die riesige Liste der Module läßt wirklich darauf schließen, daß Du ein vorgefertigtes Paket benutzt. Das ist zunächst nicht unbedingt etwas schlechtes, doch vertrete ich die Meinung, daß man seine Serversoftware so schlank wie möglich halten sollte. Das minimiert mögliche Softwarefehler, Seiteneffekte und Angriffsflächen. Ja, siehe oben (Debian vServer) Code: Ich compiliere aus diesen Gründen unsere Serversoftware immer selbst. Wenn Du das auch probieren möchtest: ein Posting mit Beispiel zum Compilieren des ProFTPD: ->[url=http://www.proftpd.de/forum/index.php/topic,1989.msg9444.html#msg9444]hier[/url], (mySQL-Teile und natürlich auch "--disable-auth-file" entfernen!), Erklärungen zu den dort genutzten Optionen: ->[url=http://www.proftpd.de/forum/index.php/topic,2185.msg10312.html#msg10312]hier[/url]. Auch wenn ich da durch die Konfiguration gehandicapt bin, lese ich es mal durch. Leider kann ich ja auch die SQL-Auth nicht nutzen mangels einkompoliertem Modul, die mir sonst auch gut gefallen hätte - mit Mysql kenne ich mich auch ein wenig aus. Nun reichen aber meine *ix Kenntnisse nicht aus um zu ermitteln, ob ich das Modul irgendwie nachträglich einbinden kann (z.b. bei Start des proftpd laden). Aber das liesse sich evtl auch ergoogeln. Zitat Hier noch ein Textbaustein, der Dir vielleicht weiterhelfen könnte (nicht, daß ich Deine Konfig schlecht halten würde!): Eine gut funktionierende proftpd.conf, die die wichtigsten und meist benötigten Anforderungen abdeckt, kann man bei den ->Beispiel Konfigurationen (http://www.proftpd.de/Beispiel-Konfigurationen.25.0.html) finden: die ->proftpd.conf Standard Deluxe (http://www.proftpd.de/uploads/media/proftpd.conf)... Ja, die habe ich schon benutzt und als erste Vorlage genommen. Als es dann nicht funktionierte, habe ich alles disabled oder gelöscht, was nicht unbedingt notwendig war für den ersten Betrieb bzw Test, um mögliche Fehlerquellen auszuschliessen. Zitat Ach ja, das hätte ich beinahe vergessen: "hostname - Failed binding to 0.0.0.0, port 21: Address already in use" Schieß' diesen Prozess ab und sieh' nach, ob Du den Hostnamen für Dein System eingetragen hast (/etc/hostname) und Deine sonstige Netzwerkonfiguration in Ordnung ist. Nach all dem starte am besten Deine Maschine neu... Hm, ok. Der Hostname ist eingetragen, hosts.allow und hosts.deny sind auch sauber. Aber, fällt mir gerade ein, wenn der proftpd von xinetd gestartet wird, könnte da vielleicht das Problem irgendwo brgraben liegen? Ok, erstmal vielen Dank für deine Hilfe und deine zahlreichen Anregungen. Irgendwann kommt man ja an den Punkt, wo man denkt alles angeschaut und geprüft zu haben und es einfach nicht geht, sei es wegen Erdstrahlen oder dem Stand des Mondes oder sonstwas :D Grüsse, smb Titel: Re: AuthUserFile Beitrag von: VolGas am 08. März 2007, 17:02:44 Gern geschehen.
Den ProFTPD mußt Du aus dem (x)inetd herausnehmen und diesen dann neu starten. Dein Server soll im standalone-Modus laufen. Da habe ich nicht ganz aufgepasst: "/etc/ftpusers" ist mir bekannt und es steht ja auch in der ersten Zeile drin, wozu das gut ist. Der ProFTPD kann dieses File selbst auswerten -wenn erwünscht- und braucht dazu kein PAM. Für den ProFTPD braucht man PAM überhaupt nicht, das ist nur unnötiger Overhead. Laß den User "nobody" ruhig mal in der proftpd.conf stehen: das ist der User, unter dessen Zugriffsrechte der ProFTPD laufen soll, wenn er nicht kurzfristig(st) als "root" einen neuen Prozess von sich "forkt". Noch ´n Textbaustein, zum Verständnis: Der ProFTPD ist wie eine Usershell zu betrachten: nach dem Einloggen hat der neu gestartete, individuelle Prozess die selbe User- und Group-ID wie der eingeloggte User - alle Root-Rechte wurden aufgegeben. Damit hat der ProFTPD nur noch die selben Zugriffsrechte wie der User. Das kann nicht ausgehebelt oder umgangen, sondern nur weiter ausgebaut werden! Also: der ProFTPD nutzt im vollen Umfang die Zugriffsrechte des Filesystems, nein, er ist ihnen sogar völlig unterworfen. Alles, was man in der Konfiguration mit "<Limit>" zusätzlich einschränkt, sind nur FTP-Befehle, keine eigentlichen Zugriffsrechte. Daher ist man gut beraten, wenn man mit Limitierungen in der proftpd.conf möglichst sparsam umgeht oder besser gar nicht verwendet. [ENDE] Die "proftpd.conf Standard Deluxe" funktioniert schon ganz gut, muß aber immer geringfügig angepasst werden. Allerdings ist "mod_auth-file" nicht darin vorgesehen, die zwei/drei Zeilen dafür kann man ja hinzufügen. Mit mySQL wird das Ganze natürlich super-bequem und einfach, wenn man sich z.B. noch "phpMyAdmin" installiert. Dazu kannst Du Dir mit Debian recht einfach den mySQL-Server installieren lassen. Man kann dabei sogar die auto- matischen Abhängigkeiten ausnutzen: "apt-get install proftpd-mysql" sollte reichen, das erzwingt alles weitere... ;) Nicht unbedingt optimal, aber... Verkrafte erst mal alle Informationen oder vergiß' alles und bleibe bei dem letzten Vorschlag. Mond und Erdstrahlen lassen wir mal weg, das Leben kann auch schon so kompliziert genug sein. Noch viel Erfolg und Spaß bei dem Ganzen! mfg. VolGas Nachtrag: vor einem "apt-get install" vorher immer zuerst (einmal am Tag) ein "apt-get update" durchführen lassen! |