Narzędzia użytkownika

Narzędzia witryny


freebsd:ports:pure-ftpd

Serwer FTP z użytkownikami systemowymi + wirtualnymi

1. Instalacja z portów

Wchodzimy do katalogu /usr/ports/ftp/pure-ftpd i wydajemy polecenie:

# make config
Ustawiamy opcje następująco:

Po zatwierdzeniu ustawień, kompilujemy i instalujemy:

# make install clean

2. Konfiguracja Pure-FTPd

Plik konfiguracyjny znajduje się w katalogu /usr/local/etc i jest nazwany pure-ftpd.conf. Wyedytujmy kilka opcji:

ChrootEveryone No – jest to bezwzględne trzymanie każdego użytkownika w chroot, pozwolimy na wyjątki od chroot-a o czym poniżej
TrustedGID 14 – użytkownicy systemowi będący w grupie 14 (ftp) nie będą mieli chroot-a po zalogowaniu (reszta ma chroot)
BrokenClientsCompatibility No – autor nie spotkał się jeszcze z przypadkami niekompatybilnych klientów, dlatego ta opcja jest wyłączona
MaxClientsNumber 10 – liczba jednoczneśnie zalogowanych użytkowników
MaxClientsPerIP 3 – maksymalna liczba logowań z jednego IP
DisplayDotFiles No – ukrywanie plików, których nazwy zaczynaja się od kropki
AnonymousOnly No – włączenie tej opcji spowoduje że będzie można logować się tylko na serwer anonimowy
NoAnonymous yes – wyłączenie serwera anonimowego (użytkownicy: anonymous oraz ftp)
DontResolve no – jeśli mamy wolny DNS, możemy wyłączyć rozwiązywanie nazw revDNS
MaxIdleTime 15 – maksymalny czas nieaktywności po którym użytkownik zostanie wylogowany
PureDB /usr/local/etc/pureftpd.pdb1) – lokalizacja pliku z bazą danych wirtualnych użytkowników, jeśli nie zamierzamy korzystać to wykomentujemy tą linię
PAMAuthentication yes2) – autentykacja za pomocą PAM (wymagane dla użytkowników systemowych)
Umask 1333):0224) – Umask dla nowo tworzonych plików i katalogów. W tym przypadku pliki będą tworzone z prawami 644 a katalogi z prawami 755
MinUID 1000 – minimalny UID użytkownika dopuszczonego do logowania
AllowUserFXP yes – zezwolenie na FXP (możliwość transferu plików między serwerami FTP bez użycia łącza użytkownika, używać z rozwagą
MaxDiskUsage 99 – maksymalna zajętość dysku, po przekroczeniu której nie będzie możliwe uploadowanie plików na serwer
FileSystemCharset utf-8 – definicja kodowania systemu plików jakiego używamy na serwerze, należy ustawić właściwy
ClientCharset cp1250 – przydatna opcja kompatybilności dla klienta Total Commander w wersji < 7.50 i użytkowników systemów Windows 2000/XP. Powoduje prawidłowe wyświetlanie polskich znaków narodowych. W przypadku innych klientów wystarczy włączyć obsługę UTF-8 (wysłanie przez klienta FTP do serwera polecenia OPTS UTF8 ON) i nie będzie problemu

3. Konfiguracja użytkowników wirtualnych

Do konfiguracji użytkowników wirtualnych służy polecenie pure-pw. Przykładowe dodanie użytkownika:

# pure-pw useradd ftp_user5) -u 650006) -g 650007) -d8) /home/virtual_ftp/ftp_user9) -t 102410) -T 102411) -n 500012)13) -N 102414)15) -r 192.168.0.0/24,192.168.1.1016)17) -R 192.168.2.0/24,192.168.3.1018)19) -i 192.168.0.1,192.168.2.120)21) -I 192.168.1.1,192.168.3.122)23) -y 324)25) -z 0900-170026) -m((parametr ten powoduje przebudowanie bazy binarnej dla Pure-FTPd z której daemon korzysta przy autentykacji))

Wszystkie parametry poza:

  • nazwą użytkownika
  • -u
  • -g
  • -d lub -D

są opcjonalne. W przypadku nie wykorzystania parametru -m, bazę można przebudować później wykonując polecenie:

# pure-pw mkdb

Aby usunąć użytkownika wystarczy wykonać polecenie:

# pure-pw userdel ftp_user27) -m((parametr ten powoduje przebudowanie bazy binarnej dla Pure-FTPd z której daemon korzysta przy autentykacji))

Listowanie wszystkich użytkowników wirtualnych:

# pure-pw list

Wyświetlanie bieżących ustawień użytkownika:

# pure-pw show ftp_user28)

Modyfikacji ustawień użytkownika dokonuje się podobnie jak dodawanie nowego, z tą różnicą że zamiast polecenia useradd używamy usermod:

# pure-pw usermod ftp_user29) -u 6500030) -g 6500031) -d32) /home/virtual_ftp/ftp_user33) -t 102434) -T 102435) -n 500036)37) -N 102438)39) -r 192.168.0.0/24,192.168.1.1040)41) -R 192.168.2.0/24,192.168.3.1042)43) -i 192.168.0.1,192.168.2.144)45) -I 192.168.1.1,192.168.3.146)47) -y 348)49) -z 0900-170050) -m((parametr ten powoduje przebudowanie bazy binarnej dla Pure-FTPd z której daemon korzysta przy autentykacji))

Modyfikując wirtualną bazę użytkowników nie ma potrzeby przeładowywania serwera FTP po każdej modyfikacji.

4. Uruchamianie serwera Pure-FTPd

Dodajemy do pliku /etc/rc.conf.local linię:

pureftpd_enable="YES"


Po czym uruchamiamy serwer:

# /usr/local/etc/rc.d/pure-ftpd start
Starting pureftpd.
Running: /usr/local/sbin/pure-ftpd -g/var/run/pure-ftpd.pid -a14 -c10 -B -C3 -E -fftp -I15 -lpuredb:/usr/local/etc/pureftpd.pdb -lpam -L2000:8 -m4 -s -U133:022 -u1000 -w -i -k99 -Z -8utf-8 -9cp1250

1) , 2)
kolejność tych wpisów jest jednocześnie kolejnością w jakiej serwer będzie próbował autentykować użytkowników, czyli najpierw sprawdza w bazie wirtualnej, jak nie znajdzie to szuka użytkownika w systemie poprzez PAM
3)
umask plików
4)
umask katalogów
5) , 27) , 28) , 29)
nazwa użytkownika
6) , 30)
przykładowy UID użytkownika
7) , 31)
przykładowy GID użytkownika
8) , 32)
wpisanie -D spowoduje że użytkownik nie będzie mial chroot
9) , 33)
ścieżka do katalogu użytkownika
10) , 34)
maksymalna prędkość pobierania z serwera w Kbps
11) , 35)
maksymalna prędkość wysyłania na serwer w Kbps
12) , 36)
maksymalna liczba plików jaką użytkownik może posiadać
13) , 15) , 37) , 39)
nie jest to QUOTA systemowa lecz własny mechanizm Pure-FTPd
14) , 38)
maksymalna liczba MegaBajtów jaką użytkownik może posiadać
16) , 40)
dozwolona klasa IP lub adresy IP z jakich użytkownik może się logować
17) , 19) , 21) , 23) , 41) , 43) , 45) , 47)
w przypadku konfliktu, ALLOW ma pierwszeństwo nad DENY
18) , 42)
zabroniona klasa IP lub adresy IP z jakich użytkownik nie może się logować
20) , 44)
dozwolone adresy IP lokalnego serwera do których użytkownik może się łączyć
22) , 46)
zabronione adresy IP lokalnego serwera do których użytkownik nie może się połączyć
24) , 48)
maksymalna liczba dozwolonych jednoczesnych sesji
25) , 49)
parametr ten napisuje ustawienie z głównej konfiguracji w pliku /usr/local/etc/pure-ftpd.conf
26) , 50)
zakres czasu w jakim użytkownik może się logować na serwer, w tym przypadku w godzinach 9:00-17:00
freebsd/ports/pure-ftpd.txt · ostatnio zmienione: 2010/01/04 04:48 przez 127.0.0.1