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.
Â
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
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
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.
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
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');
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.
« Ga terug