FTP SERWER Leszek Lorens http://www.sysax.com/
Serwer FTP - komputer ze specjalnym przeznaczeniem Serwer FTP - komputer ze specjalnym przeznaczeniem. Umożliwia on korzystanie z usługi internetowej zajmującej się przesyłaniem plików poprzez sieć. Protokół transferu plików (File Transfer Protocol – FTP) jest określonym zbiorem zasad i standardów transferu zestawów plików a jego specyfikacja zawarta jest w dokumencie RFC 959
Serwerem może być dowolny komputer Aby jednak mógł się on nazywać serwerem FTP musi mieć zainstalowane oprogramowanie, które potrafi rozpoznawać i realizować żądanie użytkownika oraz dysponować zasobami, które może udostępniać w sieci
Komunikacja klient-serwer FTP w ogólności wygląda tak: Użytkownik łączy się z serwerem za pomocą specjalnego programu nazywanego klientem FTP. Konieczne jest podanie nazwy użytkownika i hasła, lub wpisanie słowa anonymous i podanie własnego adresu skrzynki pocztowej Klient FTP przesyła polecenia do serwera. Protocol Interpretrer inicjuje proces FTP ( użytkownik korzysta z portu o numerze przydzielonym losowo) Serwer FTP identyfikuje użytkownika i przydziela mu na czas sesji określone prawa dostępu do zasobów. ( w przypadku zasobów chronionych) Duża część serwerów FTP udostępnia tzw anonimowe konto ( do korzystania z zasobów ogólnodostępnych) Proces DTP ( Data Transfer Protocol ) serwera rozpoczyna połączenie z usługą DTP klienta ( faktyczna transmisja danych ) Serwer potwierdza wykonanie poleceń ( port TCP 21 ).
W trakcie tej komunikacji odbywają się dwa połączenia: Połączenie sterujące - transmisja żądań i odpowiedzi Połączenie danych - transmisja danych
Porty używane dla dwóch oddzielnych połączeń. Polecenia przesyłane są na porcie TCP 21. Dane transferowane są na porcie TCP 20. Połączenie danych jest nawiązywane tylko na czas transferu danych. Serwer FTP w stanie bezczynności nasłuchuje tylko na porcie 21
Komunikacja klient-serwer http://sieci-komputerowe.net/podstawy/116-jak-dziala-ftp
Dwa tryby komunikacji klient- serwer Tryb aktywny Klient nawiazuje połaczenie na porcie 21 Klient wybiera plik do pobrania Klient otwiera port N i informuje o nim serwer Serwer łaczy sie z klientem (na podany port N) i nastepuje wymiana danych Tryb pasywny Klient nawiazuje połaczenie na porcie 21 Klient wybiera plik do pobrania Serwer otwiera port N i informuje o nim klienta Klient łaczy sie z serwerem (na podany port N) i nastepuje wymiana danych
Jeszcze raz tryby aktywny i pasywny tym razem w odniesieniu do wymiany danych FTP Tryb aktywny – klient wykonuje połączenie TCP do portu 21 serwera FTP. Jest to połączenie sterujące. Klient przy nawiązywaniu połączenia transmisji wysyła polecenie PORT aby zawiadomić serwer do jakiego portu klienta ma się on połączyć W momencie wysyłania polecenia PORT klient rozpoczyna nasłuch na tym porcie. Serwer łączy się z klientem na podanym porcie tworząc połączenie danych. Tryb pasywny – klient wykonuje połączenie TCP do portu 21 serwera FTP. Jest to połączenie sterujące. Przy nawiązywaniu połączenia transmisji danych klient wysyła polecenie PASV, na które serwer odpowiada tworząc nowe gniazdo nasłuchowe dla połączenia danych. Informuje o trym klienta a klient łączy się na podane gniazdo i na numer IP tworząc połączenie danych
Po co aktywny i pasywny tryb? Tryb aktywny polega na tym, że klient łączy się z portu >1023 na port 21 serwera i następnie serwer sam inicjuje połączenie przesyłania danych z portu 20 na port klienta >1023. Administratorzy przeważnie blokują ruch przychodzący i niemożliwe jest nawiązanie połączenia z zewnątrz sieci przez serwer FTP. W tym celu stworzono drugie rozwiązanie – tryb pasywny, w którym klient wysyła zapytanie do serwera FTP, który następnie otwiera port >1023 i informuje o tym klienta. Skutkuje to jednak większą podatnością serwera na ataki.” http://www.kalkowski.name/dydaktyka/2011-2012-L/ASL/referaty/ftp/asl_ftp_dokumentacja.pdf http://slacksite.com/other/ftp.html
Anonymous Protokół FTP pozwala na nawiązywanie połączeń anonimowych, bez konieczności legitymowania się indywidualnym kontem na serwerze. Wystarczy wtedy jako nazwę konta wpisać anonymous i swój adres mailowy jako hasło. Korzysta się wówczas z zasobów serwera dostępnych publicznie. Jednak anonimowy użytkownik ma możliwość tylko pobierania plików a nie może ich wysyłać.
Dwa sposoby przesyłania plików Binarnie – plik jest przesyłany w formie nie zmienionej W trybie ASCII – niektóre bity są kodowane innym systemem i taka modyfikacja pliku (np. binarnego) nie pozwala na jego odczytanie . Tryb ASCII jest przeznaczony do przesyłania zbiorów tekstowych.
Dobranie trybu transferu Tryb binarny należy zastosować dla plików wykonywalnych, archiwów, zdjęć, plików muzycznych i filmowych, dokumentów .doc i .pdf. Tryb tekstowy stosuje się m.in. do plików .txt, .html, .php, .css i innych, dla których otwarcie pliku w edytorze tekstowym zwróci czytelny tekst. Tryb binarny ustawiamy poleceniem „binary”. Tryb ASCII ustawiamy poleceniem „ascii”. Aby dowiedzieć się, jaki tryb jest aktualnie używany, należy wydać polecenie „status”.
Podstawowe polecenia FTP polecenia sterujące dostępem polecenia sterujące przesyłaniem polecenia przesyłania plików polecenia zarządzania plikami i katalogami polecenia pomocy i kontroli stanu sesji odpowiedzi serwera FTP
Kody odpowiedzi serwera Odpowiedzią serwera FTP na otrzymane od klienta polecenie jest kod odpowiedzi informujący, czy i jak zostało ono wykonane. W przypadku niewykonania polecenia odpowiedni kod błędu wskazuje, jakie działania powinien podjąć klient. Wszystkie kody odpowiedzi są złożone z trzech pozycji alfanumerycznych. Pierwsza z nich zapewnia informacje ogólne— określa czy odpowiedź jest dobra, zła czy niekompletna Druga pozycja przyporządkowuje odpowiedź do określonej grupy odpowiedzi czy błędu Trzecia pozycja kodu odpowiedzi zapewnia dalsze sprecyzowanie podawanej informacji — ściśle zależy ona od dwóch pierwszych, uściśla [poprzednie cyfry
Przykładowy wygląd schematów kodów odpowiedzi serwera FTP Odnośnie wartości pierwszej pozycji kodu: 1yz – odpowiedź poprawna wstępna 2yz – odpowiedź poprawna kompletna 3yz – odpowiedź częściowo poprawna, potrzebne dodatkowe dane 4yz - odp. chwilowo niepoprawna serwer nie może przeprowadzić akcji 5yz - odpowiedź jednoznacznie negatywna ( kody konkretnych odpowiedzi w dokumentacji prezentacji)
Żródła zestawów poleceń FTP i znaczeń kodów odpowiedzi serwera http://www.prz.rzeszow.pl/we/katedry/zsc/materialy/projekty/041.pdf http://www.prz.rzeszow.pl/we/katedry/zsc/materialy/projekty/009.pdf http://www.networksorcery.com/enp/rfc/rfc959.txt http://www.networksorcery.com/enp/rfc/rfc959.txt
Bezpieczeństwo FTP Z uwagi na to, że hasła FTP przesyłane są tekstem jawnym to istnieje zawsze ryzyko przechwytywania haseł. Protokół FTP używa więc poleceń zapewniających pewien stopień bezpieczeństwa przesyłania danych i autoryzacji dostępu.
Polecenia bezpieczeństwa AUTH – klient informuje tym poleceniem z jakiego mechanizmu bezp. chce skorzystać. Serwer może ten mechanizm zaakceptować lub odrzucić ( jeśli nie miałby zabezpieczeń FTP ) ADAT – polecenie uwierzytelnienia zabezpieczenia – klient tym poleceniem może przesłać na żadanie serwera dodatkowe informacje uwierzytelniające. PROT – po ustanowieniu bezpiecznego połączenia polecenie prot pozwala określić poziom ochrony kanału danych ( w ustawieniach dostępne są opcje: clear, safe, confidential, private ) W opcji Private następuje jednocześnie szyfrowanie i sprawdzanie integralności ( czyli safe i confidential w jednym . W zależności od wybranej opcji stosowane są dalsze polecenia : CCC – do jawnych przesyłów lub MIC – do transmisji safe PBSZ – określa rozmiar bufora ochrony ( największy dopuszczalny rozmiar kodowanych bloków danych, podawany w bajtach ).
Jak znależć w sieci to, co nas interesuje ? Służą do tego celu serwery ARCHIE, na których jest zgromadzony spis anonimowych serwerów FTP a także spis plików znajdujących się na tych serwerach. Serwery Archie i ich lokalizacja Kanada – archie.mcgill.ca Finlandia – archie.funet.fi Japonia - archie.wide.ap.jp USA - archie.internic.net W.Bryt. - archie.doc.ic.ac.uk W Interdyscyplinarnym Centrum Modelowania Matematycznego i Komputerowego Uniwersytetu Warszawskiego działa polski serwer archie archie.icm.edu.pl
Przykłady serwerów ftp dostępnych na linuksie proftpd wu-ftpd pureftpd vsftpd
VSFTPD SERVER vsftpd ("Very Secure FTP Daemon") to serwer FTP zapewniający obsługę standardowego protokołu FTP jak i jego zabezpieczonej wersij, FTPS. Bezpieczne uwierzytelnianie i transfer plików osiągnięto poprzez wykorzystanie protokołu SSL. Protokół SSL jest dostępny dzięki zastosowaniu zewnętrznej biblioteki OpenSSL,23 Jest on uważany za prawdopodobnie najbezpieczniejszy i najszybszy serwer FTP
Przykład konfiguracji bezpiecznego połączenia ssl dla serwera vsftpd /etc/vsftpd.conf – plik konfiguracyjny serwera ssl_enable=YES allow_anon_ssl=NO force_local_data_ssl=NO force_local_logins_ssl=NO ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO rsa_cert_file=/etc/vsftpd/vsftpd.pem Reszta przykładów w pliku „implementacja”
Dziękuję za uwagę http://www.filesharingexperts.com/tag/ftp-client/