Konfigurowanie serwera FTP z izolacją użytkownika w systemie Windows Server 2016/2012 R2

Chociaż protokół FTP, jeden z najstarszych protokołów, ma już 40 lat i nadal jest używany wszędzie tam, gdzie wymagany jest prosty protokół przesyłania plików. Serwer FTP można zainstalować we wszystkich systemach operacyjnych Microsoft. Ostatnia głęboka modernizacja tej usługi została dokonana w systemie Windows 7 / Server 2008 R2 (w rzeczywistości kod usługi został przepisany ponownie). Bezpieczeństwo usługi zostało znacznie poprawione i pojawiło się wiele nowych funkcji. W szczególności na serwerze FTP w systemie Windows stała się możliwa konfiguracja izolacja FTP użytkowników, umożliwiając zróżnicowanie dostępu wielu użytkowników do ich własnych folderów na jednym serwerze FTP.

Ze względu na funkcję izolacji użytkownicy mogą pracować tylko ze swoimi katalogami ftp i nie mogą wspinać się wyżej w drzewie katalogów, ponieważ Katalog najwyższego poziomu użytkownika wydaje mu się jako katalog główny usługi FTP. W ten sposób można uniemożliwić użytkownikom dostęp do plików innych osób na serwerze FTP. Izolacja użytkowników FTP jest szeroko stosowana przez dostawców hostingu, gdy konieczne jest zapewnienie indywidualnego dostępu różnym użytkownikom do jednego magazynu plików.

Podobnie jak w poprzednich wersjach systemu Windows, usługa FTP (nie mylić z sFTP i TFTP) w systemie Windows Server 2016/2012 R2 jest oparta i głęboko zintegrowana z usługą IIS i ma jeden interfejs zarządzania administracyjnego. W tym artykule pokażemy, jak to zrobić zainstaluj serwer FTP oparty na IIS w systemie Windows Serwer 2016/2012 R2 i skonfiguruj na nim izolację użytkownika (Instrukcje dotyczą również systemu Windows 10 / 8.1).

Treść

  • Instalowanie roli serwera FTP w systemie Windows Server 2016/2012 R2
  • Konfigurowanie witryny FTP w systemie Windows Server, przyznawanie uprawnień użytkownikom
  • Skonfiguruj izolację użytkowników FTP w systemie Windows Server 2016/2012 R2
  • Skonfiguruj reguły zapory systemu Windows, aby uzyskać dostęp do serwera FTP
  • Sprawdzanie połączenia z serwerem FTP z klienta Windows

Instalowanie roli serwera FTP w systemie Windows Server 2016/2012 R2

Możesz zainstalować usługę FTP za pomocą konsoli Menedżera serwera, zwracając uwagę na sekcję Serwer WWW (IIS) -> Serwer FTP opcje Usługa FTP i Rozszerzalność FTP.

Możesz także zainstalować rolę serwera FTP za pomocą jednego polecenia PowerShell:
Zainstaluj-WindowsFeature Web-FTP-Server

Aby zainstalować konsolę zarządzania serwerem FTP, uruchom polecenie:

Install-WindowsFeature -Name „Web-Mgmt-Console”

Konfigurowanie witryny FTP w systemie Windows Server, przyznawanie uprawnień użytkownikom

Uruchom Server Manager i otwórz konsolę zarządzania Internet Information Service Manager (IIS).

Utwórz nową witrynę FTP (Witryny -> Dodaj FTP Witryna).

Nazwa witryny FTP: MyTestSite

Katalog główny witryny FTP: C: \ inetpub \ ftproot

Aby chronić dane ftp przesyłane przez sieć, możliwe jest skonfigurowanie protokołu SSL (w tym przypadku wszystkie dane przesyłane przez sieć i hasła / konta użytkowników ftp będą szyfrowane), ale nie jest to konieczne w naszej demonstracji. Wszystkie pozostałe ustawienia są pozostawione jako domyślne..

Możesz zarządzać swoją witryną FTP za pomocą modułu administracyjnego PowerShell WebAdministration. Na przykład, aby utworzyć nową witrynę FTP, wystarczy wykonać następujące polecenia:

Moduł administracji Web Import
# Ustaw nazwę witryny FTP
$ FTPSiteName = „Nowa strona FTP”
# Katalog strony FTP
$ FTPRoot = 'E: \ www \ FTPRoot'
# Port witryny FTP
$ FTPPort = 21
New-WebFtpSite -Name $ FTPSiteName -PhysicalPath $ FTPRoot -Port $ FTPPort

Wybierz nową witrynę FTP w sekcji FTP Uwierzytelnianie (Uwierzytelnianie) wyłącz anonimowe uwierzytelnianie Anonimowe uwierzytelnianie. Podstawowe uwierzytelnianie musi być włączony.

Usługa FTP w systemie Windows Server 2016/2012 R2 może korzystać z dwóch rodzajów kont: domeny lub lokalnego. W zależności od rodzaju konta istnieją różnice w strukturze katalogów FTP i ustawieniach izolacji użytkownika. Użyjemy lokalnych kont Windows.

Utwórz użytkowników FTP, na przykład będą to konta ftp_user1, ftp_user2 i ftp_user3. Utwórz także grupę ftp_users, aby uwzględnić tych użytkowników. W sekcji możesz tworzyć użytkowników Lokalny Użytkownicy i Grupy konsola Komputer Zarządzanie.

Możesz także tworzyć użytkowników i grupy z wiersza poleceń (lub używając PowerShell). Utwórz grupę lokalną:
net localgroup ftp_users / add

Utwórz nowego lokalnego użytkownika:

użytkownik netto ftp_user1 / add *

Dodaj użytkownika do grupy:

net localgroup ftp_users ftp_user1 / add

Utwórz dwóch kolejnych użytkowników w ten sam sposób..

Nadaj utworzone uprawnienia grupy ftp_users (RW) do katalogu C: \ inetpub \ ftproot.

W katalogu C: \ inetpub \ ftproot utwórz katalog o nazwie Localuser (nazwa musi być w pełni spójna, to jest ważne!!!) Następnie w C: \ inetpub \ ftproot \ LocalUser utwórz trzy katalogi z nazwami utworzonych użytkowników: ftp_user1, ftp_user2, ftp_user3.

Uwaga. W zależności od rodzaju kont musisz utworzyć następującą strukturę katalogów (przez% FtpRoot% \ rozumiemy katalog główny witryny FTP, w naszym przypadku jest to C: \ inetpub \ ftproot \):

Rodzaj kontaSkładnia nazewnictwa katalogu domowego
Anonimowi użytkownicy% FtpRoot% \ LocalUser \ Public
Konto lokalne systemu Windows% FtpRoot% \ LocalUser \% UserName%
Konto domeny Windows% FtpRoot% \% UserDomain% \% UserName%
Specjalne konta Menedżera IIS lub kont ASP.NET% FtpRoot% \ LocalUser \% UserName%


Wróć do konsoli IIS i sekcji witryny Reguły autoryzacji FTP utwórz nową regułę (Dodaj regułę Zezwól), w którym wskazuje, że grupa ftp_users powinna mieć uprawnienia do odczytu i zapisu (uprawnienia do odczytu i zapisu).

Skonfiguruj izolację użytkowników FTP w systemie Windows Server 2016/2012 R2

Przejdźmy do ustawienia izolacji użytkownika FTP. Izolacja użytkowników FTP jest konfigurowana na poziomie witryny FTP, a nie całego serwera, i pozwala zorganizować własny katalog domowy dla każdego użytkownika. W ustawieniach witryny FTP otwórz element FTP Użytkownik Izolacja.

W tej sekcji znajduje się kilka ustawień. Pierwsze dwa nie oznaczają izolacji użytkownika:

  • FTP root katalog (ftp - sesja użytkownika rozpoczyna się od katalogu głównego witryny ftp);
  • Użytkownik imię katalog (użytkownik zaczyna od katalogu fizycznego / wirtualnego z nazwą użytkownika. Jeśli katalogu brakuje, sesja rozpoczyna się od katalogu głównego witryny ftp).

Poniższe 3 opcje reprezentują różne tryby działania izolacji użytkownika:

  • Użytkownik imię katalog (wyłącz globalny katalogi wirtualne) - zakłada, że ​​sesja ftp użytkownika jest izolowana przez katalog fizyczny lub wirtualny, którego nazwa odpowiada nazwie użytkownika ftp. Użytkownicy widzą tylko własny katalog (dla nich jest to katalog główny) i nie mogą wyjść poza niego (w wyższym katalogu drzewa FTP). Wszystkie globalne katalogi wirtualne są ignorowane;
  • Użytkownik imię fizyczny katalog (włącz globalny wirtualny katalogi) - zakłada się, że sesja FTP użytkownika jest ograniczona (izolowana) przez katalog fizyczny o nazwie konta użytkownika FTP. Użytkownik nie może przekroczyć swojego katalogu w strukturze FTP. Użytkownik ma jednak dostęp do wszystkich utworzonych globalnych katalogów wirtualnych;
  • Katalog domowy FTP skonfigurowany w Active Directory - Użytkownik FTP jest izolowany w swoim katalogu domowym określonym w ustawieniach konta Active Directory (właściwości FTPRoot i FTPDir).
Jest ważne. Jeśli globalne katalogi wirtualne są aktywne, wszyscy użytkownicy mogą uzyskać dostęp do wszystkich katalogów wirtualnych skonfigurowanych w katalogu głównym witryny FTP (z odpowiednimi uprawnieniami NTFS).

Wybierz żądany tryb izolacji (używam drugiej opcji do izolacji użytkownika ftp).

W przypadku wszelkich zmian ustawień witryny FTP w IIS zaleca się ponowne uruchomienie usługi Microsoft FTP (FTPSVC).

Skonfiguruj reguły zapory systemu Windows, aby uzyskać dostęp do serwera FTP

Po zainstalowaniu roli serwera FTP w ustawieniach Zapory systemu Windows wszystkie niezbędne reguły niezbędne do uzyskania dostępu użytkownika do FTP są aktywowane automatycznie.

Aby FTP North działał poprawnie w pasywnym trybie FTP, użytkownicy muszą połączyć się z zakresem portów RPC (1025-65535). Aby nie otwierać wszystkich tych portów na zewnętrznej zaporze, możesz ograniczyć zakres dynamicznych portów TCP używanych do przesyłania danych.

  1. Aby to zrobić, otwórz element w ustawieniach witryny FTP w IIS FTP Zapora ogniowa Wsparcie i w terenie Dane Channel Port Zasięg określ zakres portów, których chcesz używać do połączeń FTP. Na przykład - 50000-50100;
  2. Zapisz zmiany i uruchom ponownie IIS (iisreset);
  3. Otwórz panel sterowania i przejdź do Panel sterowania \ System i zabezpieczenia \ Zapora systemu Windows \ Dozwolone aplikacje;
  4. Upewnij się, że lista aplikacji, które mają dostęp przez zaporę, ma uprawnienia do Serwer FTP.

Następnie w Zaporze systemu Windows z ustawieniami Zaawansowanych zabezpieczeń sprawdź, czy włączone są następujące reguły:

  • Serwer FTP (FTP Traffic-In) - TCP, port 21;
  • FTP Server Passive (FTP Passive Traffic-In) - lokalny adres portu 1024-65535 (lub 50000-50100 jak w naszym przykładzie);
  • FTP Server Secure (FTP SSL Traffic-In) - (przy użyciu FTP z SSL) port 990;
  • Serwer FTP (FTP Traffic-Out) - port 20;
  • FTP Server Secure (FTP SSL Traffic-Out) - (przy użyciu FTP z SSL) port 989.

W związku z tym porty te należy otworzyć w bramie (zaporze), aby połączyć zewnętrznych użytkowników FTP.

Sprawdzanie połączenia z serwerem FTP z klienta Windows

Możesz sprawdzić dostępność portów na serwerze FTP za pomocą polecenia cmdlet Test-NetConnection:

Test-NetConnection -ComputerName yourftpservername -Port 21

Lub za pomocą polecenia ftp:

ftp twoja nazwa serwera serwera

Spróbuj połączyć się z witryną FTP za pomocą dowolnego klienta FTP lub bezpośrednio z Eksploratora (w pasku adresu podaj ftp: // twoja nazwa_serwera /.

Wprowadź nazwę użytkownika i hasło.

W rezultacie zobaczysz zawartość katalogu domowego z plikami użytkownika (który jest głównym katalogiem użytkownika witryny FTP). Jak widać, sesja użytkownika jest izolowana, a użytkownik widzi tylko swoje pliki na serwerze ftp.

Wskazówka. Jeśli chcesz korzystać z anonimowego dostępu (wszyscy anonimowi użytkownicy), każdy użytkownik może połączyć się z serwerem FTP, używając nazwy anonimowej lub gościa, a także adresu e-mail jako hasła. W przypadku anonimowego połączenia z witryną FTP sesja będzie ograniczona do katalogu LocalUser \ Public (oczywiście katalog publiczny należy wcześniej utworzyć).

Aby wyświetlić informacje o dostępie użytkownika do serwera FTP, możesz użyć dzienników FTP, które są domyślnie przechowywane w katalogu c: \ inetpub \ logs \ logfiles w formacie plików u_exYYMMDD.log.

Aby wyświetlić bieżące połączenia użytkowników z serwerem, możesz użyć liczników użytkowników IIS za pomocą programu PowerShell lub funkcji Bieżące sesje FTP w konsoli IIS. W tej konsoli można wyświetlić informacje o nazwie i adresie IP użytkownika FTP i w razie potrzeby rozłączyć sesję.

Sprawdziliśmy więc, jak skonfigurować witrynę FTP z izolacją użytkownika w oparciu o system Windows Server 2016/2012 R2. W trybie izolacji użytkownicy uwierzytelniają się na FTP na kontach lokalnych lub domenowych, po czym uzyskują dostęp do katalogu głównego odpowiadającego nazwie użytkownika.