Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky UPS. FTP Klient. A05463 fboranek@atlas.



Podobné dokumenty
Počítačové sítě Systém pro přenos souborů protokol FTP

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

Analýza síťového provozu. Ing. Dominik Breitenbacher Mgr. Radim Janča

File Transfer Protocol (FTP)

Administrace služby - GTS Network Storage

Administrace služby IP komplet premium

Administrace služby IP komplet premium

Relační vrstva SMB-Síťový komunikační protokol aplikační vrstvy, který slouží ke sdílenému přístupu k souborům, tiskárnám, sériovým portům.

Metody zabezpečeného přenosu souborů

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP TCP/IP.

Protokol TELNET. Schéma funkčních modulů komunikace protokolem TELNET. Telnet klient. login shell. Telnet server TCP/IP.

FTP (File Transfer Protocol)

Ing. Jitka Dařbujanová. TCP/IP, telnet, SSH, FTP

IMPLEMENTACE OPERAČNÍHO SYSTÉMU LINUX DO VÝUKY INFORMAČNÍCH TECHNOLOGIÍ

1. Administrace služby Bezpečný Internet přes webovou aplikaci WebCare GTS

Zapomeňte už na FTP a přenášejte soubory bezpečně

Typy samostatných úloh PSI 2005/2006

Uživatelský modul. File Uploader

Ing. Jitka Dařbujanová. , SSL, News, elektronické konference

Analýza aplikačních protokolů

Informační systém ozdravných pobytů zdravotní pojišťovny

Šifrování (2), FTP. Petr Koloros p.koloros [at] sh.cvut.cz.

Internet Information Services (IIS) 6.0

Úvod, jednoduché příkazy

SEMESTRÁLNÍ PROJEKT Y38PRO

HTTP protokol. Zpracoval : Petr Novotný

SIMATIC S IT. Micro Automation. Promoters Meeting October Představení CP IT SPIDER CONTROL TELESERVIS. TESTOVACÍ server.

SSL Secure Sockets Layer

7. Aplikační vrstva. Aplikační vrstva. Počítačové sítě I. 1 (5) KST/IPS1. Studijní cíl. Představíme si funkci aplikační vrstvy a jednotlivé protokoly.

TFTP Trivial File Transfer Protocol

Další internetové služby 1 - FTP

Úvod do Operačních Systémů

Operační systémy. Cvičení 1: Seznámení s prostředím

Úvod do informatiky 5)

Přenos souborů pomocí AceFTP (pdf verze pro tisk KB)

Uživatelský modul Stunnel

ZAŘÍZENÍ PRO VZDÁLENÝ SBĚR A PŘENOS DAT FIRMWARE

Počítačové sítě II. 19. FTP, vzdálené přihlašování, SNMP Miroslav Spousta,

metodický list č. 1 Internet protokol, návaznost na nižší vrstvy, směrování

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

spolupráce více systémů. . Pro zajištění služby je používáno více aplikačních protokolů, např.: DNS SMTP.

STŘEDOŠKOLSKÁ ODBORNÁ ČINNOST. Obor SOČ: 18. Informatika. Školní sdílení PC obrazovek. School sharing PC screens

Základy programování (IZP)

VPass Client Uživatelská příručka

Komunikační protokoly počítačů a počítačových sítí

Na vod k nastavenı u

PDS. Obsah. protokol LDAP. LDAP protokol obecně. Modely LDAP a jejich funkce LDIF. Software pro LDAP. Autor : Petr Štaif razzor_at

PŘÍRUČKA SÍŤOVÝCH APLIKACÍ

Úvod do informačních služeb Internetu

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Identifikátor materiálu: ICT-3-03

PSK2-14. Služby internetu. World Wide Web -- www

Internet protokol, IP adresy, návaznost IP na nižší vrstvy

Hypertext Transfer Protocol (HTTP/1.1 RFC 2616) Počítačové sítě Pavel Šinták

TRANSPORTY výbušnin (TranV)

Instrukce pro vzdálené připojení do učebny 39d

TÉMATICKÝ OKRUH Softwarové inženýrství

Úvod Úrovňová architektura sítě Prvky síťové architektury Historie Příklady

mbank.cz mtransfer Okamžitá notifikace o mtransferu Dokumentace pro externího partnera

Pˇ ríruˇ cka uživatele Kerio Technologies

Název školy: Základní škola a Mateřská škola Žalany. Číslo projektu: CZ. 1.07/1.4.00/ Téma sady: Informatika pro devátý ročník

Připojení systémů CNC 8x9 DUAL do sítí pomocí protokolu TCP/IP (Platí od verze panelu 40.31)

Site - Zapich. Varianta 1

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Inovace bakalářského studijního oboru Aplikovaná chemie

Základy počítačových sítí Model počítačové sítě, protokoly

INSTALACE SOFTWARE A AKTIVACE PRODUKTU NÁVOD

Studium enzymatické reakce metodami výpočetní chemie

TDP RPort 1.0. uživatelská příručka. 12. července 2007 Na slupi 2a, Praha 2

NAS 109 Použití NAS s Linux

Útoky na HTTPS. PV210 - Bezpečnostní analýza síťového provozu. Pavel Čeleda, Radek Krejčí

Uživatelský modul. Modem Bonding

Elektronická pošta. elementární služba, výchozí pro některé další jedna z prvních síťových služeb vůbec. základní principy popisují

Ing. Přemysl Brada, MSc., Ph.D. Ing. Martin Dostal. Katedra informatiky a výpočetní techniky, FAV, ZČU v Plzni

Základní příkazy UNIXu (Linuxu)

Ant aneb Ferda Mravenec, práce všeho druhu

TAOS321. Administrace. příručka správce systému. informační terminál systému JSVV

Úvod Virtuální kanál TCP Datagramová služba UDP URL TCP, UDP, URL. Fakulta elektrotechnická

Provádí ochranu sítě před napadením (ochrana počítačů nestačí) Odděluje uživatele (prvek nespolehlivosti) od prvků ochrany

Řešení pro audit činnosti administrátorů UNIX/Linux serverů

Stručný návod pro software dodávaný jako příslušenství k NetMini adaptéru. Komunikace UPS \ NetAgent Mini DK532, DP532. O.K.SERVIS Plus s.r.o.

Komunikace s automaty MICROPEL. správa systému lokální a vzdálený přístup do systému vizualizace, umístění souborů vizualizace

Postup získání licence programu DesignBuilder v4

Studium protokolu Session Decription Protocol. Jaroslav Vilč

1 Administrace systému Moduly Skupiny atributů Atributy Hodnoty atributů... 4

Úloha č.1 - TCP Server

Artlingua Translation API

Úvod Jednoduchá komunikace Sockety Konec. Programování v C# Síťová komunikace. Petr Vaněček 1 / 33

Další nástroje pro testování

ZÁLOHA A OBNOVA ABRA GEN

ZÁLOHA A OBNOVA ABRA GEN

SIMATIC S GPRS. Micro Automation. Promoters Meeting October Aplikace pro GPRS. Vzdálená stanice. Server SINAUT MICRO SC.

GX Remote Control Uživatelská příručka. Revize A

DŮLEŽITÉ INFORMACE, PROSÍM ČTĚTE!

Úvod. unx-predn_01-uvod.odt :13:43 1

1 KONFIGURACE GLFTPD A PZS-NG. 1.1 Zadání. 1.2 Teoretický úvod Aktivní režim Pasivní režim

DUM č. 11 v sadě. 36. Inf-12 Počítačové sítě

Bezpečnost v Javě. Architektura zabezpečení jazyka Java.

Transkript:

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky UPS FTP Klient Plzeň, 2007 František Bořánek A05463 fboranek@atlas.cz

Obsah 1 Úvod......2 2 Zadaní......2 2.1 Standardní zadání......2 2.2 Součásti programu......2 2.3 Co musí obsahovat dokumentace......2 3 Kontext a architektura systému......2 3.1 Kontext......2 3.1.1 FTP příkazy......3 3.1.2 Odpovědi......3 3.1.3 Navázání chráněné relace......4 3.1.4 Použití pasivního módu......4 3.2 Architektura systému......5 3.3 Datový typ FTPReplay......6 3.4 Zvolená technologie, programovací jazyk......6 4 Použité zkratky......6 5 Uživatelská dokumentace......6 5.1 Spuštění......6 5.2 Ovládání......6 5.3 Logování......7 5.4 Přeložení a sestavení......7 6 Použité zdroje......7 6.1 RFC dokumenty... 7 6.2 Ostatní... 7 1

1 Úvod FTP Klient je vytvořen v rámci semestrální práce pro předmět Úvod do počítačových sítí. Podporuje jen minimální množinu příkazů. Je napsán v jazyce Java v prostředí Netbeans. 2 Zadaní 2.1 Standardní zadání 2. FTP klient Prostudujte odpovídající RFC dokumenty a navrhněte minimální množinu podporovaných operací protokolu FTP. Realizujte funkce klienta. Součástí práce bude i otestování funkčnosti programu s existujícím serverem. Soustřeďte se na problematiku bezpečného připojení. 2.2 Součásti programu Součástí programu bude trasování komunikace, dovolující zachytit proces komunikace na úrovni aplikačního protokolu a zápis trasování do souboru. Každý program bude doplněn o zpracování statistických údajů (přenesený počet bytů, přenesený počet zpráv, počet navázaných spojení, počet přenosů zrušených pro chybu, doba běhu apod.). Zdrojové kódy organizujte tak, aby od sebe byly odděleny části volání komunikačních funkcí, které jste vytvořili na základě zadání, od částí určených k demonstraci funkčnosti vašeho řešení (grafické rozhraní). 2.3 Co musí obsahovat dokumentace Úvodní stránku se jménem zadání, Vaším příjmením a jménem, univerzitním číslem a emailovou adresou. Text zadání spolu s číslem zadání. Programátorskou dokumentaci - popis řešení, použitých datových struktur, formáty vyměňovaných zpráv, programů použitých při vývoji a programů potřebných k provozu aplikace. V případě realizace rozšířených zadání také odkazy na použité RFC dokumenty Uživatelskou dokumentaci - postup přeložení a sestavení, spuštění, parametry programu, ovládání. Odkazy na použité zdroje. 3 Kontext a architektura systému 3.1 Kontext FTP (File Transfer Protocol) je protokol aplikační vrstvy sloužící pro přenos souborů. Je definován v RFC959. Ftp používá dvě spojení, kontrolní a datové. Kontrolní je navázáno po celou dobu relace. Datové se navazuje pouze pro přenos dat (souborů a výpisu adresáře). Ftp používá Telnet protokol pro kontrolní spojení. Jsou dvě možnosti realizace. Použít existujícího Telnet klienta nebo implementovat vlastního klienta do FTP. Použil jsem druhou možnost a program si obhospodařuje kontrolní spojení sám. Datové spojení se inicializuje příkazy PORT nebo PASV. Aktivní spojení se realizuje odesláním příkazu PORT h3, h2, h1, h0, p1, p0, kde h je IP adresa klienta a p je port na kterém bude naslouchat. Server pak naváže datovou relaci a odešle data na IP adresu a port. 2

Pasivní spojení se realizuje odesláním příkazu PASV a server vrátí odpověď se zamítnutím pasivního přenosu nebo se specifikací IP adresy a portu. Klient sám pak naváže spojení. Tento klient podporuje pouze pasivní režim. Další příkazy: MODE, který nastavuje mód přenosu (přednastavený je stream ) TYPE, který nastavuje typ přenosu- (přednastavený je ASCII Non-print) STRU, (přednastavený je File) Tyto přednastavený hodnoty musí host akceptovat. Proto nebylo nutné všechny příkazy implementovat. Problémem je, že komunikace probíhá nešifrovaně a ověřování uživatele lze odposlechnout. V dnešní době je dostupný tzv. FTPS, který je zpětně kompatibilní s běžným FTP, ale v zasadě existují tři způsoby jak tento problém řešit. Secure FTP - FTP přes SSH označuje tunelování FTP skrz spojení navázaného pomocí SSH protokolu. Protože protokol FTP používá dvě spojení, je velmi těžké zajistit, aby bylo tunelováno nejen řídící, ale i datové spojení. SFTP - SSH File Transfer Protocol umožňuje přenos souborů mezi dvěma počítači a manipulaci s nimi. Pro vlastní přenos dat obvykle využívá protokol SSH-2, který zajišťuje zabezpečený přenos dat, avšak je navržen tak, aby ho bylo možné používat i nad jiným protokolem. FTPS nebo také FTP SSL/TLS rozšíření stávajícího FTP definované v RFC 2228 a je v několika variantach: Implicitní FTPS - starší, avšak stále hojně používaná metoda, kdy se klient připojuje na jiný port (typicky 990) a aktivace SSL je provedena před zasláním jakéhokoliv příkazu (tj. podobně jako u HTTPS) Explicitní FTPS - preferovaný způsob, který dle RFC 4217 definuje příkaz, který určuje, že bude použito TLS zabezpečení přenosu. Klient se připojuje na port 21, zahajuje nešifrovanou komunikaci a žádá o aktivaci TLS před tím, než budou posílána citlivá data. Tento způsob je implementovaný v tomto FTP Klientovi. 3.1.1 FTP příkazy Píší se znaky ASCII a server není case sensitive. Důležité je zachovat syntaxi. Následují implementované FTP příkazy: USER <SP> <username> <CRLF> PASS <SP> <password> <CRLF> CWD <SP> <pathname> <CRLF> CDUP <CRLF> QUIT <CRLF> PASV <CRLF> TYPE <SP> <type-code> <CRLF> RETR <SP> <pathname> <CRLF> STOR <SP> <pathname> <CRLF> DELE <SP> <pathname> <CRLF> RMD <SP> <pathname> <CRLF> MKD <SP> <pathname> <CRLF> PWD <CRLF> LIST [<SP> <pathname>] <CRLF> 3.1.2 Odpovědi Odpovědi jsou strukturované do tvaru tří-místného kódu, mezery a zprávy. Pokud odpověď má více řádků, místo mezery se použije mínus a poslední řádek začíná opět stejným kódem následuje mezera a text. CODE <SP> Message <CRLF> 3

Př: 123-First line Second line 234 A line beginning with numbers 123 The last line 3.1.3 Navázání chráněné relace Client Server control data data control =========================================================== socket() bind() socket() connect() ------------------------------------> accept() <------------------------------------ 220 AUTH TLS ------------------------------------> <------------------------------------ 234 TLSneg() <------------------------------------> TLSneg() PBSZ 0 ------------------------------------> <------------------------------------ 200 PROT P ------------------------------------> <------------------------------------ 200 USER fred ------------------------------------> <------------------------------------ 232 CCC ------------------------------------> <------------------------------------ 200 TLSshutdown() <---------------------------> TLSshutdown() 3.1.4 Použití pasivního módu Client Server control data data control =========================================================== PASV --------------> <-------------- 227 Entering Passive Mode (A1,A2,A3,A4,p1,p2) LIST --------------> <-------------- 150 Opening ASCII mode data connection for file list <-------přenos přes datový slocket-------> <-------------- 226 Transfer complete 4

3.2 Architektura systému Hlavní přehled balíčků: Balíčky ftp a ftps: Detailnější popis tříd je v JavaDoc, který je přiložený ke zdrojovým kódům. 5

3.3 Datový typ FTPReplay Z potřeby rozkládat návratovou zprávu na kód a text, popřípadě více řádkovou zprávu ještě na data, vznikla třída FTPRepley. Třída slouží jako kontejner pro tyto data a obsahuje metody pro rozklad surové zprávy a validování zpráv. 3.4 Zvolená technologie, programovací jazyk Pro snadnější přenositelnost mezi operačními systémy je celá aplikace napsaná v jazyce Java. Pro systém Linux je k aplikaci přiložený spouštěcí skript. 4 Použité zkratky <CRLF> <SP> <CR> <LF> <NL> konec řádku (End-Of-Line (Carriage Return, Line Feed)) mezera (Space) návrat vozíku (Carriage Return) posun o řádku (Line Feed) nový řádek (New Line) 5 Uživatelská dokumentace 5.1 Spuštění UNIX:./ftp [<host> [<login> <passwd>]] Windows: java -jar "SimpleFTPClient.jar" [<host> [<login> <passwd>]] 5.2 Ovládání Po spuštění aplikace se vypíše aktuální pracovní adresář, do kterého se budou ukládat vzdálené soubory. Seznam všech podporovaných příkazů se vypíše příkazem help. Příkazy: help vypíše seznam všech podporovaných příkazů open <host name> - naváže spojení k <host name>, pokud už jste přihlášeni, odhlásí vás z aktuální relace a založí novou user <login> - přihlášení jako uživatel <login> pwd vypíše pracovní adresář dir [<adresar>] - vypíše seznam souborů v adresáři, parametr <adresar> není povinný, potom vypíše aktuální pracovní adresář cd <adresar> - změna pracovního adresáře cdup změna pracovního adresáře o úroveň níž rmdir <adresar> - smaže neprázdný adresář mkdir <adresar> - vytvoří adresář get <remote file> - stažení souboru z ftp serveru send <local file> - ulození souboru na ftp server delete <remote file> - smazání souboru na ftp serveru quit odhlášení z relace a ukončení programu report vypíše statistiku spojení 6

5.3 Logování Do adresáře, ze kterého je volán program, se vytvoří soubor s názvem log.txt. Do souboru se ukládají odeslané a přijaté zprávy, chyby, zahození správ a pod. S novým spuštěním programu se soubor smaže a zapisuje se od začátku. 5.4 Přeložení a sestavení V adresáři java_src je celý Netbeans projekt. Překlad zdrojových souborů můžete realizovat tímto vývojovým IDE nebo použít ANT a buildfile build.xml. 6 Použité zdroje 6.1 RFC dokumenty RFC959 FTP (File Transfer Protocol) RFC 2228 FTP Security Extensions RFC 4217 Securing FTP with TLS 6.2 Ostatní http://cs.wikipedia.org/wiki/ftps http://www.java2s.com/code/java/network- Protocol/ImplementsaJavaFTPclientfromsocketandRFC.htm http://java.sun.com/javase/6/docs/api/index.html Package javax.net.ssl 7