Własny i bezpieczny serwer FTP - cz.2 - Linux

Konfiguracja

Zanim uruchomimy serwer odpowiednio go skonfigurujmy. Plik konfiguracyjny dla ProFTPd to /etc/proftpd.conf i tam będziemy dokonywali wszelkich modyfikacji. Końcowy rezultat pracy widoczny jest w TABELI pod tekstem. Omówimy teraz najważniejsze parametry konfiguracyjne zacznając od ustawień podstawowych. Staramy się aby nasz serwer podawał o sobie jak najmniej informacji w momencie logowania:

ServerIdent off

Teraz też musimy podjąć decyzję i wybrać jeden z dwóch trybów, w którym będzie pracował serwer. Do dyspozycji jest albo tryb INETD lub STANDALONE. W trybie inetd demon ftp jest aktywowany tylko wówczas, jeżeli zostanie o to poproszony tj. jeżeli ktoś będzie próbował połączyć się z serwerem FTP. Ma on dwie podstawowe zalety: wszelkie zmiany w konfiguracji nie wymagają ręcznego restartu usługi (aplikowane są w momencie, kiedy nawiązywane jest nowe połączenie); oszczędność zasobów (przydatne tylko wtedy gdy nasza maszyna przeznaczona jest do innych zadań, a serwer FTP stanowi tylko dodatek). Do wad należy zaliczyć przede wszystkim zubożenie możliwości konfiguracji serwera. W naszym przypadku maszyna będzie dedykowanym ftpem zatem pozostajemy przy trybie STANDALONE, gdzie demon uruchomiony jest cały czas (musimy się przy tym liczyć z każdorazowym restartem usługi w przypadku wprowadzenia zmian w konfiguracji):

ServerType standalone

Informujemy też serwer, że poniższa konfiguracja jest konfiguracją domyślną. Ma to dodatkowe znaczenie w przypadku serwerów wirtualnych, o których nie będziemy teraz wspominać:

DefaultServer on

Następnie ograniczamy obszar działania użytkowników na serwerze FTP do katalogu /home/ftp-dir (chroot w wydaniu ProFTPd):

DefaultRoot /home/ftp-dir

Jako model uwierzytelniania użytkowników możemy pozostawić PAM-a (Pluggable Authentication Module) wskazujące też kolejność odpytywania modułów PAM:

AuthPAMConfig proftpd

AuthOrder mod_auth_pam.c* mod_auth_unix.c

oraz wyłączyć rozwiązywania nazw logowania oraz adresów IP klientów (większa wydajność):

IdentLookups off

UseReverseDNS off

Dalej maksymalna liczba dozwolonych wystąpień demona ftp (ochrona przed całkowitym "zamuleniem" serwera):

MaxInstances 10

maksymalny czas działania demona w trybie oczekiwania na komendy (w sekundach):

TimeoutIdle 240 (4 minuty)

przyda się także:

TimeoutNoTransfer 240

Dzięki temu parametrowi ograniczymy czas utrzymywania otwartego połączenia podczas, gdy do serwera przystały być wysyłane polecenia lub przekazywane/pobierane dane przez klienta. Na wszelki wypadek nie pozwalamy na zalogowanie się do serwera ROOT-a:

RootLogin off

oraz ograniczamy liczbę prób logowania do 3:

MaxLoginAttempts 3

Przyda się także ograniczenie liczby sesji nawiązywanych z tego samego adresu IP:

MaxClientsPerHost 2

Bez zmian pozostawiamy port na którym nasłuchuje demon:

Port 21

Określamy z uprawnieniami jakiego użytkownika i grupy będzie działał demon protfpd bezpośrednio po podpięciu się pod port TCP 21:

User nobody

Group nobody

Nie ma też potrzeby żeby zalogowani użytkownicy "widzieli" pliki "." lub "..":

ListOptions "-A"

W sekcji "#WZNAWIANIE" pozwalamy aby w razie przerwanego połączenia można było wznowić pobieranie lub umieszczanie danych.

Dalej, w sekcji "#LOGOWANIE" określamy parametry logowania zdarzeń (ustawienia domyślne).

Sekcja "#Ograniczenie logowania do serwera" wskazuje, z których kont użytkowników możliwe będzie zalogowanie się do serwera. Użytkownicy serwera webowego Apache dostrzegą, że ProFTPD oferuje podobną do niego logikę i składnię budowania reguł. Rzeczywiście zasady są bardzo zbliżone. Sekcja <Global> określa ustawienia wspólne dla całego serwera FTP.

Wreszcie przechodzimy od sekcji "#UPRAWNIENIA", gdzie w każdej z podsekcji określamy to, co konkretnie będą mogli robić zalogowani użytkownicy w poszczególnych katalogach. Do katalogu głównego "/home/ftp-dir" mogą oni tylko zaglądać oraz przechodzić do innych katalogów (Zestaw komend DIRS).

Katalog "/home/ftp-dir/up", który przeznaczyliśmy jako miejsce wrzucania plików podlega innym ograniczeniom. Tylko użytkownicy "eftepowicz" oraz "guru" mogą przeglądać jego zawartość oraz umieszczać dane (komendy DIRS STOR STOU). Prawo usuwania plików i katalogów przysługuje tylko użytkownikowi guru (komendy DELE RMD). Z kolei do katalogu "/home/ftp-dir/down" pisać oraz zaglądać może tylko i wyłącznie użytkownik "guru". Wszyscy inni mogą jedynie pobierać wskazane wcześniej pliki (jest to tzw. ślepy katalog - brak możliwości wylistowania zawartości - komenda RETR).


TOP 200