[b]In deze howto ga ik beschrijven hoe je PureFTPD werkend kunt krijgen in
combinatie met MySQL.[/b]
[i] Voorkennis: MySQL‚ niet strikt noodzakelijk wel erg handig [/i]
Waarom met MySQL zul je denken‚ dit omdat het hierdoor eenvoudig wordt om de
gebruikers te beheren.
[pagebreak]
Waarpm pure-ftpd en geen proftpd of wu-ftpd‚ wat betreft wu-ftpd deze heeft de nare
eigenschap veel security bugs te hebben en dus niet echt ideaal‚ wat betreft Proftpd
deze is stukken beter als wu-ftpd echter vind de fucntionaliteit van Pure-Ftpd veel
groter en de documentatie van Pure-ftpd vind ik beter.
In de normale situatie haalt de FTP server zijn gebruiikers uit “/etc/passwd” dit is
voor weinig gebruikers goed te gebruiken‚ echter heb je meer gebruikers dan wordt
het snel onoverzichtelijk.
Als je deze howto volgt zul je een systeem krijgen dat eerst kijkt of een gebruiker
bestaat in de MySQL database en daarna kijkt hij in de vertrouwde /etc/passwd
Ik ga ervan uit dat je enigzins bekend bent met MySQL‚ zoniet volg dan deze link
[url=http://www.mysql.com]Mysql homepage[/url]
Snelle install MySQL
[shell]#cd /usr/ports/databases/mysql323-server
#make install clean
[/shell]
We gaan als eerste PureFTPD installeren
[shell]#cd /usr/ports/ftp/pure-ftpd
#make -DWITH_MYSQL install clean
[/shell]
Pureftpd gaat uitgevoerd worden m.b.v. tcpserver dit heeft als voordeel dat
hiermee de server beter bestand is tegen DOS aanvallen en er zijn meer filter
mogelijkheden.
Tcpserver is onderdeel van ucspi-tcp package‚ dus die installeren we:
[shell]#cd /usr/ports/sysutils/ucspi-tcp
#make install clean
[/shell]
Nu we de programma’s hebben geinstalleerd‚ kunnen we gaan configuren.
We maken een aparte database voor de ftp users en een standaard tabel.
[shell]#mysql -u root -p
Enter password: [vul je passwoord in]
mysql> CREATE DATABASE ftpusers;
mysql> USE ftpusers;
mysql> CREATE TABLE users (
User char(16) NOT NULL default ”‚
Password char(64) NOT NULL default ”‚
Uid int(11) NOT NULL default ‘-1’‚
Gid int(11) NOT NULL default ‘-1’‚
Dir char(128) NOT NULL default ”‚
PRIMARY KEY (User)
);
mysql>exit [/shell]
Als je niet zo bedreven bent met MySQL raad ik je aan om [url=http://phpwizard.net/projects/phpMyAdmin/]phpMyAdmin[/url]
te gebruiken.
Nu gaan we de ftp server configureren‚ open het bestand pureftpd-mysql.conf.sample met je
favoriete editor.
[shell]ee /usr/local/etc/pureftpd-mysql.conf.sample[/shell]
Het commentaar in deze file is heel erg duidelijk en moet eigenlijk geen problemen op leveren.
Als het configuratie bestand hebt aangepast moet je hem nog rename’n
[shell]mv /usr/local/etc/pureftpd-mysql.conf.sample /usr/local/etc/pureftpd-mysql.conf[/shell]
Je kunt pureftpd nu op verschillende manieren opstarten ik heb ervoor gekozen om pureftpd te draaien
mbv van tcpserver‚ dit is veiliger ik ga hier niet helemaal uitleggen waarom zoek even met google
en lees over tcpserver en meer over Mr. Bernstein.
Mijn startup script ziet er als volgt uit:
[shell]#!/usr/local/bin/bash
PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin
export PATH
exec tcpserver -DHRl0 0 21 pure-ftpd -O stats:/var/log/pureftpd.log -A -a 1006 -l mysql:/usr/local/etc/pureftpd-mysql.conf -l unix
[/shell]
Voor logging “-O
De “-l mysql:…”geeft aan eerst in de MySQl db kijken en daarna voor normale users in “/etc/passwd”
“-l unix”
-A = iedereen chrooten (kan niet lager als homedir)
-a 1006= deze groep kan overal komen (niet gechroot)
Voordat je dit blindenlings overneemt is het aan te raden even de README’s te lezen.
[url=files/pureftpdreadme.txt]Algemene Readme[/url]
[url=files/pureftpdmysqlreadme.txt]Readme voor MySQL[/url]
Met
[s=50]pure-ftpwho[/s]
zie je precies wat iedereen aan het doen is op je ftp.
Wat handige links:
[url=http://www.pureftpd.org]Pure-Ftpd homepage[/url]
[url=http://shagged.org/ftpstats/]Ftpstats handig om bij te houden hoeveel data er gegenereerd is.[/url]
Anonymous says
hmm dat ziet er makkelijk uit!!
good job! 🙂
via mysql -> kan je dan ook dingen veranderen via php ???
Anonymous says
Jeps, het aanmelden van users
gaat dus ook via php.
De beheer interface gaat dus ook via php.
Anonymous says
Je kunt het icm. OpenLDAP runnen 🙂
sigh says
ERROR 1064: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ‘.
Password char(64) NOT NULL default ”.
Uid int(11) NOT NU