Další internetové služby 1 - FTP Klíčové pojmy: FTP, TFTP, FTPS FTP File Transfer Protocol Protokol a stejnojmenná služba pro přenos souborů mezi počítači v počítačové síti. Je založen na protokolu TCP, je platformě nezávislý, může tedy být využíván na počítačích s různými operačními systémy. Jde o jeden z nejstarších protokolů, je popsán v RFC 959. Jeho funkci využívají specializované programy (FTP klienti) i webové prohlížeče. FTP pracuje na principu klient server, FTP server poskytuje data pro ostatní počítače, FTP klient se k serveru připojí a může provádět s daty různé operace. Klient je představován aplikačním programem běžícím na počítači uživatele, server je představován FTP démonem nebo obdobným systémovým procesem. Protokol FTP komunikuje typicky na dvou portech port 20 slouží pro vlastní přenos dat, port 21 pro přenos řídicích signálů přenosu. Služba FTP je službou netransparentního přenosu dat, uživatel ví, kde (na kterém serveru, počítači) leží požadovaná data a je si vědom toho, že data neleží na lokálním počítači, ale na vzdáleném. Použití FTP Závisí na nastavení práv na jednotlivých počítačích. Sdílení dat (např. foto, video, hudba, vlastní práce) Správa webových stránek FTP umožňuje Přenášet soubory mezi počítači v obou směrech Vypsat obsah zadaného adresáře Mazat, přejmenovávat soubory na vzdálených počítačích Vytvářet, editova, mazat adresáře na vzdálených počítačích Definovat strukturu a způsob přenosu souboru 18.11.2011 FTP 1
Nevýhody FTP Bezpečnost přenášených dat hesla i soubory jsou standardně přenášeny nešifrovaně, data mohou být odchycena a zneužita (řeší rozšíření) Vyšší režie musí existovat minimálně dvě spojení, řídící a datové Delší odezva FTP serveru Nemožnost sloučit více malých souborů do jednoho přenosu Při delší nečinnosti (stahování větších souborů) portu 21 může firewall přerušit spojení ještě před dokončením stahování Reprezentace dat Protokol zavádí jednotný tvar přenášených dat, používá-li některá z komunikujících stran jinou reprezentaci dat, musí být data nejprve upravena do tvaru podporovaného protokolem. Implicitně protokol předpokládá, že jsou přenášená data ve formátu ASCII textu, jednotlivé znaky jsou přenášeny jako osmibitové, řádky jsou oddělovány dvojicí znaků CR a LF. Volitelně mohou být data přenášena v jiném tvaru, a to: Ve formátu EBCDIC (přenos mezi počítači IBM) Jako binární data data chápána jako spojitá posloupnost bitů, pouze pro potřeby přenosu jsou dělena na osmibitové byty Jako byty nestandardní dohodnuté velikosti Struktura souborů Soubory přenášené protokolem FTP mohou být různě členěny, může jít o lineární posloupnost bitů, sekvenční záznamy nebo o nezávislé indexované stránky. Implicitně FTP předpokládá spojitou posloupnost datových bytů, volitelně lze nastavit přenos sekvenčních záznamů nebo indexovaných stránek. Režim přenosu FTP umožňuje provádět jistou elementární kompresi přenášených dat a také zotavit se z výpadku spojení v průběhu přenosu a po obnovení spojení v něm pokračovat. Implicitní režim přenosu je Stream mode data přenášena jako spojitý proud bytů Volitelně lze nastavit režimy: Blokový režim data členěna do bloků opatřených hlavičkou, mezi bloky lze vkládat kontrolní body, které umožňují zotavení při výpadku spojení 18.11.2011 FTP 2
Zhuštěný režim přenášená data jsou komprimována (např. nejsou přenášeny opakující se znaky apod.) Interpret protokolu PI, přenosový proces DTP Interpret protokolu (PI) existuje po celou dobu trvání spojení mezi klientem a serverem. PI klienta nejprve navazuje spojení s PI serveru, následně iniciuje a řídí jednotlivé akce (přenos dat, manipulace se složkami apod.). Vše se děje prostřednictvím příkazů, které PI klienta zasílá PI serveru. Vlastní přenos dat zajišťuje přenosový proces (DTP), který je vytvářen dynamicky na straně klienta a řídí se pokyny klientského PI a odpovědí druhé strany. Řídící a datové spojení Řídící spojení - na portu 21 čeká PI server na žádost o navázání spojení. Toto spojení existuje po celou dobu trvání relace. Navázání spojení iniciuje klient Na portu 21 má komunikace 4 kroky: 1. Požadavek klienta o spojení 2. Potvrzení spojení serverem 3. Otevření spojení TCP sekvencí login 4. Autentizace klienta serverem Datové spojení přenosové procesy naváží vlastní spojení určené pro vlastní přenos dat na portu 20, vznik tohoto spojení iniciuje server (jeho přenosový proces), transportní spojení řídí protokol DTP. Příkazy pro řízení přenosu Příkazy i odpovědi mají textovou podobu, jména příkazů tvoří tří až čtyř písmenné zkratky. Také číselná část odpovědi je přenášena textově (jako trojice desítkových číslic). Příkazy při FTP přenosu nemusí být totožné s příkazy klienta (např. list u ftp odpovídá dir u klienta). U klienta existuje převodní tabulka, kterou si může sám vytvářet. Příkazy pro řízení přístupu připojení k FTP serveru pod uživatelským jménem a heslem Příkazy pro nastavení parametrů přenosu výběr režimu přenosu, struktury přenášených souborů, změna implicitních portů 18.11.2011 FTP 3
Výkonné příkazy - příkazy pro přenos souborů, manipulaci s adresáři Odpovědi Každý příkaz vyvolá odpověď, odpověď má formu číselného kódu, k němuž je přidán vysvětlující text. Text nemá závazný charakter, je pouze informativní a může se lišit v závislosti na konkrétní implementaci FTP. Čísla odpovědí: 1xx předběžná kladná odpověď akce byla úspěšně zahájena, bude následovat další zpráva o průběhu akce 2xx kladná odpověď akce byla úspěšně provedena nebo dokončena 3xx prozatímní kladná odpověď požadavek na provedení akce byl přijat, pro zahájení akce jsou zapotřebí další příkazy 4xx dočasná záporná odpověď akce nebyla provedena, ale má smysl žádat znovu o její provedení 5xx trvalá záporná odpověď akce nebyla provedena, nemá smysl žádat znovu o její provedení Anonymní FTP servery Servery veřejně přístupné komukoliv, většinou různé veřejné archivy informací. Nemohou pro zveřejnění dat využívat protokol TFTP, i když by byl vhodný díky nepožadované identifikaci uživatele, protože TFTP neumožňuje procházet adresářovou strukturu. Pro přístup do veřejných archivů se tedy používá protokol FTP, identifikace uživatele je řešena univerzálním uživatelským jménem anonymous nebo ftp, heslo buď není požadováno, nebo se jako heslo uvádí emailová adresa uživatele, žádajícího přístup do archivu. Často stačí cokoli, co obsahuje znak @. Účet ftp na serveru je potencionálním zdrojem ohrožení bezpečnosti serveru, proto musí být řízen za dodržení určitých pravidel. Pro anonymního uživatele se obvykle zřizuje skupina uživatelů (např. anonftp), jejímž členem je jediný uživatel a to ftp resp. anonymous. Zřízení uživatele ftp vyžaduje tedy v souboru /etc/group uvést anonftp::19: /etc/passwd/ ftp:*:404:19:anonymous FTP user:/home/ftp/:/bin/false Uživatel má zablokované heslo a nepoužitelnou přihlašovací utilitu /bin/false. Démon ftpd označí adresář /home/ftp jako root (použitím utility chroot) 18.11.2011 FTP 4
Pro stahování souborů je zřízen adresář ~ftp/pub, u kterého má kllient jen právo čtení. Pro zápis musí být zřízen jiný adresář, jehož obsah je pro klienty neviditelný, aby se zabránilo nelegální šíření nekontrolovaného software. Pro stahování souborů je vhodné používat komprimační program gzip, který se umísťuje do adresáře ~ftp/bin. FTP se spouští příkazem ftp adresa_počítače Na anonymní ftp servery lze i ukládat do zvláštního adresáře /pub/incoming, kde /pub je obvykle volně přístupný pro čtení. Je nutné rozlišovat binární a textové soubory. Přenos se obvykle provádí komprimovaně. Volně k dispozici jsou komprimační soubory na adr. ftp.cso.uiuc.edu/doc/pcnet Některé americké servery jsou zrcadleny v Evropě s obnovou dat každý druhý den. Seznam těchto serverů je v adresáři /MIRRORS FTP nepoužívá GUI. V kořenovém adresáři je INDEX, který obsahuje seznam všech souborů s cestami. Bezpečnost serveru vyžaduje pro údržbu a správu FTP je určena skupina administrátorů (např. ftpadmin) pro anonymní klienty se musí zřídit zvláštní skupina uživatelů (anonftp) vlastníkem adresáře ~ftp i všech podadresářů a souborů musí být root a skupina ftpadmin. Nastavení práv pro soubory -rw-rw-r--. pro adresáře drwxrwxr-x. Pro zápis musí být vyhrazen zvláštní adresář, např. ~ftp/incoming s vlastníkem root a se skupinou určenou pro anonymní klienty anonftp, Přístupová práva k tomuto adresáři musí být drwx-wx---. Pak anonymní klient má v něm právo zápisu, ale nevidí obsah adresáře. Konfigurace FTP Démon ftpd na FTP serveru vyžaduje pro stahování jednak příkaz ls a jednak komprimační program gzip. Oba jsou umístěny v adresáři ~ftp/bin. Tyto programy jsou sestaveny staticky a zkopírovány do daného adresáře, nebo využívají dynamických knihoven, které musí být v tomto adresáři. 18.11.2011 FTP 5
Dále je zapotřebí pro klienta zpřístupnit soubory group a psswd, ze kterého čerpá informace příkaz ls. Proto je potřebí z těchto souborů vybrat jen ty položky, které se týkají potencionálních uživatelů a vlastníků souborů v adresářích ftp a tyto zkopírovat do souborů ~ftp/etc/passwd a ~ftp/etc/group. Doporučuje se také změnit jména účtů v těchto souborech, aby se snížilo riziko zneužití. Nastavení souboru /etc/ftpusers: v tomto souboru jsou uživatelé, kteří mají zakázaný přístup pro relace FTP. Mezi nimi musí být i root, neboť se hesla při FTP relacích šíří volně a je možný jejich odposlech. Hlavním konfiguračním souborem je /etc/ftpaccess ve kterém se definují třídy uživatelů a počítačů, jimž pak lze selektivně upravovat přístupová práva, loginfails 3 počet pokusů k přístupu class local real, guest, anonymous jméno domény lokální klienti real kteří mají účet guest něco mezi anonymous a těmi co mají účet jméno domény se vztahuje na počítače, ze kterých lze provést přístup a musí být v reverzní doméně class remote totéž pro vzdálené přístupy readme README* login oznamují po přihlášení kdy byly soubory modifikovány passwd-check enforce - nutné zadat heslo včetně @ warn - varuje při nesprávném hesle, ale akceptuje none - bez hesla Příkazy FTP get <soubor>[<lokálni jméno>] ;stáhne soubor retr <soubor> stažení souboru ze serveru mget pro více souborů put <soubor>[<lokálni jméno>] ;přenese soubor na vzdáleny počítač stor totéž -uložení souboru na server mput pro více souborů uložení více souborů open <server>[<:port>] navázání spojeni dir včetně práv odpovídá příkazu List list totéž mkdir mkd <adresar> vytvoření adresáře prompt [on off] potvrzování jednotlivých souborů close ukončí spojení s ftp serverem 18.11.2011 FTP 6
quit konec práce s FTP klientem help [<prikaz>] ls = dir pouze jména souborů cd změna adresáře cwd <adresar> změna adresáře na sserveru lcd <adresar> přepnutí do lokálního adresáře mget <maska> pro více souboru mput <maska> pro více souboru hash [on off] po každém 1kB se objeví # ascii nastaví textový typ přenosu bin nebo binary nastaví binární typ!příkaz klient vykoná uvedený příkaz domácího OS cr on/off zapíná/vypíná výmaz znaku konec řádku type <typ> přepnutí binary/text binary považuje soubor za binární (pro Typ I asi už se používá jen tento typ) status zobrazuje stav všech přepínačů user umožňuje změnit jméno a heslo na vzdáleném počítači pass heslo pwd pracovní adresář, výpis delete <soubor> smazání souboru ze serveru dele <soubor> dtto abor odvolání předchozího příkazu help nápověda Alternativní protokoly k FTP 1. FTPS, SFTP, SCP FTPS označují souhrnně různá rozšíření protokolu FTP, která slouží k dosažení bezpečnosti přenosu dat. Je nadstavbou FTP, využívající SSL. SFTP nebo Secure FTP je FTP tunelované přes SSH. Obaluje standardní FTP bezpečnostní vrstvou. Používá stejné příkazy jako je FTP, ale je šifrován SSH. Používá port 22 FTP. Nepoužívá ho Microsoft. SCP Secure Copy. Využívá standard SSH nahrazen SFTP. 18.11.2011 FTP 7
2. WebDAV Web Distributed Authoring andversioning používaný zejména Microsoftem pro ukládání na serveru http (podporují ji ho Microsoft Office a Front Page). Využívá http protokol a pracuje na stejných portech (80 nebo 443). Je prostupný přes NAT a firewall. Je podporován pouze servery. Na stanicích neexistuje souborový mananger který by ho podporoval. Proto lze s ním pouze ukládat na servery. Zdroje: Connect 4/06 www. earchiv.cz cs.wikipedia.org 18.11.2011 FTP 8