IP-MASQUERADE INDEX STRONA GŁÓWNA
KONFIGURACJA SERWERA FTP (PROFTPD)

 

1) Instalacja serwera
2) Uruchamianie i zatrzymywanie serwera
3) Konfiguracja serwera

 

1) Instalacja serwera

Najnowsza wersja serwera ProFTPd znajduje się pod adresem : ftp://ftp.proftpd.org/distrib/

Mamy tu możliwość ściągnięcia źródeł lub gotowych paczek zawierających serwer ftp.
Należy pamiętać, że kompilacja źródeł daje większe możliwości dostosowania serwera do naszych potrzeb.

W katalogu, który powstanie po rozpakowaniu źródeł programu wydajemy polecenie :

./configure [opcje]

Najważniejsze opcje konfiguracyjne to :

--prefix=/ścieżka - miejsce, w które zostanie zainstalowny nasz serwer ftp

--with-modules=mod_moduł1:mod_moduł2:... - dodanie modułów :

     mod_pam - obsługa PAM (umożliwia obsługę użytkowników nie tylko jako anonymous)

     mod_ratio - włączenie ratio

     mod_readme - pozwala na obsługę plków README itp.

     mod_ldap - obsługa LDAP

     mod_sql - obsługa Sql

--sysconfdir=/ścieżka - położenie pliku konfiguracyjnego (standardowo /usr/local/etc )

--localstatedir=/ścieżka - położenie plików dziennika zdarzeń (standardowo /usr/local/var)

--enable-shadow - umożliwia korzystanie z pliku shadow zawierającego hasła użytkowników

 

Przykładowo polecenie to może wyglądać następująco :

./configure --prefix=/usr/local/proftpd --enable-shadow --with-modules=mod_pam

Kompilację i instalację dokonujemy poprzez polecenia :

make
make install

 

Jeśli serwer został skompilowany z modułem pam, należy skopiować plik /contrib/ftpd.pamd na /etc/pam.d/ftp

Następnym krokiem jest stworzenie katalogu ftp :

mkdir /home/ftp

i nadanie mu odpowiednich praw :

chmod 755 /home/ftp

 

2) Uruchamianie i zatrzymywanie serwera

Serwer ftp możemy uruchamiać na dwa sposoby :

  • jako standalone - uruchamiany podczas startu systemu i działający w nim przez cały czas
  • jako intetd - uruchamiany przez specjalnego demona (inetd lub xinetd) tylko do obsłużenia rządania

 

Jeśli chcemy aby serwer uruchamiał się jako standalone należy na końcu pliku /etc/rc.d/rc.local umieścić linię ze ścieżką do naszego serwera : /usr/local/sbin/proftpd.

Należy pamietać o wstawieniu znaku # przed linią odpowiadającą za uruchamianie serwera w pliku inetd.conf lub wstawić dyrektywę disable = yes w pliku z konfiguracją dla xinetd.

 

Aby serwer uruchamiany był tylko do obsługi przychodzących rządań (inetd) należy dodać odpowiednie wpisy do pliku superserwera (inetd lub xinetd).

/etc/inetd.conf

ftp stream tcp nowait root /usr/sbin/proftpd proftpd

 

/etc/xinetd.conf

service ftp
{
flags = REUSE
socket_type = stream
instances = 50
wait = no
user = root
server = /usr/sbin/proftpd
log_on_success = HOST PID
log_on_failure = HOST RECORD
}

 

3) Konfiguracja serwera

Konfiguracja serwera ProFTPd polega podbnie jak konfiguracja APACHA na ustawianiu odpowiednich dyrektyw.

Plikie konfiguracyjny serwera jest plik : /usr/local/etc/proftpd.conf

 

Najważniesze dyrektywy konfiguracyjne to :

 

ServerType

typ serwera : standalone , inetd

 

ServerAdmin adres_administratora

Zawiera adres e-mailowy administratora.

 

ServerName "nazwa serwera"

Wyświetlana podczas logowania nazwa serwer.

 

User nazwa_użytkownika

Określa właściciela uruchomionego serwera.

 

Group nazwa_grupy

Określa grupę właściciela uruchomionego serwera.

 

MaxClients liczba_połączeń

Określa maksymalną liczbę obsługiwanych jednocześnie połączeń ftp.

 

TransferLog /ścieżka/plik

Okeśla miejsce zapisywania logów serwera dotyczących transferu plików.
Domyślnie : /var/log/xferlog

 

DefaultRoot /ścieżka/katalog

Określa katalog główny serwera.
Domyślnie : /

 

AuthUserFile /ścieżka/plik

Określa alternatywny plik passwd o identycznym formacie jak systemowy plik /etc/passwd.
Dyrektywa ta umożliwia stworzenie osobnych kont ftp dla użytkowników nie posiadających konta na serwerze.
Jeśli dyrektywa została podana to plik będzie używany do identyfikacji użytkowników.

 

Umask maska

Ustawia maskę z uprawnieniami dla nowo tworzonych plików i katalogów.
Wszystkie argumenty tej dyrektywy muszą być podane jako liczba ósemkowa, w formacie 0xxx. Opcjonalnie drugi argument może podawć maskę, która będzie używana w czasie tworzenia katalogów. Gdy nie jest on podany to katalogi będą tworzone według maski podanej dla plików.

Ósemkowy zapis praw dostępu :

Wartość ósemkowa Znaczenie
0000 Nikt nie ma żadnych praw
0001 Prawo właściciela do wykonywania pliku
0002 Prawo właściciela do modyfikacji pliku
0004 Prawo właściciela do czytania pliku
0010 Prawo członków grupy do wykonywania pliku
0020 Prawo członków grupy do modyfikacji pliku
0040 Prawo członków grupy do czytania pliku
0100 Prawo innych użytkowników do wykonywania pliku
0200 Prawo innych użytkowników do modyfikacji pliku
0400 Prawo innych użytkowników do czytania pliku
1000 Ustawienie sticky bitu 
2000 Ustawienie bitu SGID
4000 Ustawienie bitu SUID

 

<Anonymous root-directory> </Anonymous>

Blok konfiguracyjny używany do udostępniania serwera ftp użytkownikom nie posiadającym konta na serwerze - tzw. użytkownikom anonimowym.
Parametr root-directory określa katalog główny poza który nie wolno wyjść danym użytkownikom.

 

<Directory /ścieżka/katalog> </Directory>

Blok konfiguracyjny umożliwiający zmianę ustawień danego katalogu.

 

<Limit komenda grupa_komend> </Limit>

Blok konfiguracyjny używany do określania szczegółowych restrykcji dotyczących wykonywania komend ftp wysyłanych przez klienta.

Komendy :

CWD , CDUP - zmiana katalogu
MKD  - tworzenie nowego katalogu
RNFR , RNTO - zmiena położenia pliku między katalogami
DELE  - kasowanie pliku
RMD - kasowanie katalogu
RETR - transfer pliku z serwera do klienta
STOR - transfer pliku od klienta do serwera

Grupa komendy :

READ - wszystkie komendy ftp wiążące się z czytaniem pliku, np.: RETR, STAT
WRITE - wszystkie komendy ftp wiążące się z zapisem, tworzeniem, kasowaniem, np.: MKD, RMD
DIRS - wszystkie komendy ftp wiążące się z wyświetleniem zawartości katalogu, np.: LIST, NLST
ALL - wszystkie komendy ftp

 

Allow from [all , network , host , domain]

Dyrektywa ta jest używana wewnątrz bloku <Limit> i określa dla kogo będą udostępnione odpowiednie komendy.
Domyślnie: allow all

 

Deny from [all , network , host , domain]

Dyrektywa ta jest używana wewnątrz bloku <Limit> i określa dla kogo będą zabronione odpowiednie komendy.

 

AllowAll

Dyrektywa używana wewnątrz bloku <Limit> do udostępnienia wszystkim danej komendy lub grupy komend.

 

DenyAll

Dyrektywa używana wewnątrz bloku <Limit> do zabronienia wszystkim danej komendy lub grupy komend.

 

<VirtualHost adres> </VirtualHost>

Blok konfiguracyjny używany do tworzenia wydzielonych konfiguracji, które będą stosowane w stosunku do różnych nazw hostów lub adresów IP (na tym samym komputerze).

 

 

Przykładowy plik konfiguracyjny : proftpd.conf

GRUPA MEDIA INFORMACYJNE & ADAM NAWARA