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) - (parametr ten powoduje przebudowanie bazy binarnej dla Pure-FTPd z której daemon korzysta przy autentykacji))
Wszystkie parametry poza:
- nazwą użytkownika
-u-g-dlub-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) -
(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) - (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

