Titel: Seltsames im neuen Jahr Beitrag von: oliver67 am 02. Januar 2007, 16:27:48 Hallo,
ich habe ein merkwürdiges Problem, das ohne bewusste Änderung am Server entstanden ist. Ich arbeite mit Debian 3.1 Sarge 64Bit, MySQL 4.1.11, proftp 1.2.10 Die Konfiguration entspricht diesem HowTo: http://www.howtoforge.com/proftpd_mysql_virtual_hosting wobei noch zusätzlich TLS konfiguriert ist. Das Problem: Im alten Jahr konnt ich das System prima nutzen und Dateien per FTP hochladen. Jetzt im neuen Jahr, geht nichts mehr. Als wäre irgend ein "haltbarkeitsdatum" überschritten. ??? Das FTP-Programm (filzilla 2.2.28) verbindet sich im passive mode mit expliziter tls verschlüsselung. MySQL und TLS login funktioniert, nur bekommt der Benutzer keinen Zugriff auf den in der DB hinterlegten Pfad. Die ftpuser der DB sind auch im System angelegt und der Systemgruppe ftpgruppe zugeordnet, owner und group sind auf den Verzeichenissen richtig gesetzt, aber irgendwie funktioniert das nicht mehr??? server log / debug level 6 (zuviel infos zum posten Code: .... Jan 02 15:53:12 xxx.xx.xx proftpd[2703] xxx.xx.xx (xx.dip.t-dialin.net[yy.yy.yy.yy]): notice: unable to resolve '~/': Permission denied .... Ausgabe Filzille Code: Status: Verbinden mit xxx.xx.xx... Status: Verbunden mit xxx.xx.xx, SSL-Verbindung wird ausgehandelt... Antwort: 220 ProFTPD 1.2.10 Server (Debian) [88.198.15.71] Befehl: AUTH TLS Antwort: 234 AUTH TLS successful Status: SSL-Verbindung hergestellt. Warten auf Willkommens-Meldung... Befehl: USER benutzer Antwort: 331 Password required for . Befehl: PASS ******** Antwort: 530 Login incorrect. Fehler: Verbindung kann nicht hergestellt werden! proftpd.conf Code: ServerName "Debian" ServerType standalone DeferWelcome off MultilineRFC2228 on DefaultServer on ShowSymlinks on TimeoutNoTransfer 600 TimeoutStalled 600 TimeoutIdle 1200 DisplayLogin welcome.msg DisplayFirstChdir .message ListOptions "-l" DenyFilter \*.*/ DefaultRoot ~ Port 21 MaxInstances 30 User ftpuser Group ftpgroup #nogroup Umask 022 022 AllowOverwrite on DebugLevel 6 ServerLog /var/log/proftp_server.log SystemLog /var/log/proftp_sys.log ExtendedLog /var/log/proftp_ext.log auth,read,write TransferLog /var/log/proftp_transfer.log # The passwords in MySQL are encrypted using CRYPT SQLAuthTypes Plaintext Crypt SQLAuthenticate users* groups* # used to connect to the database # databasename@host database_user user_password SQLConnectInfo dbbenutzer@localhost datenbank passwort # Here we tell ProFTPd the names of the database columns in the "usertable" # we want it to interact with. Match the names with those in the db SQLUserInfo ftpuser userid passwd uid gid homedir shell # Here we tell ProFTPd the names of the database columns in the "grouptable" # we want it to interact with. Again the names match with those in the db SQLGroupInfo ftpgroup groupname gid members # set min UID and GID - otherwise these are 999 each SQLMinID 500 # create a user's home directory on demand if it doesn't exist SQLHomedirOnDemand on # Update count every time user logs in SQLLog PASS updatecount SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser # Update modified everytime user uploads or deletes a file SQLLog STOR,DELE modified SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser SQLLogFile /var/log/proftpd_sql.log # User quotas # =========== # Quotas on??? QuotaEngine on QuotaDirectoryTally on QuotaDisplayUnits Mb QuotaShowQuotas on SQLNamedQuery get-quota-limit SELECT "name, quota_type, per_session, limit_type, bytes_in_avail, bytes_out_avail, bytes_xfer_avail, files_in_avail, files_out_avail, files_xfer_avail FROM ftpquotalimits WHERE name = '%{0}' AND quota_type = '%{1}'" SQLNamedQuery get-quota-tally SELECT "name, quota_type, bytes_in_used, bytes_out_used, bytes_xfer_used, files_in_used, files_out_used, files_xfer_used FROM ftpquotatallies WHERE name = '%{0}' AND quota_type = '%{1}'" SQLNamedQuery update-quota-tally UPDATE "bytes_in_used = bytes_in_used + %{0}, bytes_out_used = bytes_out_used + %{1}, bytes_xfer_used = bytes_xfer_used + %{2}, files_in_used = files_in_used + %{3}, files_out_used = files_out_used + %{4}, files_xfer_used = files_xfer_used + %{5} WHERE name = '%{6}' AND quota_type = '%{7}'" ftpquotatallies SQLNamedQuery insert-quota-tally INSERT "%{0}, %{1}, %{2}, %{3}, %{4}, %{5}, %{6}, %{7}" ftpquotatallies QuotaLimitTable sql:/get-quota-limit QuotaTallyTable sql:/get-quota-tally/update-quota-tally/insert-quota-tally RootLogin off RequireValidShell off # Uncomment this if you are using NIS or LDAP to retrieve passwords: #PersistentPasswd off # Uncomment this if you would use TLS module: #TLSEngine on TLSEngine on PassivePorts 60000 65000 TLSLog /var/log/proftpd_tls.log TLSProtocol SSLv23 TLSOptions NoCertRequest TLSRSACertificateFile /etc/ssl/certs/proftpd.cert.pem TLSRSACertificateKeyFile /etc/ssl/certs/proftpd.key.pem TLSVerifyClient off TLSRequired off Hat jemand eine Idee? Titel: Re: Seltsames im neuen Jahr Beitrag von: stonki am 03. Januar 2007, 18:47:02 naja, er kann das HomeDir nicht auflösen bzw. hat dafür keine Rechte. Bist Du Dir den 100% sicher, daß die Unix Rechte noch stimmen....
Titel: Re: Seltsames im neuen Jahr Beitrag von: oliver67 am 03. Januar 2007, 18:59:10 Hallo stonki,
sicher bin ich mir mittlerweile gar nicht mehr, aber vielleicht habe ich nur einen Denkfehler. Ich dachte "letztes Jahr" ;) ich nehme die Lösung mit SQL um die User besser verwalten zu können und lege aber zusätzlich zu jedem SQL-User einen Unix-User an und gebe dann die entsprechenden Rechte auf die Verzeichnisse. Der Gedanke war das eben nur in diesem Bereich die User Zugriff haben und sonst ausgeschlossen sind. Nach dem Lesen diverser Docs, scheint es aber so zu sein: Man legt die User in die BD, die Verzeichnisse werden aber mit den Rechten des Users versehen unter denen proftpd läuft (chown ftpuser). In der DB wird dann im UID-Feld die User-ID des proftpd-Users eingegeben und nicht des neu angelegten Users. Ist das so richtig? Denn dann funktioniert es wieder. Gibts denn Möglichkeiten das die ftp-User auch Owner der ftp-Verzeichnisse sind? Verstehen aber trotdem nicht, warum das vorher funktioniert hat und jetzt nicht mehr ???. Gruß Oliver Titel: Re: Seltsames im neuen Jahr Beitrag von: VolGas am 19. Januar 2007, 07:55:13 Hallo!
Dem Filesystem ist es völlig "schnuppe", ob zu einer UID/GID im System auch jeweils ein User eingetragen ist. Nur deswegen können mit dem ProFTPD auch virtuelle User (wie z.B. mit mySQL) angelegt werden, die auch die entsprechenden Rechte an Dateien und Verzeichnissen haben können. Es empfiehlt sich sogar dringend, daß man den ProFTPD explizit anweist, bei der Authentifikation NICHT auf die Daten der eingetragenen Systemuser zuzugreifen. ("AuthOrder mod_sql.c") Legst Du die Nutzer parallel als virtuelle und als Systemuser an, kann dies nur zu Verwirrungen führen. Warum Du allerdings zum Jahreswechsel Probleme bekommen hast, kann ich auch nicht sagen. Irgend etwas muß sich ja verändert haben. mfg. VolGas |