Autorem následujícího návodu je M. Mastenbroek. Originální - holandskou versi a překlad do jazyka anglického naleznete na stránkách autora.
Český překlad zpracoval dne 20. 11. 2005 Daniel Hrotek.
Návod popisuje příklady nastavení Pure-FTPd serveru (Pure-FTPd - česky) v operačním systému FreeBSD v kombinaci s MySQL.
Žlutě zbarvené písmo Vám ukáže, co budete zapisovat do příkazového řádku.
Předtím, než jsem počal užívat Pure-FTPd jsem zkoušel téměř všechny FTP servery pro FreeBSD. Velkou výhodou Pure-FTPd je možnost mnoha voleb pro každý samostatný účet zvlášť. Shledal jsem, že Pure-FTPd je nejlepší volba pro FreeBSD.
Některé z výhod Pure-FTPd:
Nemáte-li ve svém operačním systému nainstalován server MySQL, budete jej muset nainstalovat. K tomu Vám dopomohou následující kroky.
Jestliže však již máte MySQL server nainstalován, pak můžete přejít přímo k instalaci Pure-FTPd.
Je možno si vybrat mezi různými versemi MySQL. Na funkci Pure-FTPd to nebude mít žádný vliv.
Zadejte následující příkazy do příkazové řádky:
| cd /usr/ports/databases/mysql40-server make install clean |
Editujte konfigurační soubor ’rc.conf’:
| # MySQL Server 4.0 mysql_enable=“YES“ mysqllimits_enable=“NO“ |
Po instalaci musíte spustit MySQL server:
| /usr/local/etc/rc.d/mysql-server.sh start |
Zadejte následující příkazy do příkazové řádky:
| cd /usr/ports/ftp/pure-ftpd make config |

Zadejte následující příkazy do příkazové řádky:
| make install clean |
Editujte konfigurační soubor ’rc.conf’:
| # Pure-FTPd pureftpd_enable=“YES“ |
Jestliže jste se rozhodli použít ’User manager for Pure-FTPd’ (manažer uživatelů pro Pure-FTPd), můžete postupovat přímo po následujících krocích. ’Installation wizard’ (průvodce instalací) pro tento software vytvoří také tuto databázi.
Nejdříve potřebujete zprovoznit uživatele MySQL. Pouze uživatel root a nebo uživatel s dostatečnými přístupovými právy k vytvoření databáze MySQL vytvoří dvě tabulky. Vytvoří také nového uživatele MySQL databáze s omezenými právy.
K zjištění funkčnosti nového uživatele MySQL můžete použít následujícího příkazu:
| MySQL -u=[uživatelskéJméno] -p[=heslo] |
Pro příklad:
| mysql -u root -ptajne |
Jestliže to funguje, můžete pokračovat dále. V opačném případě musíte změnit Vaše heslo a uživatelské jméno. Jestliže instalují MySQL uživatelé, kteří nemají nastavena hesla, pak výše uvedený příkaz užijete bez volby ’-p.’ (Poznámka překladatele: jakékoliv vytvořené účty bez hesla je velkým bezpečnostním rizikem.)
Dalším krokem je stáhnutí instalačního skriptu a vykonání následujícího příkazu:
| fetch “http://machiel.generaal.net/files/pureftpd/v2.x/script.mysql“ mysql -u root -psecret < script.mysql |
Poznámka překladatele: při nedostupnosti výše zmíněné cesty ke skriptu, můžete využít následující cestu:
| fetch “http://www.starhill.org/dan/pure-ftpd-freebsd/script.mysql“ mysql -u root -psecret < script.mysql |
Do adresáře ’/usr/local/etc’ nakopírujte oba výše zmíněné konfigurační soubory. První se nachází zde. (Případně jej můžete stáhnout ze serveru www.StarHill.org zde.) V těchto mnou uvedených je provedeno mnoho změn, které Vám budou ku prospěchu.
Druhý stáhnete následujícím způsobem:
| cd /usr/local/etc cp pure-ftpd.conf.sample pure-ftpd.conf fetch “http://machiel.generaal.net/files/pureftpd/v2.x/pureftpd-mysql.conf“ |
Při nedostupnosti prvního serveru můžete využít druhý server:
| cd /usr/local/etc cp pure-ftpd.conf.sample pure-ftpd.conf fetch “http://www.starhill.org/dan/ict/pure-ftpd-freebsd/pureftpd-mysql.conf“ |
Zaeditování vypadá následovně:
| # MySQL configuration file (see README.MySQL) MySQLConfigFile /usr/local/etc/pureftpd-mysql.conf |
Zadejte následující příkaz do příkazové řádky:
| /usr/local/etc/rc.d/pure-ftpd.sh start |
Uživatelský manažer pro Pure-FTPd dovolí administrátorovi snadno vytvořit, měnit, nebo vymazat virtuální uživatele v Pure-FTPd.
Avšak předtím, než můžete instalovat tento uživatelskou grafickou utilitu, potřebujete nainstalovat následující software:
Pokud máte veškeré programy výše uvedené, pak můžete tyto následující kroky přeskočit. nemáte-li je však nainstalovány, pokračujte zde:
Zadejte následující příkazy do příkazové řádky:
| cd /usr/ports/www/apache2 make install clean |
Editujte konfigurační soubor ’rc.conf’:
| # Apache 2 apache2_enable=“YES“ |
Jestli nemáte nainstalovaný modul PHP pro web server Apache, pak jej můžete nainstalovat mod_php5 takto:
| # Apache 2 apache2_enable=“YES“ |
Ujistěte se, že máte vybrán APACHE2. Během instalačního procesu zvolte Apache 2:
| [X] | APACHE2 | Use apache 2.x instead of apache 1.3.x |
Editujte konfigurační soubor ’httpd.conf’:
| AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps |
Výsledek by měl vypadat následovně (editujte):
| DirectoryIndex index.php index.html index.html.var |
Jestliže nemáte nainstalovány PHP Extensions, můžete využít opět následných kroku pro instalaci php5-extensions.
Zadejte následující příkazy do příkazové řádky:
| cd /usr/ports/lang/php5-extensions make config make install clean |
V každém případě jsou potřeba vybrat následující volby:
| [X] | MYSQL | MySQL database support |
| [X] | PCRE | Perl Compatible Regular Expression support |
| [X] | POSIX | POSIX-like functions |
| [X] | SESSION | session support |
V příkazové řádce nechte vykonat tento příkaz, který restartuje web server Apache:
| apachectl restart |
Prvně budete muset tento manažer stáhnout a takto můžete učinit odtud, nebo také zde. Uložte jej do ’www’ adresáře Vašeho web serveru Apache.
Následující příkazy vyextrahují ’config.php’ a změní přístupová práva. Server Apache má potom práva měnit obsah tohoto konfiguračního souboru.
V příkazové řádce vykonejte následující příkazy:
| cd /usr/local/www/data fetch “http://machiel.generaal.net/files/pureftpd/ftp_v2.1.tar.gz“ tar -xvzf ftp_v2.1.tar.gz cd ftp chown www config.php |
V případě nedostupnosti výše uvedeného serveru můžete využít serveru záložního:
| cd /usr/local/www/data fetch “http://www.starhill.org/dan/ict/pure-ftpd-freebsd/ftp_v2.1.tar.gz“ tar -xvzf ftp_v2.1.tar.gz cd ftp chown www config.php |

S příkazem ’pure-ftpwho’ může uživatel root sledovat aktuální stav FTP serveru. Tento program je část Pure-FTPd a může být používán pouze uživatelem root. Pure-FTPd může generovat HTML kód příkazem ’pure-ftpwho’. Jeho výstup pak můžete vidět ve svém internetovém prohlížeči. Dokáže vytvořit cgi aplikaci, která pak spolupracuje s vaším web serverem. Problémem však je, že vykonání cgi aplikace nemůže být vykonáno na úrovni root uživatele a to z bezpečnostních důvodů. Tento problém jsem vyřešil následovně:
Vytvořte následující soubor ’ftpstatus.c’ v adresáři Vašeho web serveru, který je pojmenován: ’cgi-bin’. Standardní cesta k tomuto adresáři pro server Apache je ’/usr/local/www/cgi-bin/’.
| #include <stdlib.h> int main(int argc, char *argv[]) { system(“/usr/local/sbin/pure-ftpwho -H -w“); return 0; } |
Zkompilujte a změňte přístupová práva dle následujících příkazů. Od této chvíle bude mít soubor vždy vlastníka s danými přístupovými právy. V tomto případě je to uživatel root.
| cc -Wall -o ftpstatus ftpstatus.c chmod 755 ftpstatus chmod ug+s ftpstatus |

Závisí to na konfiguraci pravidel Vašeho firewall systému. Po přidání následujících třech pravidel do Vašeho firewall systému může pak Váš FTP server ovládat pasivní a aktivní režim Vašich FTP klientů. Samozřejmě musíte dbát aby například Vámi používaný další firewall nezamítnul tato tři nastavení.
Konfigurace firewall systému:
| ipfw add allow tcp from any 20,21 to any out ipfw add allow tcp from any to any 20,21 in ipfw add pass tcp from any to any setup |
Pravděpodobně to má co dělat s NATd procesem v kombinaci s konfigurací firewall systému. Umístěte dvě následující řádky pravidel PŘED NATd pravidly firewall systému.
Konfigurace firewall systému pro FXP:
| ipfw add allow tcp from any 20,21 to any out ipfw add allow tcp from any to any 20,21 in |
Užijte Vašeho MySQL klienta a přihlaste se jako root uživatel. Poté změňte heslo uživatele ’ftp’. Vyzkoušejte dvě následující řádky. Změňte text ’zdeZapisteNoveHeslo’ pro zápis Vašeho nového hesla.
Konfigurace firewall systému pro FXP:
| mysql -u root -p set password for ftp@“127.0.0.1“ = Password(’zdeZapisNoveHeslo’); flush privileges; |
Je možné Vám poskytnout všechny odpovědi. Jestli se však chcete naučit s SQL a MySQL, pak existuje mnoho portálů, kde můžete informace načerpat. Ukáži Vám několik rychlých MySQL / SQL triků.
Zálohujte všechny struktury tabulek a data z tabulek z data z databáze ’ftpusers’ do MySQL skriptu.Příkazová řádka:
| mysqldump -h localhost -uroot -pVaseNoveHeslo ftpusers > databasebackup.mysql |
Příkazová řádka:
| mysql -u root -p drop database ftpusers; delete from mysql.user where User=’ftp’; flush privileges; |
Příkazová řádka:
| mysql -u root -p INSERT INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES(’127.0.0.1’,’ftp’,PASSWORD(’tmppasswd’),’Y’,’Y’,’Y’,’Y’,’N’,’N’,’N’,’N’,’N’,’N’,’N’,’N’,’N’,’N’); flush privileges; create database ftpusers; |
Jako častý problém se při instalaci MySQL serveru se jeví nesprávný hostname. Pak instalační procedura selže a vypíše následující chybové hlášení:
...Příkazová řádka:
| hostname server |
Příkazová řádka:
| 192.168.0.1 server |
Nyní můžeme kontrolovat hostaname. Provedeme to násedujícím příkazem (naše hostname je nastaveno na ’server’ - dosaďte tedy místo ’hostname’ v následujícím příkazu ’server’):
| ping (hostname) |
Instalační procedura balíku Pure-FTPd se může lišit v různých distribucích operačního systému Linux. Mnoho balíků Pure-FTPd pro operační systém Linux nemá v sobě zahrnutu podporu MySQL. pro eliminaci tohoto problému je nasnadě možnost stáhnutí zdrojového kódu a jeho sestavení s potřebnými volbami. Vše toto je vidět z následujících kroků.
Stáhněte poslední versi Pure FTPd, například odtud: ftp://ftp.pureftpd.org/pub/pure-ftpd/releases/Příkazová řádka:
| ./configure --with-everything --with-paranoidmsg --with-virtualchroot --with-tls --with-largefile --with-mysql make make install |
• povídání o FreeBSD
• začínáme s FreeBSD
• FreeBSD - základní kroky
• Sun Solaris - základní kroky
• Linux - základní kroky
• Windows - základní kroky
Hrátky s operačními systémy
• FreeBSD router
• FreeBSD ve firmě
• FreeBSD porty - jak na ně?
• vytváření FreeBSD balíčku
• instalace NetBSD
Počítačové sítě
• StarHill
• esej o bezdrátových sítích
• pasivní restranslace
• tvorba sítí typu ethernet
• Pure-FTPd + SSL + VA
• Samba a její nastavení
• Apache SSL - htaccess - PHP
• DHCP server
• Nessus
Lokalizace
• manuály FreeBSD
• RONJA
• Pure-FTPd
• nastavení Pure-FTPd
Software
• Visual Basic
• Acrobat Reader 5 a FreeBSD
• logovací démon - syslogd
Jednočipy
• programátor PIC
Různé
• mé konfigurační soubory