Po zainstalowaniu możemy edytować plik:
nano /etc/proftpd/proftpd.conf
UseIPv6 on #Wsparcie dla nowego protokołu adresacji IPV6 (on/off)
IdentLookups off #Protokół identyfikujący użytkowników, jeżeli jest włączony (on)
<p style="text-align: justify;">ServerName "Wójtowicz" #Nazwa serwera
ServerType standalone #Tryb pracy standalone zużywa wiecej zasobów initd startuje po udanym połączeniu, używany przy kilku połączeniach z ftp na dzien (standalone lub initd)</p>
DeferWelcome on #Wyświetla informacje o serwerze po ponownym zalogowaniu (on lub off)
MultilineRFC2228 on #Standard odpowiedzi wysyłanych przez serwer, umożliwia komunikację z przeglądarkami, współbieżny z wieloma klientami
DefaultServer on #Opcja umożliwiająca kierowanie połączeń także skierowanych do adresów Virtualnych Hostów (on/off)
ShowSymlinks on #Pokazuje dowiązania symboliczne w katalogu (on/off)
TimeoutNoTransfer 600 #Okres czasu, po którym zrywane jest połączenie, jeżeli nie nastąpi transfer danych
TimeoutStalled 600 #Maksymalny czas transferu
TimeoutIdle 1200 #Maksymalny czas bezczynności, resetowany po każdym żądaniu
DisplayLogin welcome.msg #Plik zawierający wiadomość po zalogowaniu użytkownika
DisplayChdir .message true #Nazwa pliku w katalogu użytkownika, którego zawartość będzie wyświetlona lub nie po jego zalogowaniu (true/false)
ListOptions "-l" #Opcje listowania plików w trybie binarnym, np. "ls -a" oznacza blokadę listowania plików ukrytych (z kropką przed nazwą)
DenyFilter \*.*/ #Wyrażenia regularne, które mają zostać zablokowane
DefaultRoot ~ #Ograniczenie korzystania z katalogów do katalogów domowych
RequireValidShell off #Użytkownik musi mieć zdefiniowaną odpowiednią powłokę, jaka jest zawarta w pliku /etc/shells
<p style="text-align: justify;">Port 21 #Port, na którym ma działać server FTP (domyślnie 21). Można wybrać inny port, by utrudnić próbę włamania</p>
# PassivePorts 49152 65534 #Zakres portów pracujących w trybie pasywnym - definiowany przy regułach firewalla, zalecany niski zakres, używany przez przeglądarki (ftp://nazwa.domeny.pl)
# MasqueradeAddress 1.2.3.4 #Adres maskarady, jeżeli nasz serwer jest za NAT-em (np. routerem)
# DynMasqRefresh 28800 #Maksymalny czas podany w sekundach (8h), po którym nastąpi sprawdzenie bieżącego adresu IP, jeżeli mamy zmienny IP (np. Neostrada, UPC)
MaxInstances 30 #Maksymalna liczba użytkowników mogących się połączyć - większa nie jest zalecana ze względu na możliwość ataku dos - jeżeli jednak jest potrzebna, to zalecany jest tryb standalone
User proftpd #Domyślna nazwa użytkownika, używana podczas pracy serwera FTP
Group nogroup #Domyślna nazwa grupy, używana podczas pracy serwera FTP
Umask 022 022 #Utworzenie maski dla plików i katalogów, aby zapobiec nadpisywaniu plików przez grupy i innych użytkowników
# 022 => 755 , 077 => 700 , 002 => 775
AllowOverwrite on #Umożliwienie nadpisywania plików
PersistentPasswd off #Odkomentuj, jeżeli używasz NIS lub LDAP przez NSS do zarządzania hostami
AuthOrder mod_auth_pam.c* mod_auth_unix.c #Moduły używane do mechanizmu uwierzytelniania PAM
UseSendFile off #Opcja umożliwająca przegląd postępu transferu pobierania (nie wysyłania!) przez użytkowników, za pomocą ftpwho - jej działanie obciąża procesor
TransferLog /var/log/proftpd/xferlog #Ścieżka do pliku z logami transferu
SystemLog /var/log/proftpd/proftpd.log #Ścieżka do pliku z logami systemowymi
#UseLastlog on #Możliwość zapisu logowań przez użytkowników
#SetEnv TZ :/etc/localtime #Konfiguracja pliku ze strefą czasową używaną do logów - domyślnie jest zakomentowany i oznacza używanie czasu letniego DST przy skonfigurowanym chroot (lub DefaultRoot)
QuotaEngine off #Moduł odpowiedzialny za przydzielenie limitu transferowego
Ratios off #Moduł odpowiedzialny za dostarczanie informacji o postępie transferu przez użytkowników
DelayEngine on #Moduł odpowidzialny za opóźnienia podczas logowania
ControlsEngine off
ControlsMaxClients 2
ControlsLog /var/log/proftpd/controls.log
ControlsInterval 5
ControlsSocket /var/run/proftpd/proftpd.sock
AdminControlsEngine off
#Include /etc/proftpd/ldap.conf #Alternatywne silniki uwierzytelniania
#Include /etc/proftpd/sql.conf #Alternatywne silniki uwierzytelniania
#Include /etc/proftpd/tls.conf #Moduł do bezpiecznych połączeń FTPS, opartych o SSL
#Include /etc/proftpd/virtuals.con #Przydatne do utrzymania VirtualHost/VirtualRoot osobno
#Podstawowa konfiguracja serwera FTP dla użytkownika bez loginu i hasła
User ftp
Group nogroup
UserAlias anonymous ftp #Alias umożliwający logowanie się jako "anonymous" tak jak użytkownik "ftp"
#Cosmetic changes, all files belongs to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off #Wymaga użytkownika z dostępem do powłoki
MaxClients 10 #Maksymalna liczba klientów zalogowanych
#We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayChdir .message
Umask 022 022
AllowOverwrite off
DenyAll
Umask 022 022
AllowOverwrite off
DenyAll
Umask 022 022
AllowOverwrite on
DenyAll
AllowAll
Include /etc/proftpd/conf.d/ #Możliwość dołączenia innych plików konfiguracyjnych
sudo su
Logujemy się na konto roota:
apt-get install proftpd
Instalujemy proftpd z repozytorium:
mkdir /home/FTP/
Tworzymy katalog, w którym będziemy przetrzymywać pliki konfiguracyjne:
sudo useradd userFTP -d /home/FTP -s /bin/false
Dodajemy użytkownika i wskazujemy jego katalog domowy, a także wskazujemy, że nie będzie miał on dostępu do powłoki:
passwd userFTP
Nadajemy użytkownikowi hasło:
cd /home/FTP
Przechodzimy w drzewie katalogów do wcześniej utworzonego katalogu:
mkdir download upload
Tworzymy podkatalog „download” i „upload”:
chmod 755 /home/FTP/
Nadajemy uprawnienia do zapisu, odczytu i wykonywania dla użytkownika, a także odczytu i wykonywania dla grupy i innych użytkowników dla katalogu głównego:
chmod 755 download
Nadajemy uprawnienia do zapisu, odczytu i wykonywania dla użytkownika, a także odczytu i wykonywania dla grupy i innych użytkowników dla podkatalogu „download”:
chmod 777 upload
style=”display:inline-block;width:728px;height:90px”
data-ad-client=”ca-pub-3473784311111784″
data-ad-slot=”1536038152″>
Nadajemy uprawnienia do zapisu, odczytu i wykonywania dla użytkownika, grupy i innych użytkowników dla podkatalogu „upload”:
nano /etc/shells
Edytujemy plik z dostępnymi powłokami i dopisujemy:
/bin/false