Linux Ubuntu - Instalacja i konfiguracja serwera FTP w Ubuntu Server 22.04

Z Systemy operacyjne i sieci komputerowe
Przejdź do nawigacji Przejdź do wyszukiwania

Poniżej przedstawiono instalację oraz konfigurację serwera vsftpd w systemie Ubuntu Server 22.04.

Krok 1: Aktualizacja systemu Ubuntu Server 22.04

Przed rozpoczęciem instalacji serwera FTP upewnij się, że system Ubuntu Server 22.04 jest aktualny. Możesz to zrobić, wpisując następującą komendę w terminalu:

sudo apt update && sudo apt upgrade -y

Krok 2: Instalacja serwera FTP

Następnym krokiem jest instalacja serwera FTP. Zainstalujemy serwer FTP vsftpd (Very Secure FTP Daemon), który jest jednym z najczęściej używanych serwerów FTP.

sudo apt install vsftpd -y

Krok 3: Konfiguracja serwera FTP

Po zainstalowaniu serwera FTP należy skonfigurować odpowiednie ustawienia. Aby to zrobić, otwórz plik konfiguracyjny serwera FTP vsftpdconf, używając edytora tekstu np. Nano.

sudo nano /etc/vsftpd.conf

Ogólne ustawienia

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES

listen - ustawia czy serwer ma nasłuchiwać na połączenia przychodzące. Domyślnie ustawione na YES.

anonymous_enable - określa, czy serwer FTP ma umożliwić logowanie anonimowe. W tym przypadku jest wyłączone.

local_enable - określa, czy użytkownicy lokalni mają mieć dostęp do serwera. W tym przypadku jest włączone.

write_enable - określa, czy użytkownicy mają mieć możliwość zapisywania plików na serwerze. W tym przypadku jest włączone.


Ustawienia bezpieczeństwa

chroot_local_user=YES
allow_writeable_chroot=YES

chroot_local_user - ustawia, czy użytkownik powinien być "schowany" w swoim katalogu domowym. Domyślnie ustawione na YES. Nie widzi wtedy całej struktury katalogów.

allow_writeable_chroot - ustawia, czy użytkownik ma mieć możliwość zapisywania plików, jeśli jest w trybie "schowanym". Domyślnie ustawione na NO.

Ustawienia połączenia

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

pasv_enable - ustawia, czy serwer ma umożliwiać pasywne połączenia. Domyślnie ustawione na YES.

pasv_min_port i pasv_max_port - ustawiają zakres portów, które będą używane do nawiązywania pasywnych połączeń.

Ustawienia logowania

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
log_ftp_protocol=YES

xferlog_enable - ustawia, czy serwer ma logować transfer plików. Domyślnie ustawione na YES.

xferlog_file - określa ścieżkę do pliku z logami transferu plików.

xferlog_std_format - ustawia format zapisu logów transferu plików.

log_ftp_protocol - ustawia, czy serwer ma logować protokół FTP. Domyślnie ustawione na NO.

Konfiguracja SSL

ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil

ssl_enable - ustawia, czy serwer ma obsługiwać połączenia SSL/TLS. Domyślnie ustawione na NO.

allow_anon_ssl - określa, czy serwer ma umożliwiać połączenia SSL/TLS dla anonimowych użytkowników. W tym przypadku jest wyłączone.

force_local_data_ssl i force_local_logins_ssl - ustawiają, czy dane i logowanie mają być zawsze szyfrowane.

ssl_tlsv1, ssl_sslv2 i ssl_sslv3 - ustawiają, które wersje protokołu SSL/TLS mają być obsługiwane przez serwer. W tym przypadku ustawione na TLSv1 i wyłączone dla SSLv2 i SSLv3.

rsa_cert_file - określa ścieżkę do certyfikatu SSL.

Anonimowi użytkownicy

#  Włączenie dostępu dla użytkowników anonimowych
anonymous_enable=YES
# Katalog główny dla użytkowników anonimowych
anon_root=/srv/ftp
# Włączenie możliwości wgrywania plików przez anonimowych użytkowników
anon_upload_enable=YES
#  Włączenie możliwości tworzenia katalogów przez anonimowych użytkowników
anon_mkdir_write_enable=YES
# Wyłączenie innych operacji zapisu przez anonimowych użytkowników
anon_other_write_enable=NO 
# Restrict anonymous users to their home directory
chroot_local_user=YES
chroot_list_enable=NO
# Maksymalna prędkość transferu dla użytkowników anonimowych
anon_max_rate=204800  

anonymous_enable=YES- Ta opcja umożliwia logowanie się na serwerze FTP przez użytkowników anonimowych.

anon_root=/srv/ftp- Ta opcja wskazuje katalog główny dla użytkowników anonimowych. W tym przypadku, użytkownicy anonimowi będą mieli dostęp tylko do katalogu /srv/ftp.

anon_upload_enable=YES- Ta opcja umożliwia użytkownikom anonimowym przesyłanie plików na serwer FTP.

anon_mkdir_write_enable=YES- Ta opcja umożliwia użytkownikom anonimowym tworzenie nowych katalogów na serwerze FTP.

chroot_local_user=YES- Ta opcja powoduje, że użytkownicy anonimowi zostaną zmuszeni do korzystania tylko z katalogu domowego, który jest zdefiniowany dla użytkowników anonimowych w anon_root. Dzięki temu użytkownicy anonimowi nie będą mieli dostępu do innych katalogów na serwerze.

chroot_list_enable=NO- Ta opcja zapobiega korzystaniu z pliku chroot_list, który zawierałby listę użytkowników, którzy mieliby mieć dostęp do katalogów poza anon_root. Ustawienie tej opcji na "NO" oznacza, że tylko użytkownicy anonimowi zostaną objęci ograniczeniem do katalogu anon_root.


Użytkownicy lokalni

# Ustawienia dla użytkowników lokalnych
local_enable=YES               # Włącza dostęp dla użytkowników lokalnych
local_umask=022                # Ustawia maskę umask dla plików utworzonych przez użytkowników
chroot_local_user=YES          # Użytkownicy lokalni są zamknięci w swoim katalogu domowym
allow_writeable_chroot=YES     # Pozwala na zapis do katalogów zamkniętych w chroot
passwd_chroot_enable=YES       # Hasła użytkowników są przechowywane w katalogu /etc/shadow

local_enable- Włącza dostęp dla użytkowników lokalnych. Domyślnie jest to ustawione na YES.

local_umask- Ustawia maskę umask dla plików utworzonych przez użytkowników. Domyślnie jest to ustawione na 022, czyli oznacza, że pliki utworzone przez użytkowników będą miały domyślną wartość uprawnień (644 dla plików, 755 dla katalogów).

chroot_local_user- Użytkownicy lokalni są zamknięci w swoim katalogu domowym. Domyślnie jest to ustawione na YES.

allow_writeable_chroot- Pozwala na zapis do katalogów zamkniętych w chroot. Domyślnie jest to ustawione na NO.

passwd_chroot_enable- Hasła użytkowników są przechowywane w katalogu /etc/shadow. Domyślnie jest to ustawione na NO.

Krok 4: Restart serwera FTP

Po dokonaniu zmian w pliku konfiguracyjnym należy zrestartować serwer FTP, aby wprowadzone zmiany zostały uwzględnione. Możesz to zrobić, wpisując następującą komendę:

sudo systemctl restart vsftpd

Krok 6: Logowanie się na serwer FTP

Teraz możesz zalogować się na serwer FTP z innego komputera. Aby to zrobić, użyj klienta FTP, takiego jak FileZilla, i podaj adres IP serwera FTP oraz dane logowania (nazwa użytkownika i hasło). Można również zalogować się z terminala lub cmd poleceniem ftp. Przykładowo:

$ ftp 192.168.1.100
Connected to 192.168.1.100.
220 (vsFTPd 3.0.3)
Name (192.168.1.100:username): jankowalski
331 Please specify the password.
Password: **********
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>