MANIEK Logo Mój Asystent Nauki Informatyki i Egzaminów Klasyfikacyjnych
Logowanie
ASSO / Linux Server / vsftpd

23 — Instalacja serwera ftp na przykładzie vsftpd w dystrybucji Ubuntu

Czas: 225 min

Cele i treść

Cele:
  • Uczeń wyjaśnia przeznaczenie usługi lub narzędzia w systemie Linux.
  • Uczeń zna najważniejsze pliki i polecenia administracyjne.
  • Uczeń wykonuje konfigurację w terminalu lub narzędziu graficznym.
  • Uczeń testuje działanie usługi i dokumentuje wynik.

Lekcja obejmuje temat: Instalacja serwera ftp na przykładzie vsftpd w dystrybucji Ubuntu.

Główne części: Zasada działania usługi FTP (File Transfer Protocol), Konta użytkowników FTP:Konta lokalne systemu Linux, Instalowanie serwera FTP (vsftpd - Very Secure FTP Daemon), Szczegółowy opis ćwiczeń praktycznych.

Notatka:

Import przygotowany z rozkładu klasy 2. Po imporcie można dopisać własne screeny, załączniki, zadania i kryteria oceniania.

#FTP#vsftpd

Punkty lekcji

1 - Zasada działania usługi FTP (File Transfer Protocol)komenda

Cel i zastosowanie: FTP to stary, ale wciąż używany protokół do przesyłania plików między komputerem klienta a serwerem. Typowe zastosowania to upload plików na serwer WWW, udostępnianie dużych plików w sieci lokalnej.

Tryby połączenia: FTP ma niestandardowy sposób działania, który sprawia problemy przy nowoczesnych zaporach sieciowych (NAT).

Port aktywny (Active): Klient otwiera port do nasłuchu, a serwer FTP inicjuje połączenie danych z klienta (z portu 20). Często blokowany przez firewalle klienta.

Port pasywny (Passive - PASV): Klient inicjuje oba połączenia (sterujące i danych) do serwera. Serwer otwiera losowy port wysoki (>1023) dla danych i informuje o nim klienta. Wymaga specjalnej konfiguracji zapory na serwerze.

Kanały komunikacji:

Kanał sterujący (Command): Port TCP 21. Służy do przesyłania poleceń (np. LIST, RETR, STOR) i odpowiedzi.

Kanał danych (Data): Osobne połączenie TCP (port 20 w trybie aktywnym, losowy port w trybie pasywnym). Służy wyłącznie do przesyłania zawartości plików i listy katalogów.

Bezpieczeństwo: Standardowy FTP nie szyfruje ani haseł, ani przesyłanych danych. Do bezpiecznego transferu używa się FTPS (FTP over SSL/TLS) lub SFTP (SSH File Transfer Protocol, który jest częścią SSH i nie jest związany z FTP).

2 - Konta użytkowników FTP:Konta lokalne systemu Linuxopis

Zasada: Użytkownik loguje się swoją standardową nazwą użytkownika i hasłem systemowym.

Dostęp: Po zalogowaniu użytkownik znajduje się w swoim katalogu domowym (/home/username) i ma dostęp do plików zgodnie z systemowymi uprawnieniami Linux.

Bezpieczeństwo: Potencjalnie niebezpieczne, ponieważ ujawnia dostęp do systemu plików. Wymaga starannego zarządzania uprawnieniami użytkowników.

Konto anonimowe (Anonymous):

Zasada: Specjalne konto, które umożliwia dostęp do serwera bez posiadania konta systemowego. Użytkownik loguje się jako anonymous lub ftp, a jako hasło podaje swój adres email (często jest to tylko formalność).

Dostęp: Po zalogowaniu użytkownik jest "uwięziony" w wydzielonym katalogu (np. /srv/ftp lub /var/ftp/pub), który zawiera pliki do publicznego pobrania. Nie ma możliwości przejścia wyżej w strukturze katalogów (tzw. chroot jail).

Zastosowanie: Publiczne udostępnianie plików do downloadu, mirrorowanie dystrybucji Linuxa, oprogramowania.

3 - Instalowanie serwera FTP (vsftpd - Very Secure FTP Daemon)komenda

Dlaczego vsftpd? Jest to lekki, stabilny i bezpieczny serwer FTP, który jest domyślnym wyborem w wielu dystrybucjach Linuxa. Jego nazwa podkreśla nacisk na bezpieczeństwo.

Proces instalacji: Instalacja z repozytoriów dystrybucji za pomocą menedżera pakietów apt.

4. Uruchomienie serwera FTP:

Demon vsftpd: Główny proces serwera. Konfigurowany jest przez plik /etc/vsftpd.conf.

Zarządzanie usługą: Standardowo za pomocą systemctl (start, stop, restart, status, enable).

Konfiguracja zapory: Należy pamiętać o zezwoleniu na ruch FTP w zaporze ufw. FTP wymaga otwarcia portu 21 oraz zakresu portów pasywnych.

4 - Szczegółowy opis ćwiczeń praktycznychopis

Do uzupełnienia.

5 - Ćwiczenie 1: Instalacja serwera vsftpd.zadanie

Cel: Pozyskanie i zainstalowanie oprogramowania serwera.

Kroki:

Otwórz terminal.

Zaktualizuj listę pakietów i zainstaluj vsftpd:

sudo apt update
sudo apt install vsftpd

Usługa powinna zostać automatycznie uruchomiona po instalacji. Sprawdź to:

sudo systemctl status vsftpd
6 - Ćwiczenie 2: Podstawowa konfiguracja vsftpd.zadanie

Cel: Dostosowanie serwera do pracy z użytkownikami lokalnymi i anonimowymi.

Kroki:

Utwórz kopię zapasową oryginalnego pliku konfiguracyjnego:

sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.backup

Otwórz plik konfiguracyjny do edycji:

sudo nano /etc/vsftpd.conf

Znajdź i zmień następujące linie (odkomentuj je usuwając # lub dodaj na końcu pliku):

# Zezwól na logowanie lokalnym użytkownikom systemowym

local_enable=YES

# Zezwól lokalnym użytkownikom na zapis (upload, usuwanie, tworzenie katalogów)

write_enable=YES

# Włącz tryb pasywny (PASV) - NIEZBĘDNY za większością współczesnych NAT/firewalli

pasv_enable=YES

# Określ zewnętrzny adres IP twojego serwera (jeśli masz NAT, podaj jego WAN IP)

# pasv_address=XXX.XXX.XXX.XXX

# Określ zakres portów pasywnych dla połączeń danych (ułatwi konfigurację zapory)

pasv_min_port=40000

pasv_max_port=50000

# Włącz logowanie anonimowe

anonymous_enable=YES

# Określ katalog root dla użytkowników anonimowych

anon_root=/srv/ftp

# "Uwięź" (chroot) lokalnych użytkowników w ich katalogach domowych

# Zapobiega to przeglądaniu całego systemu plików przez użytkowników FTP

chroot_local_user=YES

allow_writeable_chroot=YES

# Włącz logging

xferlog_enable=YES

Zapisz plik (Ctrl+O, Enter) i zamknij edytor (Ctrl+X).

7 - Ćwiczenie 3: Konfiguracja dostępu anonimowego.zadanie

Cel: Przygotowanie środowiska dla użytkowników anonimowych.

Kroki: Utwórz katalog root dla użytkowników anonimowych:

sudo mkdir -p /srv/ftp

Ustaw odpowiedniego właściciela i uprawnienia (anonimowy użytkownik mapsuje się na systemowego użytkownika ftp):

sudo chown ftp:ftp /srv/ftp
sudo chmod 755 /srv/ftp # read+execute dla wszystkich, write tylko dla owner

Utwórz przykładowy plik w katalogu anonimowym, który będzie widoczny po zalogowaniu:

echo "Witaj na anonimowym serwerze FTP!" | sudo tee /srv/ftp/witaj.txt

8 - Ćwiczenie 4: Konfiguracja zapory sieciowej dla FTP.zadanie

Cel: Zezwolenie na ruch FTP do serwera.

Kroki:

Zezwól na port sterowania FTP (21):

sudo ufw allow 21/tcp

Zezwól na zakres portów pasywnych zdefiniowany w konfiguracji (40000:50000):

sudo ufw allow 40000:50000/tcp

Sprawdź dodane reguły:

sudo ufw status
9 - Ćwiczenie 5: Restart usługi i testowanie.zadanie

Cel: Uruchomienie serwera z nową konfiguracją i przetestowanie działania.

Kroki:

Restartuj usługę vsftpd, aby zastosować zmiany w konfiguracji:

sudo systemctl restart vsftpd
sudo systemctl status vsftpd # Upewnij się, że restart się powiódł

Przetestuj dostęp anonimowy:

Z terminala na serwerze: Użyj klienta tekstowego ftp do połączenia się z localhost.

ftp localhost

Podaj nazwę użytkownika: anonymous

Podaj hasło: (dowolny adres email, np. [email protected])

Wykonaj polecenia: ls (lista plików), get witaj.txt (pobierz plik).

bye (wyjście).

Z innego komputera w sieci: Użyj menedżera plików (Nautilus, Konqueror, Windows Explorer) lub klienta FTP (FileZilla). Wpisz adres ftp://[IP_SERWERA]. Powinien pojawić się plik witaj.txt.

Przetestuj dostęp lokalnego użytkownika:

Stwórz testowego użytkownika:

sudo adduser testuser

Zaloguj się w kliencie FTP (ftp [IP_SERWERA]) używając testuser i jego hasła.

Sprawdź, czy możesz uploadować plik (put [nazwa_pliku]). Powinien trafić do katalogu domowego /home/testuser użytkownika.

Sprawdź, czy nie możesz wyjść poza katalog domowy (polecenie cd / powinno failować) – efekt działania chroot_local_user=YES.

Powiązane arkusze i pytania

Arkusze

Brak powiązanych arkuszy.

Pytania

Brak powiązanych pytań.