Jednou z často požadovaných služeb systému je FTP server. FTP (file transfer protocol) je protokol sloužící k přenosu souborů mezi serverem a klientem. Tento jednoduchý návod popisuje, jak nastavit FTP server v prostředí openSUSE 10.2.
Nejprve potřebujete samotný server. Na výběr máte více možností. Mezi nejznámější linuxové FTP servery patří například vsftp, ProFTP nebo Pureftp. Jejich konfigurace není až tak odlišná a najdeme zde mnoho společných rysů. Řekněme, že budeme používat Pureftpd (d na konci značí daemon, což zjednodušeně řečeno znamená aplikace běžící na pozadí jako systémová služba).
Nejsnadnější způsob, jak získat pure-ftp je pomocí smartu, záložka Productivity/Networking/Ftp/Servers. Nainstalujte si jej.
OVLÁDÁNÍ SERVERU
Nyní si spusťte konzoli a přihlaste se jako root. Systémové služby můžete v openSUSE ovládat více způsoby. Zřejmě nejjednodušší je pomocí rcxxx , kde xxx je jméno služby. Napíšete-li v terminálu rc a stisknete 2x tabulátor, bash vám vypíše seznam všech dostupných služeb. Mezi těmito službami by měla být (pokud jste korektně nainstalovali Pureftp) i položka rcpure-ftpd (pro vsftpd bude mít tvar rcvsftpd apod.). Chceme-li se tedy podívat v jakém stavu služba je, napíšeme (jako root) rcpure-ftpd status. Start provedeme pomocí rcpure-ftpd start a ukončení činnosti serveru pomocí rcpure-ftpd stop. K dispozici je i parametr restart pro rychlý restart serveru.
KONFIGURACE
Po instalaci se vám v adresáři /etc vytvoří adresář pureftpd. V něm naleznete soubor pure-ftpd.conf. Tento soubor obsahuje informace o nastavení vašeho ftp serveru. Poznámky jsou v tomto textu označeny pomocí značky #. Znamená to tedy, že cokoliv, co je napsané za touto značkou, není provedeno. Poznámek naleznete v textu velké množství. Jsou uvedeny vždy před nějakou direktivou a vysvětlují, k čemu daný příkaz je a co nastavuje. Například, položka
# Disallow anonymous connections. Only allow authenticated users. NoAnonymous yes
znamená, že je-li direktiva NoAnonymous nastavena na yes, můžou se k serveru přihlásit pouze autentifikovaní uživatelé (uživatelé, kteří zadají svůj login a heslo). Bylo by příliš rozsáhlé popisovat jednotlivé položky konfiguračního souboru. Ukázkový použitelný soubor naleznete níže.
ChrootEveryone no TrustedGID 100 BrokenClientsCompatibility no MaxClientsNumber 10 Daemonize yes MaxClientsPerIP 3 VerboseLog no AllowDotFiles yes DisplayDotFiles yes AnonymousOnly no NoAnonymous yes SyslogFacility ftp DontResolve yes MaxIdleTime 15 PureDB /etc/pure-ftpd/pureftpd.pdb PAMAuthentication yes LimitRecursion 2000 8 AnonymousCanCreateDirs no MaxLoad 4 Umask 177:077 MinUID 40 AllowUserFXP no AllowAnonymousFXP no ProhibitDotFilesWrite yes ProhibitDotFilesRead no AutoRename yes AnonymousCantUpload yes MaxDiskUsage 99 NoRename no CustomerProof yes
Nastavení si samozřejmě můžete upravit tak, jak sami potřebujete. Nezapomeňte, že po změně konfiguračního souboru je nutný restart serveru proto, aby se změny projevily.
VIRTUÁLNÍ UŽIVATELÉ
Za zmínku v uvedeném konfiguračním souboru určitě stojí položka
PureDB /etc/pure-ftpd/pureftpd.pdb
Toto je jedno z možných nastavení pro takzvané virtuální uživatele, což jsou uživatelé, kteří neexistují v systému, ale mají svůj účet pouze pro ftp server. Pro samotnou správu virtuálních uživatelů ve Pureftpd existuje několik nástrojů s grafickým uživatelským rozhraním. Nalézt je můžete například zde. Popis všech by vydal na samostatný článek. Já zde budu popisovat pouze kpum, což je pureftpd manažer virtuálních uživatelů pro prostředí KDE. Princip všech adminů je stejný a proto by neměl být problém pochopit jeden, když pochopíte druhý. Pomocí tohoto manažeru si můžete vytvářet jednotlivé virtuální uživatele. V souboru /etc/pure-ftpd/pureftpd.passwd se vám potom pro každého uživatele vytvoří samostatný řádek ve tvaru
uzivatel:$2a$07$VyRjlfdI4aSmy0MdzRe1dunb0CvhjapXX7CZwY6DxdyikQGu/nrku:65534:1001:Uzivatel:/srv/ftp/users/uzivatel/./::::::::::::
KPUM
Kpum bohužel nelze nalézt v uvedených repozitářích smartu, nicméně je k dispozici zde. Jedná se o zdrojové kódy, které je nutno přeložit, nicméně to není nic složitého. Je možné, že lze někde na netu nalézt i rpm verzi kpumu pro 10.2, avšak trochu o tom pochybuji, neboť vývoj kpumu bohužel zamrzl někdy ke konci roku 2004. I v této verzi však obsahuje všechny potřebné nástroje na správu uživatelů.
Zdrojové soubory si rozbalte někam na disk. Vejděte do rozbaleného adresáře a napište ./configure . Program nyní projde váš systém a bude hledat, zda má k dispozici vše, co pro svůj překlad potřebujete. Určitě budete potřebovat balíček make (k dispozici ve smartu). O další potřebné prostředky si případně řekne program sám. Pokud proběhne vše ok, napište make. Po přeložení se přihlaste jako root a napište make install. Po úspěšné instalaci budete mít kpum k dispozici přes nabídku menu KDE (stejně tak si jej můžete samozřejmě spustit i z konzoly).
Přidávání uživatelů pomocí kpumu je velmi jednoduché a intuitivní. Vypíšete si login, celé jméno uživatele, jeho heslo a nastavíte domovský adresář. Tam se uživatel objeví vždy po přihlášení. Možnost chroot určuje, zda bude mít uživatel přístup pouze do svého adresáře (a případných vložených podsložek) nebo zda bude mít možnost volně se pohybovat po celé adresářové struktuře. Záložky UID a GID určují jaká budou tato čísla pro přihlášeného uživatele. Pokud vás zajímá bezpečnost, doporučuji zřídit si nějakého uživatele např. ftpuser a skupinu ftpusers a omezit jim přístupová práva. Po nastavení uživatelů nezapomeňte vše uložit.
PŘÍSTUP K DATŮM
Standardně jsou data určená ke sdílení na ftp serveru nastavena v adresáři /srv/ftp. Tam můžete nakopírovat to, co si přejete nabídnout připojeným uživatelům. V případě, že máte uživatele, který je zamčený ve svém domovském adresáři, řekněme v /srv/ftp/uzivatel, a vy mu chcete zpřístupnit složku /data/audio nastává problém, neboť uživatel nemá jak k dané složce přistoupit. Řešením je připojit mu danou složku do jeho adresáře. Toto provedete tak, že vytvoříte prázdnou složku audio a napíšete
mount --bind /data/audio /srv/ftp/uzivatel/audio
Tím se vám připojí daný adresář do nového a uživatel jej může využívat.
ABY VŠE SPRÁVNĚ FUNGOVALO
Pro korektní funkci ftp serveru je nutno nastavit firewall, konkrétně povolit porty 20 a 21 pro TCP (jak povolit porty na firewallu můžete najít například zde). Používáte-li pasivní ftp nebo NAT, je nutno nastavit v sysconfig (YAST-Systém-Editor souborů /etc/sysconfig) v záložce Network-Firewall-SuSEfirewall2 direktivu
FW_LOAD_MODULES = "ip_conntrack_ftp ip_nat_ftp".
Pokud tak neučiníte, budete se moci k serveru přihlásit, ale nebudete schopni získat výpis adresářů (dir).
Chcete-li, aby se vám váš ftp server spouštěl automaticky po startu systému, je vhodné umístit do souboru /etc/init.d/boot.local příkaz rcpure-ftpd start. Spouštění serveru lze zajistit i pomocí YASTu (YAST-Síťové služby-Síťové služby(xinetd)), avšak já osobně preferuji první variantu. Do /etc/init.d/boot.local můžete pak také přidat odkaz na soubor, který bude vždy po startu provádět výše zmíněné mountování různých adresářů. /etc/init.d/boot.local pak obsahuje
rcpure-ftpd start /etc/pure-ftpd/mounter
a soubor /etc/pure-ftpd/mounter v sobě má například
# users mount --bind /data/video/ /srv/ftp/user/video/ mount --bind /data/audio/ /srv/ftp/user/audio/ mount --bind /data/textfiles /srv/ftp/user/textfiles/
PÁR ODKAZǓ NA ZÁVĚR
Pokud jste zde nenašli to co hledáte, můžete zkusit ještě pohledat v některém z následujících odkazů:
http://en.opensuse.org/FTP_Server_HOWTO
http://slacksite.com/other/ftp.html
http://www.pureftpd.org/project/pure-ftpd/doc
http://www.debianhelp.co.uk/pureftp.htm



Poslední komentáře
před 1 min 23 sek
před 4 hod 56 min
před 5 hod 31 min
před 8 hod 2 min
před 9 hod 24 min
před 19 hod 22 min
před 19 hod 23 min
před 20 hod 30 min
před 23 hod 4 min
před 1 den 31 min