Rychlokurz: GuildFTPd - osobní FTP server pro každého

1. 1. 2002

Sdílet

Vítám vás u dalšího kurzu Rychlokurzu. Jak jsem vám slíbil minule, po řadějednodušších prográmků a utilitek se dnes podíváme na něco obtížnějšího. Tím obtížnějším bude v

Vítám vás u dalšího kurzu Rychlokurzu. Jak jsem vám slíbil minule, po řadě
jednodušších prográmků a utilitek se dnes podíváme na něco obtížnějšího. Tím

obtížnějším bude váš vlastní FTP server. FTP? Zase nějaká zkratka…? Tedy pro

ty, kteří vůbec nevědí, co to FTP znamená, podám vysvětlení. FTP pochází z

anglického „File Transfer Protocol“ a znamená způsob, jak po internetu přímo

přenášet soubory z jednoho počítače na druhý. Jak to funguje? Na jednom

počítači běží program (např. právě náš GuildFTPd www.nitrolic.com) a tento

počítač slouží jako úložiště pro soubory. Takovému počítači říkáme „server“. K

němu se pak mohou připojit uživatelé z internetu, a pokud znají správné jméno a

heslo, jsou vpuštěni a mohou si z něho soubory (programy, obrázky) stahovat

nebo je na něj naopak ukládat. Jak se lze připojit? Stačí mít ten správný

program (takzvaného „FTP klienta“) a vědět pouze adresu, jméno a heslo. Klientů

je k dispozici spousta, většinou velice pěkných a povedených. Já osobně pro FTP

přenos nejčastěji používám Windows Commander, ale FTP přenos dnes podporuje i

třeba Internet Explorer. Stačí jen místo adresy WWW serveru vyplnit

ftp://jmeno:heslo@adresa_serveru/. Jak říkám, proti gustu, žádný dišputát.



Kdy vlastně FTP server využijete? FTP má totiž tu obrovskou výhodu, že je

jedním z nejstarších, a tudíž nejpodporovanějších systémů, které na internetu

fungují. Pracují s ním bez problémů Windows, UNIX, Linux i třeba OS/2, a má ho

v sobě implementována spousta programů nejrůznějšího zaměření. Po internetu

jsou rozesety stovky tisíc serverů, skrz něž protéká obrovské množství dat.





INSTALACE



Dost obecného povídání, a rovnou na startovní čáru. Tou je instalace. Rozhodně

se jí nebojte, snad už nemůže být lehčí. Spusťte soubor „GuildFTPd.exe“,

odklepněte [OK] a zadejte adresář, kam chcete FTP server nainstalovat. Pak už

stačí zmáčknout tlačítko [Install] a… je hotovo.



Po spuštění FTP serveru ([Start] \ Programy \ GuildFTPd \ GuildFTPd-FTP server

daemon) se objeví hlavní okno programu. V tomto okně budeme provádět všechna

potřebná nastavení. Ale popořadě…





HLAVNÍ OKNO



Podíváme-li se na okno programu, vidíme, že je rozděleno do čtyř oblastí. V

levé (hlavní) oblasti máme ve formě stromu zobrazeny skupiny uživatelů a pod

nimi v další úrovni uživatele jednotlivé. Nyní po instalaci tam máme skupinu

„GuildFTPd“ a uživatele se jménem „anonymous“. V pravé části jsou tři okna se

záložkami, které nám ukazují konfigurační informace. Odshora první je okno s

informacemi o spojení, další obsahuje informace o souborech, se kterými se

pracuje, a nejspodnější, zato největší okno ukazuje konfiguraci zvoleného

uživatele nebo skupiny.





PŘIDÁNÍ UŽIVATELŮ



Jak tedy nastavit přístup pro prvního uživatele. Vezmeme to od začátku.

Nejdříve si vytvoříme novou skupinu uživatelů. V levém okně klikněte

nejvrchnější položku „System“, která znamená náš FTP server. Tím se vám

zpřístupní ikonka . Klikněte na ni, a budete vyzváni k zadání jména skupiny

(zadáme např. jméno „pratele“). Rozhodně vám doporucuji nepoužívat háčky a

čárky, ušetříte si tím spoustu starostí.



Vidíme, že se nám objevila nová větev stromu s námi zadaným jménem „pratele“.

Vyberte ji (kliknutím na nově vytvořenou položku) a nyní již můžete přidávat

uživatele. Klikněte na ikonu , zapište uživatelovo přihlašovací jméno (např.

„Petr“) a dvakrát heslo (podruhé je to pro kontrolu proti překlepům). Uživatel

je vytvořen. Stejným způsobem si pro procvičení přidejte ještě jednoho, např.

se jménem „Pavel“ jak jinak :-). Další důležité upozornění FTP server rozlišuje

mezi malými a velkými písmeny. Pokud se tedy někdo bude pokoušet v této situaci

přihlásit jako „petr“, bude odmítnut. Pamatujte na to!



Váš strom uživatelů by měl vypadat následovně:



Říkáte si, že to bylo až moc jednoduché? Máte pravdu, ještě to není konec.





DEFINICE CEST



Máme definované uživatele, ale ještě jsme neřekli, na co smějí přistupovat, a

na co ne. Abychom to však nemuseli nastavovat u každého uživatele zvlášť,

nastavíme cesty k datům pro celou skupinu, a tím zároveň pro všechny členy

skupiny. Nejdříve si ale musíme připravit místo na pevném disku, které

vyhradíme pro FTP. Pro zkoušku vytvořte na disku adresář „ftp“ a do něj dva

podadresáře, např. „pro_vas“ a „pro_mne“. Dá se odhadnout, že adresář „pro_vas“

bude sloužit jako úložiště pro data, která vy budete uživatelům dávat k

dispozici (na internetu se tyto adresáře nejčastěji jmenují „pub“ nebo

„public“). Bude tedy žádoucí, abyste do tohoto adresáře mohli zapisovat a

ukládat data pouze vy a přátelé je směli pouze číst. Druhý adresář „pro_mne“

naopak bude určen pro soubory, které chtějí uživatelé přesunout k vám. Do

tohoto adresáře musíme proto povolit zápis. Takovýto adresář najdete na

internetu nejčastěji pod názvy „income“ nebo „upload“. Nadřazený adresář „ftp“

bude sloužit jako adresář domácí, tedy ten, v němž se uživatel objeví ihned po

přihlášení k vašemu serveru. Měli byste mít na disku připravenou takovouto

strukturu adresářů:



Nyní tedy přejděte na položku „pratele“. Kromě ikon pro přidání uživatele „Add

User“ a pro úpravu skupiny „Edit Group“ máme povolenu také ikonu pro přidání

cesty, tedy adresáře „Add Path“. Klikněte na ni a objeví se dialogové okno:



Do políčka „Local Path“ musíte zadat cestu k adresáři na vašem pevném disku a

do políčka „Virtual Path“ pak jméno, pod kterým bude přístupný uživateli přes

FTP. Pro usnadnění u nich máte tlačítka [Browse]. Klikněte na tlačítko [Browse]

u políčka „Local Path“ a najděte vámi vytvořený adresář „ftp“. Označte ho a

stiskněte [OK]. Nyní byste měli mít v políčku „Local Path“ takovýto text:

„D:\ftp“ (kde D je váš disk). Pokud jste vytvořili adresář někde hlouběji v

adresářové struktuře, budete tam mít něco jako „D:\nadřazené adresáře\ftp“.

Nyní klikněte na tlačítko [Browse] u políčka „Virtual Path“ a zvolte variantu

„Home Directory“, tedy „Domácí adresář“. V políčku „Virtal Path“ se objeví text

„/“. Ponechte zaškrtnuté attributy „Read“ a „List“ a potvrďte tlačítkem [OK]. O

atributech adresářů se zmíníme později.



Nyní máme vytvořený domácí adresář. O tom se můžeme přesvědčit tak, že klikneme

na ouško „Paths“ v pravém dolním podokně (vedle ouška „Options“). Pokud by se

nyní pomocí kombinace kláves Alt+R restartoval server to kvůli zapsání změn a

připojil by se uživatel, uviděl by svůj domácí adresář (náš adresář „ftp“) a

všechny jeho podadresáře, tedy v našem případě adresáře „pro_vas“ a „pro_mne“.

Pro všechny tyto adresáře by platilo, že z nich můžete číst, ale nemůžete do

nich soubory zapisovat.



Takže naším dalším krokem bude definice adresáře, do kterého bude dovoleno

zapisovat. Opět klikneme na ikonu „Add Path“, pomocí tlačítka [Browse] vybereme

adresář „pro_mne“ a tím vyplníme políčko „Local Path“. V definici „Virtual

Path“ zaškrtneme, že se nejedná o domácí adresář (Home Directory), ale o

adresář pro zápis (Upload Directory) a stiskneme [OK]. Nyní máme v políčku

„Virtual Path“ hodnotu „/pro_mne“ a v atributech kromě původních hodnot „Read“

a „List“ navíc hodnotu „Write“. Tím máme nastaveno, že do podadresáře „pro_mne“

bude dovoleno soubory ukládat. Pokud ještě chcete povolit uživatelům i

vytváření podadresářů, zaškrtněte atribut CREATE.



Pro zamyšlení: Pokud byste byli zvědaví, co se stane, když změníte hodnotu v

poli „Virtual Path“ na něco jiného (např. na „/sem“), pak po připojení pomocí

FTP zjistíte, že ve vašem domácím adresáři máte rázem podadresáře tři, a to

„pro_vas“, „pro_mne“ a „sem“. Adresáře „pro_mne“ a „sem“ by fyzicky ukazovaly

do jediného adresáře na vašem disku (do adresáře „ftp\pro_mne“) a obsahovaly by

tedy oba dva stejná data. Jediným rozdílem těchto dvou adresářů by bylo to, že

do adresáře „sem“ je zápis povolen, ale do adresáře „pro_mne“ je zápis zakázán

(protože pro něj platí stejná pravidla, jako pro domácí adresář).



Chcete-li dát přátelům k dispozici třeba ještě i soubory na vašem CD, není nic

jednoduššího. Přidejte cestu „Add Path“, do „Local Path“ zapište cestu k vašemu

CD (např. „R:\“) a do „Virtual Path“ zadejte jméno, pod kterým chcete, aby

uživatelé vaši CD-ROM viděli (např. „/cd“). Atributy nechte pouze READ a LIST

(kdo by taky co chtěl zapisovat na CD-ROM). Po přihlášení pomocí FTP uživatel

uvidí nový podadresář „/cd“, v němž budou přístupné soubory z vašeho CD.



Variant je nespočet, zkoušejte, experimentujte, ale buďte opatrní s

přidělováním atributů. Pokud totiž do některého adresáře přidělíte právo mazat,

věřte, že dříve nebo později vám to opravdu někdo vymaže. Popišme si proto, co

přesně jednotlivé atributy znamenají.





ATRIBUTY ADRESÁŘŮ



Atributy jsou to vlastně taková oprávnění k provádění základních činností s

adresářem a se soubory v něm. V našem FTP serveru jich máme nadefinovaných 6.

Jsou to:



READ (Číst): Jeden ze základních atributů. Dává právo číst, tedy stahovat

soubory z tohoto adresáře. Pokud by tedy adresář tento atribut neměl, tak si

prostě soubory z něj uživatel na svůj počítač nezkopíruje.



LIST (Seznam): Ještě základnější atribut adresáře. Dává právo vidět názvy

adresáře a souborů v něm. Bez něj prostě tento adresář neuvidíte. Zajímavá je

kombinace atributů LIST se zakázaným atributem READ, která říká v podstatě

„ano, uvidíš, co mám u sebe za soubory, ale nezkopíruješ si je k sobě“.



WRITE (Psát): Jak již bylo zmíněno, tento atribut povolí připojeným uživatelům

ukládat soubory na server. Tedy vlastně opačný směr, než je READ.



APPEND (Připojit): Povolí takzvané navázání přerušeného spojení. Pokud se tedy

spojení uživatele s vaším FTP serverem přeruší v průběhu přenosu souboru, může

uživatel při příštím přihlášení navázat na minulý přenos a pokračovat tam, kde

se spojení rozpadlo. Bohužel tak jako ve všem, i zde se používají dva způsoby

navazování. Je tedy možné, že FTP klient podporující druhý způsob neprovede

toto připojení správně.



CREATE (Vytvořit): Dovolí uživatelům vytvářet podadresáře. Pokud tedy máte

pouze atribut WRITE a neměli byste CREATE, mohli byste sice přesouvat soubory

na server, ale pouze do předvytvořených adresářů. Žádný svůj adresář byste

nevytvořili.



DELETE (Mazat): Povolí uživatelům mazat soubory a podadresáře na serveru. S

tímto atributem zacházejte velmi opatrně, pokud chcete, aby vám nějaké soubory

pro sdílení zbyly.



Nyní už znáte všechny základní informace k tomu, abyste byli schopni zprovoznit

váš FTP server, a tím dali kolegům k dispozici buď svá data, nebo i úložný

prostor. Chcete-li se však dostat FTP serveru trochu pod kůži a poznat jeho

další, vychytanější vlastnosti, podívejte se se mnou na následující stručný

výtah toho nejzajímavějšího a nejužitečnějšího.





POPIS SEKCÍ HLAVNÍHO OKNA



Do této chvíle jsme pracovali hlavně s levou sekcí, kde je umístěn strom se

skupinami uživatelů a s jednotlivými uživateli. Podívejme se teď krátce i na

ostatní sekce. Budeme je brát odshora:



V horní sekci vidíme tři ouška. V „Current Connections“ jsou zobrazeni

uživatelé, kteří jsou právě v této chvíli k vašemu serveru připojeni. Pokud tam

budete nějakého uživatele mít, můžete na něj kliknout pravým tlačítkem, a menu

vám dá na výběr buď „Kick User“ (doslova „Vykopnout uživatele“, což je dosti

výmluvný název), nebo „Send message to user“ (tedy „Poslat zprávu uživateli“).

V oušku „Connection Graph“ uvidíte grafické vyjádření toho, co se vám na

serveru děje. Konečně v oušku „Past Connections“ jsou zaznamenáni všichni

uživatelé, kteří váš server navštívili.



V prostřední sekci jsou ouška „Downloads“ a „Uploads“ s evidencí stažených

souborů ze serveru (=Download) a uložených souborů na server (=Upload). Zde

jsou zaznamenány i neúspěšné pokusy o práci se soubory, proto když vám uživatel

zavolá, že nemůže stáhnout ten a ten soubor, odpověď by jste měli najít zde.

Ouško „Message“ slouží k automatickému uchování zpráv, které vám pošlou

uživatelé, a v oušku „Spy“ uvidíte FTP příkazy, které se provádějí na serveru.

To už však patří k velmi vysoké úrovni znalostí protokolu FTP.



Spodní sekce je nejzajímavější. Jak už jsme si vysvětlili, ouško „Paths“

obsahuje seznam adresářů přístupných označenému uživateli nebo skupině, včetně

jejich atributů. Ouško „Options“ pak obsahuje speciální nastavení přímo pro

jednotlivé uživatele či skupiny. Popis jednotlivých voleb by byl daleko za

rámec tohoto článku, snad vás jen upozorním na volbu „Account Enable“, která

musí mít hodnotu „Enable“, pokud mají být uživatel či skupina vpuštěni na

server.





DALŠÍ ZAJÍMAVÉ VLASTNOSTI



Menu Admin \ Event Manager (Alt+E): Sedíte-li u počítače, na němž je

nainstalován váš FTP server, a chcete-li mít neustále přehled, co se právě na

něm děje, pak zamiřte do nastavení „Event Manageru“ neboli manažera událostí.

Tam v horní části uvidíte seznam událostí, které na serveru nastávají (i s

jejich vysvětlením bohužel v angličtině). Ke každé události můžete nastavit 3

reakce, které proběhnou, pokud se daná akce stane. Např. budete chtít být

informováni, pokud se k vám přihlásí nový uživatel. Klikněte tedy na událost

„On Welcome User“ (česky „Při uvítání uživatele“). K této události můžete

nastavit odezvu buď „Execute“ (Spusť), která zajistí spuštění libovolného

programu, nebo „Play Sound“, kdy počítač přehraje zadaný zvuk. A konečně volba

„Systray Bubble Message“ (Bublinková zpráva), kdy se u ikony v systémové liště

objeví zadaná zpráva v napodobenině komixové bubliny. Tato zpráva může

obsahovat spoustu údajů zprostředkovaných pomocí proměnných, jako jsou

%USERNAME, %USERIP, %FILE atd. Místo těchto proměnných se do textu automaticky

dosadí patřičné hodnoty. Tedy zpráva „%USERNAME se přihlásil z IP:%USERIP“

způsobí, že po přihlášení nového uživatele se nám v bublině objeví třeba text

„Petr se přihlásil z IP:192.168.253.12“. A ještě si k tomu můžeme nechat zahrát

melodii…



Menu Admin \ Server Messages (Alt+S): Velice podobné je nastavování takzvaných

zpráv serveru. Na rozdíl od nastavení předchozího jde o zprávy, jež se

neobjevují na počítači, kde běží FTP server, ale naopak objeví se uživatelům,

kteří se na server připojují. Do sekce „Post-Login“ (česky „Po přihlášení“)

můžete např. nastavit zprávu „Vítej uživateli -$username-. Na disku D je

$freespaceD MB volného místa“. Pak uživatel uvidí po přihlášení třeba takovou

zprávu: „Vítej uživateli -Petr-. Na disku D je 1 200 MB volného místa“.





OBECNĚ



Pokud uděláte nějaké změny v nastavení serveru, je potřeba server restartovat,

aby se projevily (menu Admin \ Restart Server nebo Alt+R). Z důvodů bezpečnosti

vám doporučuji mít u všech uživatelů nastavena hesla. Speciálně se to týká

uživatele jménem „anonymous“, který slouží právě pro vstup kohokoli na server.

Pokud to tak vysloveně nechcete, pak tohoto uživatele odstraňte .





ZÁVĚREM



Protokol FTP je jedním ze základních a nejstarších pilířů internetu. Je však

potřeba říci, že na dnešní dobu je poměrně nebezpečný. Kombinace jméno/heslo je

totiž posílána po internetu v nezakódované podobě, takže kdokoli, kdo je s vámi

na lokální síti či někde na cestě, kudy tečou data, si může toto heslo

jednoduše chytit a potom zneužít. Pro svou jednoduchost a univerzálnost se však

dodnes používá a věřím, že bude platný i vám…





P. S.: V rubrice „Nejžhavější zprávy“ se objevila informace, že autor tohoto

programu 19. 11. 2001 oslavil svoje 21. narozeniny. Blahopřejeme!! :-)