De Help Desk punt NL
Kennisbank
De Helpdesk > De Helpdesk > Kennisbank

PureFTPD installeren Fedora 11

Oplossing

1 Ten eerste

In deze uitleg gebruik ik als hostname server1.voorbeeld.nl met als IP address 10.0.0.105. Deze instellingen kunnen bij u anders zijn, dus vervang deze waar nodig met uw eigen instellingen.

 

2 Installeer MySQL en phpMyAdmin

Dit alles kan in een keer worden geinstalleerd met een commandoregel:

yum install mysql mysql-server phpMyAdmin httpd

Daarna moeten we de volgende file aanpassen /etc/httpd/conf.d/phpMyAdmin.conf om ervoor te zorgen dat phpMyAdmin toegangkelijk is vanaf elk IP adres. Standaard is dit 127.0.0.1. Zorg dat de volgende regels zijn uitgeschakeld door er een hekje (#) voor te plaatsen worden deze niet uitgelezen. Verwijderen mag ook maar ik doe dat pas als alles een tijdje in gebruik is zonder problemen.

<Directory /usr/share/phpMyAdmin/>
order deny,allow
deny from all
allow from 127.0.0.1
</Directory>

Dit bestand ziet er dan zo uit:

vi /etc/httpd/conf.d/phpMyAdmin.conf

# phpMyAdmin - Web based MySQL browser written in php  
#  
# Allows only localhost by default  
#  
# But allowing phpMyAdmin to anyone other than localhost should be considered  
# dangerous unless properly secured by SSL    
Alias /phpMyAdmin /usr/share/phpMyAdmin  
Alias /phpmyadmin /usr/share/phpMyAdmin  
#<Directory /usr/share/phpMyAdmin/>  
#   order deny,allow  
#   deny from all  
#   allow from 127.0.0.1  
#</Directory>    
# This directory does not require access over HTTP - taken from the original  
# phpMyAdmin upstream tarball  
#  
<Directory /usr/share/phpMyAdmin/libraries>      
Order Deny,Allow      
Deny from All      
Allow from None  
</Directory>    
# This configuration prevents mod_security at phpMyAdmin directories from  
# filtering SQL etc.  This may break your mod_security implementation.  
#  
#<IfModule mod_security.c>  
#    <LocationMatch "/phpMyAdmin/(.+)">  
#        SecRuleInheritance Off  
#    </LocationMatch>  
#</IfModule>

Dan maken we de opstart links voor MySQL en Apache (zo dat beide services automatisch opstarten als het systeem wordt gestart) en we starten de services:

chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start

chkconfig --levels 235 httpd on
/etc/init.d/httpd start

Maak een wachtwoord voor de MySQL gebruiker root (varander rootsqlwachtwoord in het wachtwoord dat u wil gebruiken):

mysqladmin -u root password rootsqlwachtwoord
mysqladmin -h server1.voorbeeld.nl -u root password rootsqlwachtwoord

 

3 Installeer PureFTPd met MySQL ondersteuning

Fedora's PureFTPd pakket ondersteund meerdere datbases, zolas MySQL, PostgreSQL, LDAP, enz. het enige wat we hiervoor hoeven te doen is het installeren van het PureFTPd pakket:

yum install pure-ftpd

Dan maken we een ftp groep (ftpgroup) en een gebruiker (ftpuser) en alle virtuele gebruikers worden daaraan gelinkt. Vervang indien nodig het group- en userid 2001 met een nummer dat vrij is op uw systeem:

groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

 

4 Nu maken we de MySQL Database voor PureFTPd

Let op: verander ftpdwachtwoord in uw eigen wachtwoord voor deze gebruiker!

mysql -u root -p

CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdwachtwoord';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdwachtwoord';
FLUSH PRIVILEGES;

Nog steeds in MySQL maken we nu de juiste tabellen of tabel, er is er maar een.

USE pureftpd;

CREATE TABLE ftpd (
User varchar(16) NOT NULL default '',
status enum('0','1') NOT NULL default '0',
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)
) TYPE=MyISAM;

quit;

En we zijn weer op de prompt van linux.

5 Configuratie PureFTPd

Verander /etc/pure-ftpd/pure-ftpd.conf en zorg er voor dat de regels ChrootEveryone, MySQLConfigFile, en CreateHomeDir er zo uit gaan zien:

vi /etc/pure-ftpd/pure-ftpd.conf

ChrootEveryone              yes  

MySQLConfigFile               /etc/pure-ftpd/pureftpd-mysql.conf  

CreateHomeDir               yes  

ChrootEveryone yes, zorgt er voor dat PureFTPd elke virtuele gebruiker in zijn homedirectory zet en ze niet buiten deze homedir kunnen browsen. De CreateHomeDir regel zorgt ervoor dat PureFTPd de homedirs aanmaakt voor gebruikers die niet bestaan.

Nu gaan we /etc/pure-ftpd/pureftpd-mysql.conf aanpassen. en dat doen we zo:

cp /etc/pure-ftpd/pureftpd-mysql.conf /etc/pure-ftpd/pureftpd-mysql.conf_orig
cat /dev/null > /etc/pure-ftpd/pureftpd-mysql.conf
vi /etc/pure-ftpd/pureftpd-mysql.conf

MYSQLSocket      /var/lib/mysql/mysql.sock  
#MYSQLServer     localhost  
#MYSQLPort       3306  
MYSQLUser       pureftpd  
MYSQLPassword   ftpdwachtwoord  
MYSQLDatabase   pureftpd  
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext  
MYSQLCrypt      md5  
MYSQLGetPW      SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")  
MYSQLGetUID     SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")  
MYSQLGetGID     SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")  
MYSQLGetDir     SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")  
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")  
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")  
MySQLGetQTASZ   SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")  
MySQLGetQTAFS   SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")

Zorg er voor dat u wel het wachtwoord voor MYSQL in de regel MYSQLPassword veranderd in uw eigen wachtwoord!

Nu zorgen we er voor dat PureFTPd automatisch opstart met het systeem en we starten PureFTPd:

chkconfig --levels 235 pure-ftpd on
/etc/init.d/pure-ftpd start

 

6 Vullen Database en testen

mysql -u root -p

USE pureftpd;

Nu gaan we een voorbeeldgebruiker met de status 1 (dit betekend het account is aktief), het wachtwoord is wachtwoord (wat encrypted wordt opgeslagen door MySQL's MD5 functie), Het UID en GID 2001 (gebruik dezelfde die we in stap 2 ook gemaakt hebben!), de home directory /home/www.voorbeeld.nl, een upload en download limied van 100 KB/sec. (kilobytes per seconde), en een quota van 50 MB:

INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('voorbeeldgebruiker', '1', MD5('wachtwoord'), '2001', '2001', '/home/www.voorbeeld.nl', '100', '100', '', '*', '50', '0');

quit;

Open nu je FTP programma op je werkstation (je kunt WS_FTP of SmartFTP gebruiken als je onder Windows werkt of gFTP op een Linux desktop) en probeer een verbinding te maken. Als hostname gebruik je nu server1.voorbeeld.nl (of het IP addres van de server), de username is voorbeeldgebruiker, en het wachtwoord is wachtwoord.

Als je verbinding kunt maken - gefeliciteerd het werkt! Zo niet, is er iets niet helemaal goed gegaan, kijk je logfiles na. (/var/log/messages en /var/log/pureftpd/log)

Voor vragen / opmerkingen / aanvullingen, maak een ticket aan op de helpdesk, of mail naar helpdesk at ambernet punt nl.

 
Was dit artikel bruikbaar? ja / nee
Gerelateerde artikelen Server Monitoren met Munin en Monit op Fedora 12
Webserver installeren in Mint
Wat is phpMyAdmin?
Wachtwoord admin herstellen in ispconfig 3
Mysql Import grote databases (. SQL) het veranderen van de upload limiet (2048 KiB) in phpMyAdmin
Apache start en stopt - ISPconfig op CentOS 7 - execstop, failure, vlogger
Wachtwoord MariaDB en Mysql herstellen
PhpMyAdmin installeren CentOS 6.5
WAMP - Windows Apache MySQL PHP
Wachtwoord herstel MySQL root wachtwoord
Artikel details
Artikel ID: 49
Categorie: Linux
Zoekwoorden pure, ftp, pureftp, centos, fedora, redhad, instal, installeren, configureren, config, linux, web, server, webserver, www,
Datum toegevoegd: 23-Jul-2009 12:46:28
Aantal bekeken: 19155
Beoordeling (Stemmen): Artikel beoordeeld 4.4/5.0 (5764)

 
« Ga terug