Bez względu na to, czy witryna znajduje się w sieci intranet, czy Internet, wykorzystanie
usługi FTP w celu udostępniania plików jest niemal nieuniknione. Protokół ftp został stworzony specjalnie w celu przesyłania plików
i w porównaniu do innych protokołów jest jednym z najszybszych. Obecna wersja Internetowych
Usług Informacyjnych zawiera mechanizm izolowania użytkowników FTP podnoszący znacznie
poziom bezpieczeństwa.
Bez względu na to, czy witryna znajduje się w sieci intranet, czy Internet, wykorzystanie
usługi FTP w celu udostępniania plików jest niemal nieuniknione. Protokół ftp (ang.
file transfer protocol) został stworzony specjalnie w celu przesyłania plików
i w porównaniu do innych protokołów jest jednym z najszybszych. Obecna wersja Internetowych
Usług Informacyjnych zawiera mechanizm izolowania użytkowników FTP podnoszący znacznie
poziom bezpieczeństwa.
W systemach operacyjnych z rodziny Microsoft® Windows® Server 2003 usługa FTP
nie jest instalowana domyślnie.
Instalacja
W systemach operacyjnych z rodziny Microsoft® Windows® Server 2003 usługa FTP
nie jest instalowana domyślnie. W celu zainstalowania usługi FTP należy wykonać
następujące kroki:
- Uruchomić Panel sterownia z menu Start.
- Kliknąć Dodaj lub usuń programy.
- Wybrać dodaj/usuń składniki systemu Windows.
- Kolejno w opcjach szczegółowych: Serwer aplikacji, IIS, zaznaczyć
usługę FTP.
- Potwierdzić instalację wybranych składników.
Po tych czynnościach usługa FTP zostanie zainstalowana i uruchomiona z domyślnymi
ustawieniami. Katalog macierzysty znajdować się będzie w %systemroot%\inetpub\ftproot.
Standardowym portem, z jakiego korzysta FTP jest port 21.
Aby sprawdzić działanie usługi uruchamiamy wbudowany program kliencki ftp dostępu
w trybie tekstowym:
ftp> o 127.0.0.1
Connected to 127.0.0.1.
220 Microsoft FTP Service
User (127.0.0.1:(none)): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 Anonymous user logged in.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
226 Transfer complete.
ftp>
Jako użytkownik (user) należy wpisać 'anonymous' bądź 'ftp' a jako hasło adres
e-mail. Otrzymanie takiego efektu, jak na załączonym przykładzie świadczy o prawidłowym
zainstalowaniu usługi
Zmiana katalogu macierzystego
Istnieją dwa sposoby zmiany katalogu macierzystego serwera FTP:
- korzystając z konsoli MMC IIS,
- bezpośrednia edycja pliku MetaBase.xml.
Sposób pierwszy polega na wyborze usługi ftp w konsoli mmc IIS, i zmianie właściwości:
W polu Katalog witryny FTP należy podać nowy katalog domowy. Możliwy jest
też wybór ścieżki na innym komputerze w sieci, jednak wtedy należy podać rownież
nazwę użytkownika i hasło do zasobu. Aby nowe ustawienia zadziałały, należy zrestartować
usługę.
Sposób drugi polega na edycji pliku MetaBase.xml. Aby tego dokonać, należy
wpierw zatrzymać usługę IIS oraz FTP w serwisach. W katalogu %systemroot%\System32\Inetsrv
znajduje się wspomniany plik, który należy wyedytować przy użyciu edytora tekstowego.
Należy wyszukać ciąg znaków /msftpsvc/1/root i w sekcji tej ustawić odpowiednio
wartość pola path. Po tych czynnościach należy uruchomić usługę IIS i FTP.
Dodatkowo, przed ponownym uruchomieniem można przenieść zawartość starej witryny
ftp w nowe miejsce.
Zmiana nazwy witryny FTP
Serwer korzystający z usługi IIS ma możliwość hostowania wielu witryn FTP. Każda
witryna działa na wirtualnym serwerze i każda ma unikalną nazwę. W celu zmiany nazwy
witryny FTP, należy uruchomić przystawkę IIS mmc, wskazać na żądaną witrynę, kliknąć
prawym przyciskiem myszy na właściwościach, po czym zmienić jej opis:
Ustawianie wiadomości FTP
Każdą witrynę FTP można wzbogacić o informacje wyświetlane w czasie logowania
lub wylogowywania. Istnieją cztery rodzaje komunikatów:
- transparent - wyświetlane przed załogowaniem się użytkownika
- powitanie - wyświetlane zaraz po załogowaniu się użytkownika
- zakończenie - wyświetlane na zakończenie sesji
- " maksymalna liczba połączeń - wyświetlany w momencie przekroczenia maksymalnej
liczby równoczesnych połączeń
Domyślnie wszystkie komunikaty są puste. Zmiany dokonywane są we właściwościach
danej witryny w zakładce Wiadomości:
Wprowadzone zmiany działają od razu, bez potrzeby restartowania usługi. Zmiany
można sprawdzić przy pomocy programu ftp w trybie tekstowym:
ftp> o 127.0.0.1
Connected to 127.0.0.1.
220-Microsoft FTP Service
220 Serwer FTP na bazie Windows 2003 Server
User (127.0.0.1:(none)): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230-To jest testowa witryna uslugi FTP.
Zasoby znajdujace sie na tym komputerze sa wlasnoscia
230 Anonymous user logged in.
ftp> bye
221 Zapraszamy ponownie
Dodawanie podkatalogów do witryny
Budowanie hierarchii drzewa może polegać na rozbudowie samego podkatalogu macierzystego
witryny, bądź też na dodawaniu katalogów wirtualnych. Katalogi wirtualne pozwalają
na rozbudowę serwera FTP poza partycję, na której znajduje się katalog macierzysty,
dzięki temu możliwe jest zwiększanie objętości witryny poprzez proste dodanie nowego
katalogu wirtualnego na nowym wolumenie. Stosowanie katalogów wirtualnych, zwanych
inaczej aliasami, ułatwia także zarządzanie witryną, podnosi poziom bezpieczeństwa
poprzez ukrywanie fizycznych lokalizacji pliku na wolumenie, oraz pozwala ustalić
różne prawa dostępu do tego samego zasobu dla różnych użytkowników. Przy dodawaniu
aliasu, należy pamiętać o odpowiednim ustaleniu praw dostępu do katalogów docelowych.
Aby dodać katalog wirtualny należy wykonać następujące kroki:
- Prawym klawiszem myszy wywołać menu podręczne wskazanej witryny FTP.
- Wybrać polecenie Nowy katalog wirtualny.
- Wpisać odpowiedni alias.
- Wskazać docelową ścieżkę.
- W katalogu macierzystym należy utworzyć podkatalog o identycznej nazwie,
co alias.
Należy zwrócić uwagę na punkt 5, bez którego wykonania alias będzie istniał,
lecz nazwa tego katalogu nie będzie wyświetlana przy listowaniu katalogu.
Istnieje także możliwość zagnieżdżania aliasów, przy zasada z punktu 5 (konieczność
utworzenia fizycznego pustego katalogu, aby wirtualny katalog był widoczny) dotyczy
fizycznej lokalizacji katalogu macierzystego.
Tworzenie wielu witryn FTP
Utworzenie wielu witryn FTP jest możliwe przy użyciu wielu adresów IP i/lub wielu
portów. Tworzenie wielu witryn dla wielu adresów IP jest dość powszechnie stosowane
i nie wymaga zbyt wielu dodatkowych ustawień, natomiast korzystanie z jednego IP
lecz z wielu portów wymaga, aby każdy użytkownik został poinformowany o porcie na
którym dana witryna jest uruchomiona. Istnieje także możliwość tworzenia wielu witryn
na jednym adresie IP, na tym samym porcie, jednak ograniczeniem jest możliwość uruchomienia
tylko jednej takiej witryny w tym samym czasie.
Dodawanie nowej witryny FTP
Utworzenie nowej witryny polega na wywołaniu menu podręcznego w konsoli IIS i
wybraniu opcji 'Nowy->Witryna FTP', po czym należy wprowadzić nazwę identyfikującą.
W następnym kroku wybrać IP, na którym nowa witryna będzie pracować oraz port. Nowością
w tej edycji IIS jest wybór trzech trybów izolacji użytkowników (opis poniżej).
Należy wybrać odpowiedni tryb, po czym w następnym kroku podać katalog macierzysty
i zakończyć proces. Możliwe jest też skorzystanie ze skryptu administracyjnego iisftp.vbs.
W lini komend uruchomić skrypt iisftp.vbs o podanej składni:
cscript iisftp.vbs /create Home Directory "Site Description" IP Address /b
Port
Dla przykładu, w celu utworzenia witryny o nazwie MyFTPSite, na porcie 21, dla
danego adresu IP i w katalogu C:\MySite, należy wpisać:
cscript iisftp.vbs /create C:\MySite "MyFTPSite" /i 123.456.789 /b 21
Dodatkowe informacje o dodatkowych opcjach skryptu iisftp.vbc można znaleźć w
pliku pomocy.
Tryby transmisji
Przy omawianiu usługi FTP, należy zwrócić uwagę na dwie rzeczy. Pierwsza to tryb
pracy, który może być ustawiony na passive bądź też na active. Drugą
sprawą jest tryb transmisji danych, który może być strumieniem, blokiem lub skompresowany.
FTP wchodzący w skład IIS obsługuje dwa tryby połączenia (aktywny i pasywny) i wybiera
odpowiedni w zależności od klienta, który ten tryb ustala. IIS nie pozawala na wyłączenie
któregokolwiek z trybów.
W przeciwieństwie do innych protokołów sieciowych, protokół FTP korzysta z minimalnie
dwóch połączeń dla każdej z sesji: half-duplex dla kontroli sterowania, oraz full-duplex
dla przepływu danych. Domyślnie używany jest port 21 dla kontroli sterowania a port
przepływu danych jest uzależniony od wyboru trybu połączenia. Tryb aktywny (active-mode)
polega na wysłaniu przez klienta komendy port do serwera, z poleceniem ustanowienia
połączenia dla przepływu danych na porcie 20 od serwera do klienta. W trybie pasywnym
(passie-mode), klient wysyła komendę pasv, po czym serwer zwraca port, z którego
będą wysyłane dane.
W trybie pasywnym istnieje możliwość transferu typu site-to-site polegającego
na przesłaniu plików pomiędzy serwerami. Aby zezwolić na tego typu transfer należy
ustawić odpowiednie wartości w rejestrze:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSFTPSVC\Parameters\EnableDataConnTo3rdIP=1
oraz
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSFTPSVC\Parameters\EnablePasvConnFrom3rdIP=1
W trybie aktywnym port danych jest z góry określony jako port o numer niżej od
portu kontroli przepływu danych.
W trybie pasywnym można zmienić zakres używanych portów poprzez metabazę. Wystarczy
w sekcji /lm/msftpsvc dodać parametr PassivePortRange="22222-33333",
(tutaj 22222-33333 jest tylko przykładową wartością). Domyślnym zakresem portów
jest 1025-5000, można go zmienić na inny mieszczący się w granicach 5001-65535.
Bezpieczeństwo
Przy korzystaniu z usług ftp wymagane jest podanie użytkownika i hasła. Niestety
cały proces odbywa się w nieszyfrowanym kanale komunikacyjnym. Kanał transmisji
danych jest także nieszyfrowany. W celu osiągnięcia większego poziomu bezpieczeństwa
zaleca się korzystanie z sieci prywatnych VPN lub protokołu IPSec.
Izolacja użytkowników
Izolacja użytkowników FTP jest rozwiązaniem dla usługodawców internetowych (ISP)
i usługodawców w zakresie aplikacji, którzy chcą zaoferować swoim klientom indywidualne
katalogi FTP do przekazywania plików i zawartości sieci Web. Izolacja użytkowników
FTP uniemożliwia oglądanie i zastępowanie zawartości sieci Web innych użytkowników,
zezwalając użytkownikom na dostęp tylko do własnych katalogów. Użytkownicy nie mogą
przechodzić w kierunku wierzchołka drzewa katalogów, ponieważ ich katalog najwyższego
poziomu występuje jako katalog główny usługi FTP. W ramach swoich określonych witryn
użytkownicy mogą tworzyć, modyfikować oraz usuwać pliki i foldery.
Izolacja użytkowników FTP jest właściwością witryny, a nie serwera. Można ją
włączyć lub wyłączyć dla każdej witryny FTP.
| Tryb izolacji |
Opis |
| Nie izoluj użytkowników |
Ten tryb nie pozwala na izolację użytkowników FTP. Działa on podobnie
do wcześniejszych wersji usług IIS. Ponieważ nie jest wymuszana izolacja
różnych użytkowników logujących się na serwerze FTP, tryb ten jest idealny
w przypadku witryny oferującej tylko pobieranie udostępnionych zawartości
lub w przypadku witryn, które nie wymagają ochrony dostępu do danych różnych
użytkowników. |
| Izoluj użytkowników |
W tym trybie użytkownicy są uwierzytelniani na podstawie użytkowanych
kont lokalnych lub kont domeny, zanim będą mogli uzyskać dostęp do katalogu
macierzystego odpowiadającego ich nazwie. W strukturze katalogów wszystkie
katalogi macierzyste użytkowników znajdują się w obszarze jednego katalogu
głównego FTP — są w nim umieszczani wszyscy użytkownicy, a każdy z nich
ma dostęp tylko do własnego katalogu macierzystego. Użytkownicy nie mają
uprawnień do wychodzenia poza własne katalogi macierzyste. Jeśli użytkownicy
muszą mieć dostęp do dedykowanych folderów udostępnionych, można także utworzyć
wirtualny katalog główny. Ten tryb nie wymaga uwierzytelniania poprzez usługę
katalogową Active Directory.
Uwaga: Gdy trybu tego użyje się do utworzenia setek katalogów
macierzystych, wydajność serwera może się obniżyć.
|
| Izoluj użytkowników używając usługi Active Directory |
W tym trybie poświadczenia użytkowników są uwierzytelniane na podstawie
odpowiadającego im kontenera Active Directory, a nie poprzez przeszukiwanie
całej usługi Active Directory, co wymagałoby długiego czasu przetwarzania.
Określone wystąpienia serwera FTP mogą być przeznaczone dla każdego klienta,
aby zapewnić integralność danych i izolację. Gdy obiekt użytkownika zostanie
zlokalizowany w kontenerze Active Directory, wyodrębniane są właściwości
FTPRoot i FTPDir w celu podania pełnej ścieżki do katalogu
macierzystego użytkownika. Jeśli usługa FTP może pomyślnie uzyskać dostęp
do ścieżki, użytkownik jest umieszczany w katalogu macierzystym, który reprezentuje
położenie katalogu głównego FTP. Użytkownik widzi tylko położenie swojego
katalogu głównego FTP i dlatego nie może się poruszać w górę drzewa katalogów.
Jeśli właściwość FTPRoot albo FTPDir nie istnieje lub jeśli
właściwości te razem nie tworzą poprawnej i dostępnej ścieżki, użytkownikowi
zostanie odmówiony dostęp.
Uwaga Ten tryb wymaga, aby serwer Active Directory był uruchomiony
w systemie operacyjnym z rodziny Windows Server 2003. Można także użyć serwera
Windows 2000 Active Directory, ale wymaga on ręcznego rozszerzenia schematu
obiektów użytkowników. Aby uzyskać więcej informacji o konfigurowaniu serwera
Active Directory, zajrzyj do Pomocy systemu Windows.
|
Wybór odpowiedniego trybu izolacji jest możliwy tylko podczas tworzenia nowej
witryny FTP.
Spis treści
Autor: Ireneusz Kupiec