Linux Ubuntu - Instalacja i konfiguracja serwera FTP w Ubuntu Server 22.04
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>