Wissensdatenbank
Buehl, Kevin
13 Januar 2016
2.386

Wissensdatenbank

PureFTP mit MySQL unter Debian installieren

Installation


PureFTP inkl. MySQL kann mit folgendem Befehl installiert werden:
aptitude install pure-ftpd-mysql

Konfiguration


Erstellen Sie eine Gruppe und einen Benutzer für PureFTP:
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/bash -d /var/www/ -c "PureFTPd user" -g ftpgroup ftpuser
cd /etc/pure-ftpd/conf
# user auf sein Verzeichnis beschränken
echo yes > ChrootEveryone
# Homeverzeichnis für Benutzer erstellen
echo yes > CreateHomeDir
# 100 gleichzeitige Verbindungen zum FTP Server
echo 100 >MaxClientsNumber
# 3 Verbindungen pro IP-Adresse
echo 3 > MaxClientsPerIP
# Maximal 95% der Festplatte kann genutzt werden
echo 95 > MaxDiskUsage
# Berechtigungen auf Owner beschränken
echo 117 007 > Umask
# Unix Auth verbieten, nur User aus DB haben access
echo no > UnixAuthentication
echo no > PAMAuthentication
# kleinste UserID, welche sich anmelden kann
echo 1000 > MinUID
# Anonymen Login verbieten
echo yes > NoAnonymous


Geben Sie den Pfad zur MySQL Konfiguration an:
echo /etc/pure-ftpd/db/mysql.conf > MySQLConfigFile


Ändern Sie die MySQL Zugangsdaten:
nano /etc/pure-ftpd/db/mysql.conf
MYSQLSocket		/var/run/mysqld/mysqld.sock
MYSQLUser pureftpd_dat
MYSQLPassword veixK5fsXAGnzd3
MYSQLDatabase pureftpd
MYSQLCrypt cleartext
MYSQLGetPW SELECT Password FROM users WHERE user='\L'
MYSQLGetUID SELECT uid FROM users WHERE user='\L'
MYSQLGetGID SELECT gid FROM users WHERE user='\L'
MYSQLGetDir SELECT dir FROM users WHERE user='\L'
MySQLGetQTAFS SELECT quotafiles FROM users WHERE user='\L'
MySQLGetQTASZ SELECT quotasize FROM users WHERE user='\L'
MySQLGetBandwidthUL SELECT ulbandwidth FROM users WHERE user='\L'
MySQLGetBandwidthDL SELECT dlbandwidth FROM users WHERE user='\L'
chmod 600 /etc/pure-ftpd/db/mysql.conf && chown root:root /etc/pure-ftpd/db/mysql.conf
/etc/init.d/pure-ftpd-mysql restart


Datenbank


erstellen


CREATE DATABASE pureftpd;
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
ON pureftpd.* TO 'pureftpd_dat'@'localhost'
IDENTIFIED BY 'veixK5fsXAGnzd3';
FLUSH PRIVILEGES;
USE pureftpd;
CREATE TABLE `users` (
`user` varchar(16) NOT NULL DEFAULT '',
`password` varchar(64) NOT NULL DEFAULT '',
`uid` varchar(11) NOT NULL DEFAULT '-1',
`gid` varchar(11) NOT NULL DEFAULT '-1',
`dir` varchar(128) NOT NULL DEFAULT '',
`ulbandwidth` smallint(5) NOT NULL DEFAULT '0',
`dlbandwidth` smallint(5) NOT NULL DEFAULT '0',
`comment` tinytext NOT NULL,
`ipaccess` varchar(15) NOT NULL DEFAULT '*',
`quotasize` smallint(5) NOT NULL DEFAULT '0',
`quotafiles` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`user`),
UNIQUE KEY `user` (`user`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;