proftpd mit mod_sql

chrisi01

Romy lieb haben
ID: 101113
L
26 November 2008
2.854
238
hi

ich versuche grade mich bissle mit linux. Ein wenig Erfahrung hab ich aber noch lange kein profi ;)

bin schon stolz auf mich proftpd mit mod_sql compiliert und installiert zu bekommen (es gab einige Probleme dabei aber ich hab sie alle gelöst :LOL: )

ftp startet auch nur ist noch keine Verbindung zur db angelegt. Connecten funktioniert, nur eben habe ich keine User angelegt (auch noch keine Verbindung zur db)

sobald ich dann in die proftpd.conf folgende Zeilen eintrage um die Verbindung zur db herzustellen:
SQLAuthTypes Plaintext
SQLAuthenticate users
SQLConnectInfo ftpuser @localhost ftp das_mysql_db_passwort_für_user_ftp
SQLDefaultGID 65534
SQLDefaultUID 65534
SQLMinUserGID 100
SQLMinUserUID 500
SQLUserInfo ftpuser username password uid gid homedir shell

startet zwar der proftpd noch aber ich kann nicht mehr connecten.

habe einen mysql user "ftp" mit dem passwort "das_mysql_db_passwort_für_user_ftp" angelegt. Die SQL Tabelle heißt ftpuser und die tabellen sind angelegt nach folgenden Schema:
https://www.proftpd.de/files/proftpd_sql.sql

Sobald ich die mysql Sachen aus der proftpd.conf rausnehme kann ich wieder connecten, wenn sie drinnen sind geht es nicht.

An was könnte das liegen? Ich finde leider nirgends log Dateien vom proftpd. Muss man die erst irgendwie "aktivieren"?

Zusammenfassung: Ohne den Zitat oben in der proftpd.conf kann ich connecten habe nur keinen User zum einloggen. Wenn ich das Zitat oben in die proftpd.conf schreibe kann ich gar nicht mehr connecten.

mfg

Chris
 
Zuletzt bearbeitet:
Für jedes Plaintext-Passwort in der Datenbank stirbt ein <hier niedliches Tier einsetzen> :ugly:

davon abgesehen muss ftpuser@localhost zusammengeschrieben werden, wenn ich das richtig sehe :)
 
hi

wenn plaintext funktioniert werde ich mich natürlich schlau machen wie ich das pw verschlüsselt eintrage. Aber erst muss es mal so funktionieren.

Das mit dem Leerzeichen werde ich mal probieren danke

mfg

chris
 
Schau dir mal das * hinter User an.
SQLAuthenticate users*

https://www.proftpd.de/HowTo-SQL.29.0.html schrieb:
ProFTPD.conf anpassen

Nun passen wir die proftpd.conf an. mod_sql bietet viele Möglichkeiten, so z.B. User und Gruppenverwaltung, verschiedene Arten die Passwörter zu verschlüsseln, die Integration von Quota oder Access Kontrollen. In diesem Beispiel richten wir nun eine ganz einfache Konfiguration ein, für mehr verweise ich auf die Dokumentation.

SQLAuthTypes Plaintext

SQLAuthenticate users*

SQLConnectInfo db@localhost username password

SQLDefaultGID 65534

SQLDefaultUID 65534

SQLMinUserGID 100

SQLMinUserUID 500

SQLUserInfo ftp username password uid gid homedir shell



Hierzu einige Anmerkungen:

"SQLAuthTypes Plaintext" gibt an, dass die Passwörter unverschlüsselt angelegt werden

das "*" hinter "SQLAuthenticate users*" gibt an, dass nur die SQL Datenbank zur Authentifizierung benutzt wird, die normalen System User keinen Zugang haben. Würde das "*" fehlen, dann würden zusätzlich noch die normalen Systemuser geprüft.

Die Defaultwerte geben an, welche UID und GID genommen werden, wenn entweder die in der SQL DB angegeben werden kleiner als die Mindestwerte (stehen darunter) sind oder garkeine angegeben werden. In meinem Beispiel "mappe" ich die UID und GID auf den User "nobody:nogroup". Man muss nicht unbedingt eine UID und GID nehmen, die am System existiert, jedoch ist meiner Meinung nach so besser zu verstehen.

In der letzten Zeile werden dann der Tabellenname (hier "ftp"), sowie die Feldbezeichnungen von Usernamen, password usw. angegeben.
 
hi

danke dir auch hab die proftpd.conf nun so:

ServerName "ProFTPD Default Installation"
ServerType standalone
DefaultServer on
Port 21
Umask 022
MaxInstances 30
SQLAuthTypes Plaintext
SQLAuthenticate users*
SQLConnectInfo ftpuser@localhost ftp DASDBPW
SQLDefaultGID 65534
SQLDefaultUID 65534
SQLMinUserGID 100
SQLMinUserUID 500
SQLUserInfo ftpuser username password uid gid homedir shell
AllowOverwrite on
<Limit SITE_CHMOD>
DenyAll
</Limit>
<Anonymous ~ftp>
User ftp
Group ftp
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayChdir .message
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>

die db sieht so aus (Datenbankname ftpuser):

PHP:
CREATE TABLE IF NOT EXISTS `ftp` (
  `username` varchar(60) character set latin1 collate latin1_bin default NULL,
  `uid` int(11) default NULL,
  `gid` int(11) default NULL,
  `password` varchar(30) default NULL,
  `homedir` varchar(250) default NULL,
  `count` int(11) default NULL,
  `ui` bigint(20) NOT NULL auto_increment,
  `shell` varchar(60) default NULL,
  `letzter_zugriff` datetime default NULL,
  `zugang` char(1) default NULL,
  PRIMARY KEY  (`ui`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 PACK_KEYS=1 AUTO_INCREMENT=2 ;

--
-- Daten für Tabelle `ftp`
--

INSERT INTO `ftp` (`username`, `uid`, `gid`, `password`, `homedir`, `count`, `ui`, `shell`, `letzter_zugriff`, `zugang`) VALUES
('chrisi01', 65534, 35534, 'PWPWPWPW', '/var/www', NULL, 1, NULL, NULL, NULL);

wenn ich nun versuche mit der ip username chrisi01 und pw PWPWPWPW zu connecten bringt flashfxp nun

WinSock 2.0 -- OpenSSL 0.9.8i 15 Sep 2008
[R] Connecting to IPIPIPIP -> IP=IPIPIPIP PORT=21
[R] Connected to IPIPIPIP
[R] 220 ProFTPD 1.3.1 Server (ProFTPD Default Installation) [IPIPIP]
[R] USER chrisi01
[R] 331 Password required for chrisi01
[R] PASS (hidden)
[R] Connection failed (Connection lost)
[R] Delaying for 120 seconds before reconnect attempt #1
[R] Retry attempt Aborted

was mach ich da noch falsch? per phpmyadmin komm ich auch mit username ftp und pw DASDBPW in die datenbank also der mysql user existiert auch.

mfg

chris