Krieg proftd-mysql nich ans laufen

M

MF-Scripts

Mitglied
Hey,
ich habe seit ein paar Tagen nen neuen Server, den ich jetzt einrichetn will. Vorallem will ich jetzt MySQL versionen nutzen, da iches leit bin, alles über SSH zu machen. Über ein Webinterface is doch viel bequemer ;)
Apache2, PHP5, MySQL5 ist schon installiert. Jetzt bin ich beim FTP, und zwar proftpd.
Beim starten (/etc/init.d/proftpd (re)start) kommen keine Fehler, aber wenn ich verbinde (egal, ob von mir aus oder lokal vom Server), ich erreiche den Server nicht.
Log aus Filezilla:
Status: Verbunden mit ************. Warten auf Willkommens-Meldung...
Fehler: Verbindung getrennt
Fehler: Verbindung kann nicht hergestellt werden!

In der proftpd.log steht dieses:
Jan 24 20:10:31 *****.serverkompetenz.net proftpd[20405] *****.serverkompetenz.net (******): FTP session closed.
Die verbindung wurde also sofort getrennt

Ein Blick in die proftpd.sql.log zeigt folgendes:
Jan 24 20:10:31 mod_sql/4.11[20405]: backend module 'mod_sql_mysql/4.04'
Jan 24 20:10:31 mod_sql/4.11[20405]: backend api 'mod_sql_api_v1'
Jan 24 20:10:31 mod_sql/4.11[20405]: >>> sql_getconf
Jan 24 20:10:31 mod_sql/4.11[20405]: entering mysql cmd_defineconnection
Jan 24 20:10:31 mod_sql/4.11[20405]: name: 'default'
Jan 24 20:10:31 mod_sql/4.11[20405]: user: 'root'
Jan 24 20:10:31 mod_sql/4.11[20405]: host: 'localhost'
Jan 24 20:10:31 mod_sql/4.11[20405]: db: 'proftpd'
Jan 24 20:10:31 mod_sql/4.11[20405]: port: '3306'
Jan 24 20:10:31 mod_sql/4.11[20405]: ttl: '0'
Jan 24 20:10:31 mod_sql/4.11[20405]: exiting mysql cmd_defineconnection
Jan 24 20:10:31 mod_sql/4.11[20405]: entering mysql cmd_open
Jan 24 20:10:31 mod_sql/4.11[20405]: exiting mysql cmd_open
Jan 24 20:10:31 mod_sql/4.11[20405]: unrecoverable backend error
Jan 24 20:10:31 mod_sql/4.11[20405]: error: '1251'
Jan 24 20:10:31 mod_sql/4.11[20405]: message: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client'
Das verstehe ich ehrlich gesagt nicht. Ich hab die neuste MySQL Client Version installiert mit
apt-get install mysql-server-5.0 mysql-client-5.0 mysql-common
proftpd hab ich so installiert:
apt-get install proftpd-mysql proftpd-common

Hier mal die proftpd.conf (nicht strukturiert, da ich ja erstmal nur teste ;))
#
# /etc/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#

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 \*.*/

# Uncomment this if you are using NIS or LDAP to retrieve passwords:
#PersistentPasswd off

# Uncomment this if you would use TLS module:
#TLSEngine on

# Uncomment this if you would use quota module:
#Quotas on

# Uncomment this if you would use ratio module:
#Ratios on

# Port 21 is the standard FTP port.
Port 21

# 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)
MaxInstances 30

# Set the user and group that the server normally runs at.
User nobody
Group nogroup

# Umask 022 is a good standard umask to prevent new files and dirs
# (second parm) from being group and world writable.
Umask 022 022
# Normally, we want files to be overwriteable.
AllowOverwrite on

# Delay engine reduces impact of the so-called Timing Attack described in
# http://security.lss.hr/index.php?page=details&ID=LSS-2004-10-02
# It is on by default.
#DelayEngine off

# A basic anonymous configuration, no upload directories.

# <Anonymous ~ftp>
# User ftp
# Group nogroup
# # We want clients to be able to login with "anonymous" as well as "ftp"
# UserAlias anonymous ftp
# # Cosmetic changes, all files belongs to ftp user
# DirFakeUser on ftp
# DirFakeGroup on ftp
#
# RequireValidShell off
#
# # 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
# <Directory *>
# <Limit WRITE>
# DenyAll
# </Limit>
# </Directory>
#
# # Uncomment this if you're brave.
# # <Directory incoming>
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# # <Limit READ WRITE>
# # DenyAll
# # </Limit>
# # <Limit STOR>
# # AllowAll
# # </Limit>
# # </Directory>
#
# </Anonymous>


RootLogin off
RequireValidShell off

DefaultRoot ~


# 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 proftpd@localhost root *****


# 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

# User quotas
# ===========
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

SQLNamedQuery gettally SELECT "ROUND((bytes_in_used/1048576),2) FROM ftpquotatallies WHERE name='%u'"
SQLNamedQuery getlimit SELECT "ROUND((bytes_in_avail/1048576),2) FROM ftpquotalimits WHERE name='%u'"
SQLNamedQuery getfree SELECT "ROUND(((ftpquotalimits.bytes_in_avail-ftpquotatallies.bytes_in_used)/1048576),2) FROM ftpquotalimits,ftpquotatallies WHERE ftpquotalimits.name = '%u' AND ftpquotatallies.name = '%u'"

SQLShowInfo LIST "226" "Used %{gettally}MB from %{getlimit}MB. You have %{getfree}MB available space."




SystemLog /var/log/proftpd.log
TransferLog /var/log/xferlog
SQLLOGFILE /var/log/proftpd.sql.log
Den Code hab ich von hier, weil mein selber zusammen geschriebenes auch nicht funktioniert hat und ich das nicht gesichert hatte und jetzt auch keine Lust hatte, das neu zu schreiben.

Hat einer ne Idee, wieso das nicht geht?
Ich finde es auch sehr merkwürdig, dass es geht, wenn ich die MySQL Sachen rausnehme :/
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Ich habs jetzt hinbekommen. Ich hab nach stundenlangem Googlen Rausgefunden, dass die Debian Pakte nen Bug haben und das deswegen nicht geht. Also hab ich das manuell kompiliert und jetzt geht es :)
Aber jetzt gibt es ein anderes Problem. Wie kann ich proftpd neustarten ohne jedesmal den Server zu rebooten? Die init.d Scripts gibts bei den selbst kompilierten Paketen ja nicht :(
 
Zuletzt bearbeitet:
Aber jetzt gibt es ein anderes Problem. Wie kann ich proftpd neustarten ohne jedesmal den Server zu rebooten? Die init.d Scripts gibts bei den selbst kompilierten Paketen ja nicht :(
Hallo,

aber du könntest, wenn evtl. Pfade anders sind als in den Paketen, ein Initscript von den Paketen anpassen (oder ein einfaches nach Vorlage vorhandener Scripte anfertigen...)

Ansonsten, wenn du einen Prozeß hast, kannst du ihm ein KILL-Signal senden, ich benutze einen anderen FTPD, aber ich rate mal:
Code:
kill -1 `pidof proftpd`
  • kill -1
    (weist den Prozeß mit einer bestimmten ID an, die Konfig neu zu laden -> SIGHUP = "-1")
  • `pidof proftpd`
    (und die ID ist nicht bekannt, also wird sie innerhalb von "Backticks" abgefragt (die beiden `) - so wird "kill -1" auf das angewendet, was "pidof" liefert)
Einfacher ist evtl. einfach killall -1 proftpd - der Unterschied ist, daß "kill" eine Prozeßid erwartet und "killall" den Namen. Ich habe manchmal einen Prozeß mit "killall" nicht erreicht, mit "kill -x `pidof name`" aber doch - ich hab noch nicht raus, wann und warum... weiß das jemand?

Any way... die sauberste Lösung wäre, ein Initscript umzubauen oder zu schreiben.
 
Thx. Werds mal testen und dann evt. versuchen ein init Script zu schreiben.
 

Ähnliche Themen

Nginx als Reverse Proxy für Nextcloud und Emby

Zugriff Ubuntu 16.04. auf Freigabe 18.04. LTS nicht möglich

X startet nichtmehr

Apache /var/www zu /home/ich/www wechseln

JBidWatcher: Problem bei loading Auctions in Verbindung mit mySQL

Zurück
Oben