Własny i bezpieczny serwer FTP - cz.2 - Linux
- Patryk Królikowski,
- 12.11.2007, godz. 15:19
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).