+48 511 790 336

szymon@artmetic.pl

Konfiguracja FTP na Ubuntu Server 12.04 PROFTPD

Po zainstalowaniu możemy edytować plik:

 nano /etc/proftpd/proftpd.conf
Include /etc/proftpd/modules.conf   #Ścieżka do pliku z modułami, które mają zostać załadowane
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 =&gt; 755 , 077 =&gt; 700 , 002 =&gt; 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