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!! :-)