Wstęp
Dużą zaletą ProFTPD jest jego prostota. Plik konfiguracyjny demona do złudzenia
przypomina ten od Apache. Jego zrozumienie nie powinno sprawiać trudności.
Instalacja
Zanim przystąpisz do instalacji powinieneś zdecydować w jakim trybie ma pracować usługa.
Jako demon, czy ma być uruchamiana poprzez superserwer inetd. Tryb inetd polega na tym, że proces
proftpd zostanie uruchomiony dopiero po odebraniu przez inetd żądania o tę
usługę. Natomiast w trybie daemon ProFTPD jest uruchomiony cały czas i pracuje
niezależnie od inetd. Tak więc, jeżeli Twój komputer, który przeznaczysz na serwer
nie jest zbyt szybki, powinieneś wybrać ProFTPD uruchamianego poprzez inetd.
Dystrybucja udostępnia obie te możliwości. Pakiet proftpd-inetd
zapewnia uruchamianie poprzez inetd, natomiast po zainstalowaniu usługi z pakietu
proftpd-standalone uruchamiana ona będzie w trybie daemon.
W opisie posłużymy się wersją daemon. Instalujemy pakiet
proftpd-standalone
Podstawowa konfiguracja demona
Jak już wspomniałem we wstępie, ProFTPD
jest jednym z prostszych w konfiguracji programów serwerowych. Wszystkie pliki
potrzebne do jego skonfigurowania znajdują się w katalogu
/etc/ftpd.
# ls -1 /etc/ftpd
ftpusers
proftpd.conf |
W pliku ftpusers znajduje się lista użytkowników, którym odebrana została
możliwość logowania się do serwera ftp. Poszczególne pozycje z tej listy zakończone są
znakiem nowej linii, tak więc każda pozycja jest rozmieszczona jedna pod drugą. Natomiast
plik proftpd.conf zawiera właściwą konfigurację usługi.
ServerName "ProFTPD"
ServerIdent off
ServerType standalone
DeferWelcome off
DefaultServer on
DefaultRoot ~ |
-
ServerName określa nazwę serwera wyświetlaną łączącym się z nim użytkownikom.
-
ServerIdent pozwala na wyświetlenie wiadomości powitalnej
podczas połączenia, np. zawartości pliku .message.
Domyślnie wyłączona.
-
ServerType ustawia tryb pracy demona ProFTPD
-
DeferWelcome Nie pokazuje wiadomości powitalnej dopóki
użytkownik się nie zautoryzuje.
-
DefaultServer Określamy konfigurację jako domyślną
-
DefaultRoot Wyznaczamy nadrzędny dla każdego użytkownika katalog spoza
którego nie będzie mógł wyjść. W listingu powyżej będzie to katalog domowy.
Poniżej znajduje się szereg zakomentowanych opcji pozwalających na konfigurację połączeń
bezpieczną metodą przy użyciu SSL. Jeżeli jesteś zainteresowany ich użyciem powinieneś
zapoznać się z dokumentacją on line serwera
ProFTPD. Przechodzimy teraz do dalszej konfiguracji.
Port 21
Umask 022
User ftp
Group ftp
AuthPAMAuthoritative on |
-
Port Definiujemy tutaj port na którym serwer będzie oczekiwał
nadchodzących połączeń
-
Umask Tryb umask 022 jest typowym standardem dla ogolnie dostępnych
plików i katalogów
-
User Konto użytkownika na którego uprawnieniach pracuje usługa
-
Group Grupa do której należy konto użytkownika usługi
-
AuthPAMAuthoritative Dajemy możliwość autoryzacji użytkowników poprzez
moduł PAM jeśli jest to możliwe.
Przedstawione tutaj wartości poszczególnych opcji są domyślnie ustawiane w pliku konfiguracyjnym
w trakcie instalacji pakietu. Jak najbardziej możesz z nich korzystać. Na pewno nie
powinieneś zmieniać takich ustawień jak użytkownik czy grupa, port oraz sposób autoryzacji.
Konfiguracja dostępu
<Directory />
AllowOverwrite on
</Directory> |
Zezwalamy na nadpisywanie plików w obrębie katalogu do którego użytkownik się zaloguje. Poniżej
w pliku znajduje się przykładowa konfiguracja dla użytkownika anonimowego. Sekcja mieści się
wewnątrz znacznika <Anonymous ~ftp></Anonymous>.
Poniższy wykaz omawia najczęściej wykorzystywane dyrektywy w tej sekcji.
User ftp
Group ftp
AnonRequirePassword off
RequireValidShell off |
-
User - konto użytkownika którego prawa będzie uzyskiwała osoba
logująca się do serwera
-
Group - grupa do której należy powyższe konto.
-
AnonRequirePassword - w powyższym przykładzie wyłączona.
Umożliwia użytkownikom anonimowym logowanie się bez hasła.
-
RequireValidShell - opcja ta powoduje, że ProFTPD nie sprawdza
czy dany użytkownik, który się loguje posiada przypisaną w
/etc/shells powłokę.
UserAlias anonymous ftp
MaxClients 10
DisplayLogin welcome.msg
DisplayFirstChdir .message
AllowStoreRestart on |
-
UserAlias - przyporządkowuje nazwę użytkownika do systemowego
konta. W przykładzie anonymous został przypisany kontu ftp.
-
MaxClients - ilość jednoczesnych połączeń anonimowych które
będą realizowane przez serwer.
-
DisplayLogin - określamy plik którego zawartość będzie
wyświetlana po starcie.
-
DisplayFirstChdir - plik którego zawartość będzie wyświetlana
po pierwszym wejściu do katalogu.
-
AllowStoreRestart - pozwala klientom wznawiać upload.
<Limit WRITE>
DenyAll
</Limit> |
Zabraniamy klientom pisania do katalogu
/home/services/ftp/pub.
<Directory /home/services/ftp/pub/Incoming>
<Limit READ>
DenyAll
</Limit>
<Limit WRITE>
AllowAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory> |
Katalogowi Incoming zostały precyzyjnie określone prawa dostępu. W
powyższym przykładzie każdy ma dostęp do zapisu w tym katalogu natomiast nikt nie posiada
prawa do jego odczytywania.
Zakończenie
Dostęp do serwera ftp możemy ograniczać na kilka sposobów. Można limitować ilość jednoczesnych
połączeń, stworzyć listę adresów IP, które będą miały prawo do zapisu czy odczytu określonych
katalogów.
Na tym zakończymy podstawową konfigurację serwera ProFTPD. Więcej informacji na jego temat
znajdziesz na stronach z jego
dokumentacją.
|