Serwer FTP z ograniczonym dostępem (vsftpd) – konfiguracja i zabezpieczenia
Linux

Serwer FTP z ograniczonym dostępem (vsftpd) – konfiguracja i zabezpieczenia

Serwer FTP z ograniczonym dostępem (vsftpd) – konfiguracja i zabezpieczenia

vsftpd (Very Secure FTP Daemon) to jeden z najczęściej używanych serwerów FTP w systemach Linux. Jego popularność wynika z wysokiego poziomu bezpieczeństwa oraz wydajności. W wielu przypadkach konieczne jest ograniczenie dostępu użytkowników do określonych katalogów, co zapobiega nieautoryzowanemu dostępowi do wrażliwych danych.

W tym artykule dowiesz się, jak:

  • Skonfigurować vsftpd z ograniczonym dostępem do katalogów
  • Zabezpieczyć serwer FTP przed nieautoryzowanym dostępem
  • Ustawić odpowiednie prawa dostępu dla użytkowników

1. Dlaczego warto ograniczyć dostęp do katalogów?

Zwiększone bezpieczeństwo – użytkownicy mają dostęp tylko do wybranych katalogów.
Izolacja danych – każdy użytkownik może pracować tylko w swoim obszarze.
Ochrona przed nieautoryzowanym dostępem – brak możliwości podglądu katalogów systemowych.
Kontrola uprawnień – precyzyjne zarządzanie dostępem i modyfikacjami plików.


2. Instalacja i konfiguracja vsftpd

a) Instalacja serwera FTP vsftpd

Najpierw instalujemy vsftpd na systemie Ubuntu/Debian:

sudo apt update
sudo apt install vsftpd -y

Po zakończeniu instalacji sprawdzamy status usługi:

sudo systemctl status vsftpd

Jeśli serwer FTP nie jest uruchomiony, włączamy go:

sudo systemctl start vsftpd
sudo systemctl enable vsftpd

3. Tworzenie użytkowników FTP i katalogów z ograniczonym dostępem

W celu lepszego zarządzania dostępem utworzymy dedykowaną grupę ftpusers, do której będą należeć wszyscy użytkownicy FTP.

sudo groupadd ftpusers

Dodajemy nowego użytkownika ftpuser1 i przypisujemy go do grupy:

sudo useradd -m -d /home/ftpusers/ftpuser1 -s /usr/sbin/nologin -G ftpusers ftpuser1

Ustawiamy hasło dla użytkownika:

sudo passwd ftpuser1

Tworzymy katalog FTP dla użytkownika:

sudo mkdir -p /home/ftpusers/ftpuser1/ftp

Nadajemy odpowiednie uprawnienia:

sudo chown -R root:root /home/ftpusers/ftpuser1
sudo chmod 755 /home/ftpusers/ftpuser1
sudo chown -R ftpuser1:ftpusers /home/ftpusers/ftpuser1/ftp

Dzięki tym ustawieniom użytkownik ftpuser1 nie będzie mógł wychodzić poza katalog /home/ftpusers/ftpuser1/ftp, ale nadal może przesyłać pliki do katalogu FTP.

Czytaj  Hardenowanie SSH w systemie Linux – wyłączanie root login, zmiana portu, logowanie kluczem
Serwer FTP z ograniczonym dostępem (vsftpd) – konfiguracja i zabezpieczenia
Serwer FTP z ograniczonym dostępem (vsftpd) – konfiguracja i zabezpieczenia

4. Konfiguracja vsftpd z ograniczeniem dostępu

Edytujemy główny plik konfiguracyjny vsftpd:

sudo nano /etc/vsftpd.conf

Dodajemy lub modyfikujemy następujące ustawienia:

a) Włączenie trybu lokalnego użytkownika

local_enable=YES
write_enable=YES

Dzięki temu lokalni użytkownicy będą mogli się logować i przesyłać pliki.

b) Ograniczenie dostępu do katalogu użytkownika (chroot)

chroot_local_user=YES
allow_writeable_chroot=YES

To kluczowe ustawienie zabezpieczające przed wyjściem użytkowników poza przypisany katalog domowy.

c) Utworzenie listy użytkowników FTP

Dodajemy sekcję, która ograniczy dostęp tylko dla wybranych użytkowników:

userlist_enable=YES
userlist_file=/etc/vsftpd.allowed_users
userlist_deny=NO

Teraz tworzymy plik /etc/vsftpd.allowed_users i dodajemy użytkowników FTP:

echo "ftpuser1" | sudo tee -a /etc/vsftpd.allowed_users

d) Ograniczenie dostępu do katalogów systemowych

Blokujemy dostęp do powłoki systemowej, zmieniając domyślną powłokę użytkownika:

sudo usermod -s /usr/sbin/nologin ftpuser1

Sprawdzamy, czy zmiana się powiodła:

cat /etc/passwd | grep ftpuser1

Powinno się pojawić:

ftpuser1:x:1001:1001::/home/ftpusers/ftpuser1:/usr/sbin/nologin

5. Dodatkowe zabezpieczenia

a) Ograniczenie liczby sesji FTP

Aby uniknąć nadmiernej liczby połączeń od jednego użytkownika, w pliku /etc/vsftpd.conf dodajemy:

max_clients=10
max_per_ip=3

b) Wymuszenie trybu pasywnego

Aby uniknąć problemów z firewallem, dodajemy:

pasv_enable=YES
pasv_min_port=40000
pasv_max_port=50000

c) Zablokowanie dostępu anonimowego

Domyślnie vsftpd pozwala na logowanie anonimowych użytkowników, co jest niebezpieczne. Aby to wyłączyć:

anonymous_enable=NO

d) Otworzenie portów w firewallu

Jeśli korzystamy z zapory ufw, musimy otworzyć port 21 oraz zakres dla trybu pasywnego:

sudo ufw allow 21/tcp
sudo ufw allow 40000:50000/tcp

6. Restart serwera FTP

Po dokonaniu zmian restartujemy vsftpd:

sudo systemctl restart vsftpd

Sprawdzamy status usługi:

sudo systemctl status vsftpd

7. Testowanie połączenia FTP

Możemy teraz przetestować połączenie z serwerem FTP za pomocą terminala lub klienta FTP (np. FileZilla).

Aby połączyć się przez terminal:

ftp adres_IP_serwera

Podajemy nazwę użytkownika i hasło. Jeśli konfiguracja jest poprawna, użytkownik powinien mieć dostęp tylko do swojego katalogu FTP.


Podsumowanie

Konfiguracja vsftpd z ograniczonym dostępem do katalogów pozwala na:
Bezpieczne udostępnianie plików – użytkownicy FTP nie mogą przeglądać katalogów systemowych.
Lepszą kontrolę nad danymi – każdy użytkownik ma własny, odseparowany katalog.
Proste zarządzanie dostępem – możliwość definiowania listy dozwolonych użytkowników.
Zabezpieczenie serwera – blokada powłoki systemowej i ograniczenie liczby sesji FTP.

Czytaj  Konfiguracja serwera FTP z SSL/TLS (FTPS) przy użyciu vsftpd

Dzięki tej konfiguracji vsftpd staje się bardziej bezpieczny, a dostęp do plików jest ściśle kontrolowany.

Polecane wpisy
1000 przydatnych poleceń Linux
1000 przydatnych poleceń Linux

Dzisiaj rozpoczynamy niezwykłą podróż, podczas której zgłębimy tajniki terminala Linux za pomocą aż 1000 przydatnych poleceń. Czytaj dalej

Wydanie nowych wersji dystrybucji Linux
Wydanie nowych wersji dystrybucji Linux

Wydanie nowych wersji dystrybucji Linux odbywa się regularnie i jest częstym zjawiskiem w społeczności linuksowej. Każda dystrybucja Linux ma swój Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.