Hi,
hab grade ProFTPd 1.3.0 RC 5 installiert und wollte wieder die Zugangskontrolle mit der MySQL-Datenbank einrichten. Leider hab ich mir nicht aufgeschrieben, wie ich das damals mit 1.2.9 gemacht hab, und da hab ich versucht, die Konfiguration so gut wie möglich zu übernehmen. Aber direkt nach dem 'ftp localhost' oder 'ftp <rechnername>' wird die Verbidnung wieder geschlossen. Netcat und Telnet sagen das gleiche. Das Log ist leider wenig hilfreich, da steht nämlich überhaupt nichts zu dem Vorfall drin. Es wurde eine Verbindung erkannt, ein bisschen was gemacht, und dann die Verbindung wieder getrennt. Warum weiß ich nicht.
<edit>
Ich vergaß: Installation auf Debian Linux 3.1, Authentifizierung gegenüber MySQL 4.0, Compilieren mit MySQL 5 Libs hat funktioniert. Eine ähnliche Installation läuft bereits seit 2 Jahren im Produktivbetrieb, nur weiß ich leider nicht mehr, wie ich das geschafft hab. Keine lokale Firewall installiert.
</edit>
Hier die Details:
Konfig: (nur die Abweichungen vom Standard)
User ftp
Group ftp
DefaultRoot ~
TimesGMT off
ListOptions "-a"
LogFormat myown "%t %a %U %b %m \"%F\""
ExtendedLog /var/log/ftp.log DIRS,READ,WRITE myown
SystemLog /var/log/ftp
IdentLookups off
UseReverseDNS off
<Global>
SQLConnectInfo mydbname@localhost:3306 myuser mypass
SQLAuthTypes Backend Plaintext
SQLUserInfo ftpusers username password uid gid homedir NULL
RequireValidShell off
SQLAuthenticate users userset
SQLNamedQuery getcount SELECT "count, username FROM ftpusers WHERE username='%u'"
SQLNamedQuery updatecount UPDATE "count=count+1 WHERE username='%u'" ftpusers
SQLNamedQuery getlastlogin SELECT "lastlogin, username FROM ftpusers WHERE username='%u'"
SQLNamedQuery updatelastlogin UPDATE "lastlogin=NOW() WHERE username='%u'" ftpusers
SQLShowInfo PASS "230" "You've logged on %{getcount} times, %u. Last login was on %{getlastlogin}"
SQLLog PASS updatecount
SQLLog PASS updatelastlogin
SQLMinUserGID 100
SQLMinUserUID 100
</Global>
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/ftp-tls.log
TLSProtocol SSLv23
TLSOptions NoCertRequest
TLSRequired off
TLSRSACertificateFile /path/to/cert
TLSRSACertificateKeyFile /path/to/cert
TLSVerifyClient off
</IfModule>
Log: (Serverstart und Verbindung, mit -d 10)
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: FS: using system chdir()
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: ROOT PRIVS at main.c:2346
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: opening scoreboard '/usr/local/var/proftpd/
proftpd.scoreboard'
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: RELINQUISH PRIVS at main.c:2372
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: dispatching event 'core.startup' to mod_cor
e
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: ROOT PRIVS at inet.c:323
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: RELINQUISH PRIVS at inet.c:381
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: ProFTPD 1.3.0rc5 (devel) (built Mi Apr 5 10
:47:57 CEST 2006) standalone mode STARTUP
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: ROOT PRIVS at main.c:2209
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: RELINQUISH PRIVS at main.c:2211
Apr 05 13:13:41 debian31 proftpd[29047] mysql4.debian31: FS: using system lstat()
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31: RELINQUISH PRIVS at main.c:1180
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31: no matching vhost found for 127.0.0.1#21, u
sing DefaultServer 'dotforward.de FTP server'
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): ROOT PRIVS at main.c
:1025
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): SETUP PRIVS at main.
c:1030
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): FTP session requeste
d from unknown class
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): performing module se
ssion initializations
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): ROOT PRIVS at mod_tl
s.c:2763
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): RELINQUISH PRIVS at
mod_tls.c:2765
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): ROOT PRIVS at mod_tl
s.c:669
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): RELINQUISH PRIVS at
mod_tls.c:677
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): ROOT PRIVS at mod_tl
s.c:1103
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): RELINQUISH PRIVS at
mod_tls.c:1167
Apr 05 13:13:47 debian31 proftpd[29047] mysql4.debian31: FS: using system lstat()
Apr 05 13:13:47 debian31 proftpd[29047] mysql4.debian31: FS: using system lstat()
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): dispatching event 'c
ore.exit' to core
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): dispatching event 'c
ore.exit' to mod_delay
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): ROOT PRIVS at mod_de
lay.c:828
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): FS: using system ope
n()
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): RELINQUISH PRIVS at
mod_delay.c:830
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): mod_delay/0.5: write
-locking DelayTable '/usr/local/var/proftpd/proftpd.delay'
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): mod_delay/0.5: mappi
ng DelayTable '/usr/local/var/proftpd/proftpd.delay' into memory
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): mod_delay/0.5: unmap
ping DelayTable '/usr/local/var/proftpd/proftpd.delay' from memory
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): mod_delay/0.5: unloc
king DelayTable '/usr/local/var/proftpd/proftpd.delay'
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): FS: using system wri
te()
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): FS: using system clo
se()
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): dispatching event 'c
ore.exit' to mod_tls
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): dispatching event 'c
ore.exit' to mod_tls
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): mod_tls/2.1.1: scrub
bing 1 passphrase from memory
Apr 05 13:13:47 debian31 proftpd[29049] mysql4.debian31 (127.0.0.1[127.0.0.1]): FTP session closed.
Apr 05 13:13:47 debian31 proftpd[29047] mysql4.debian31: FS: using system lstat()
Die Verbindung zur Datenbank sollte funktionieren und der Zugriff auf das SSL-Zertifikat ist ebenfalls eingerichtet.