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  Linux - podstawy
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 vsftpd z szyfrowaniem SSL/TLS i wirtualnymi użytkownikami

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

Polecane wpisy
Kopie bezpieczeństwa w systemie Linux na przykładzie Borg Backup
Kopie bezpieczeństwa w systemie Linux na przykładzie Borg Backup

Kopie bezpieczeństwa w systemie Linux na przykładzie Borg Backup Tworzenie kopii bezpieczeństwa w systemie Linux to jedna z kluczowych czynności Czytaj dalej

Tworzenie baz danych, użytkowników i uprawnień w systemie Linux
Tworzenie baz danych, użytkowników i uprawnień w systemie Linux

Tworzenie baz danych, użytkowników i uprawnień w systemie Linux Linux to jeden z najpopularniejszych systemów operacyjnych używanych w serwerach, szczególnie Czytaj dalej