Hallo Zusammen
Ich habe ProFTPD auf FreeBSD aufgesetzt.
Die Authentifizierung läuft über eine mySQL Datenbank. Diese wird über eine Weboberfläche verwaltet.
Dies läuft alles sehr gut. Ich kann Benutzer über meine PHP-Seite eintragen... dann wird ein mySQL Eintrag erstellt und ihr homedir kreiert.
Sie können sich dann sofort am FTP-Server anmelden.
Nun muss ich ein weiteres Feature realisieren... nämlich eine Lebenszeit für die User... also wie lange ihr Account gültig ist.
Ich habe mir das so vorgestellt.
Ich trage in der mySQL Tabelle die Zeit des Erstellens und die Lebenszeit des Users ein.
Wenn sich der User nun anmelden möche, muss der proFTPD überprüfen, ob die Zeit, wenn der User erstellt wurde + die Lebenszeit, nicht schon in der Vergangheit der Systemzeit liegen.
Kann mir jemand sagen, wie ich das in der proftpd.conf eintragen muss?
Hier meine aktuelle proftpd.conf
#
# To have more informations about Proftpd configuration
# look at : http://www.proftpd.org/
#
# 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 "********************"
ServerType standalone
DefaultServer on
ServerIdent on "********************"
ServerAdmin ********@*************
DeferWelcome on
UseReverseDNS off
IdentLookups off
# Port 21 is the standard FTP port.
Port 21
# Umask 022 is a good standard umask to prevent new dirs and files
# from being group and world writable.
Umask 022
# To prevent DoS attacks, set the maximum number of child processes
# to 30. If you need to allow more than 30 concurrent connections
# at once, simply increase this value. Note that this ONLY works
# in standalone mode, in inetd mode you should use an inetd server
# that allows you to limit maximum number of processes per service
# (such as xinetd).
#Paar Einstellungen, um DoS Attacken zu minimieren
MaxInstances 30
MaxClients 10 "Only 10 connections are allowed"
MaxClientsPerHost 3 "You are already logged in 3 times"
MaxClientsPerUser 3 "You are already logged in 3 times"
MaxLoginAttempts 3
TimeoutStalled 10
TimeoutNoTransfer 20
TimeoutLogin 20
# Set the user and group under which the server will run.
User nobody
Group nogroup
#F<FC>r bisschen mehr logging
#Log Options
ExtendedLog /var/log/ftp.log auth,read,write
TransferLog /var/log/ftp_transfer.log
# To cause every FTP user to be "jailed" (chrooted) into their home
# directory, uncomment this line.
DefaultRoot ~
# Normally, we want files to be overwriteable.
AllowOverwrite on
# Restart erlauben
AllowStoreRestart on
AllowRetrieveRestart on
<Directory /*>
AllowOverwrite on
# hide everything that belongs to the group 'wheel'
HideGroup wheel
</Directory>
## Ab hier beginnt der ganze SQL kram...
# ---------------------------------------------
### SQL Section ###
# ---------------------------------------------
SQLAuthTypes Backend Plaintext
SQLAuthenticate users*
SQLConnectInfo login@localhost *user* *passwort*
SQLDefaultHomedir none
SQLDefaultGID 65534
SQLDefaultUID 65534
SQLMinUserGID 80
SQLMinUserUID 80
SQLUserInfo login_ftp username password uid gid homedir shell
# SQL Debugging
SQLLogFile /var/log/proftpd.sql.log
# We authenticate against MySQL - so not needed
RequireValidShell off
# Additional SQL Statements
SQLNamedQuery getcount SELECT "count, username from login_ftp where username='%u'"
SQLNamedQuery updatedbinfo UPDATE "count=count+1,last_login=NOW(),last_ip='%a' WHERE username='%u'" login_ftp
SQLShowInfo PASS "230" "Hello %u, you were already %{getcount} times logged in"
SQLLog PASS updatedbinfo
# limit only to active logins
SQLUserWhereClause "active = '1'"
## ... Ende SQL Zeug
# Bar use of SITE CHMOD by default
<Limit SITE_CHMOD>
DenyAll
</Limit>
# A basic anonymous configuration, no upload directories. If you do not
# want anonymous users, simply delete this entire <Anonymous> section.
#########################################################################
# #
# Uncomment lines with only one # to allow basic anonymous access #
# #
#########################################################################
#<Anonymous ~ftp>
# User ftp
# Group ftp
### We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
### Limit the maximum number of anonymous logins
# MaxClients 10
### We want 'welcome.msg' displayed at login, and '.message' displayed
### in each newly chdired directory.
# DisplayLogin welcome.msg
# DisplayFirstChdir .message
### Limit WRITE everywhere in the anonymous chroot
# <Limit WRITE>
# DenyAll
# </Limit>
#</Anonymous>
Vielen Dank für Eure Hilfe!
Nash