ServerName "Serwer proftpd" ServerAdmin admin@histeria.pl ServerType standalone DeferWelcome on DefaultRoot ~ ,!staff RootLogin off ShowSymlinks on DefaultServer on ShowSymlinks on AllowOverwrite on TimeoutNoTransfer 300 TimeoutStalled 300 TimeoutIdle 300 DisplayLogin .message DisplayFirstChdir .message LsDefaultOptions "-l" UseFtpUsers off TransferLog /var/log/proftpd/xferlog.legacy LogFormat default "%h %l %u %t \"%r\" %s %b" LogFormat clf_default "%a - - %t \"GET %f\" 200 %b \"Ftp/Client\"" LogFormat auth "%v [%P] %h %t \"%r\" %s" LogFormat write "%h %l %u %t \"%r\" %s %b" TlsRsaCertFile /etc/ssl/cert/ftpd-rsa.pem TlsRsaKeyFile /etc/ssl/private/ftpd-rsa-key.pem TlsCipherList ALL:!EXP TlsRequired off TlsCertsOk on DenyFilter \*.*/ AccessDenyMsg "Sorry, lecz nie masz dostepu do tego serwera" IdentLookups on #RateReadFreeBytes 64000 Port 21 Umask 022 User ftp Group ftp MaxInstances 5 MaxLoginAttempts 2 MaxClients 5 ">>> Przekroczona ilosc mozliwych polaczen - sproboj za chwile <<<" MaxClientsPerHost 3 ">>> Za duzo polaczen z jednego IP <<<"
Witaj %U z %R. Aktualnie jesteś %N z maksymalnej liczby %M możliwych połączeń. W razie problemów skontaktuj się z %E Jest %T, a ty masz jeszcze %F miejsca do wykorzystania.MagicCookies można również używać przy inych opcjach, ale o tym później
LogFormat default "%h %l %u %t \"%r\" %s %b"Możliwe parametry, to:
AccessDenyMsg "Sorry, lecz nie masz dostepu do tego serwera"
RateReadFreeBytes 64000co daje nam max 64Kb na połączenia wychodzące. Parametr ten można użyc i w konfiguracji głownej, jak i w konfiguracji dla poszczególnych użytkowników (np.anonymous), serwerów wirtualnych i katalogów.
Umask 022Zainteresowanych tym parametrem odsyłam do podręcznika man umask
User ftp
Group ftp
MaxInstances 5
MaxLoginAttempts 2
MaxClients 5 ">>> Przekroczona ilosc mozliwych polaczen - sprobuj za chwile <<<"
MaxClientsPerHost 3 ">>> Za duzo polaczen z jednego IP <<<"
parametry konfiguracji głównej (czyli to co napisałem powyżej) <Anonymous ~user> wpisy konfiguracji </anonymous>A więc po kolei:
<Anonymous ~ftp>
User ftp
Group ftp
AnonRequirePassword off
UserAlias anonymous ftp
AuthUsingAlias on
ShowSymlinks on
TransferLog /var/log/proftpd/anonymoyus.ftp
DisplayLogin .message
DisplayQuit .quit
DisplayFirstChdir .message
RateReadBPS 50000
HideNoAccess on
MaxClients 5 ">>> Przekroczona ilosc mozliwych polaczen - sproboj za chwile <<<"
MaxClientsPerHost 2 ">>> Z tego ip mozesz polaczyc sie tylko 2 razy !!! <<<"
<Limit WRITE>
DenyAll
</Limit>
<Limit READ DIRS>
IgnoreHidden on
</Limit>
</Anonymous>
Z oczywistych względów ( no dobra .. z lenistwa) nie będę opisywał parametrów które opisane są powyżej w konfiguracji
głównej.
UserAlias anonymous ftp
TransferLog /var/log/proftpd/anonymoyus.ftp
<Limit WRITE>
DenyAll
</Limit>
Jeśli kogoś bardzo lubicie i bardzo ufacie, można dodać parametr AllowFrom w postaci:
<Limit WRITE>
Order Allow,Deny
AllowFrom 212.244.88.59
DenyAll
</Limit>
Ale jest to ustawienie nie zalecane przez twórców proftpd.
<Anonymous /home/users/jakis_user>
User jakis_user
Group grupa
AnonRequirePassword on
ShowSymlinks on
TransferLog /var/log/proftpd/jakis_user.ftp
RateReadBPS 20000
HideNoAccess on
MaxClients 5 ">>> Przekroczona ilosc mozliwych polaczen - sproboj za chwile <<<"
MaxClientsPerHost 2 ">>> Z tego ip mozesz polaczyc sie tylko 2 razy !!! <<<"
<Limit READ DIRS>
IgnoreHidden on
</Limit>
</Anonymous>
Jeśli chcemy ograniczyć użytkownika do połączeń z określonych serwerów (adresów) dodajemy wpis:
<Limit LOGIN> Order Allow,Deny Allow From 212.244.88.,212.244.104. Deny All </Limit>Adres ip możemy podać w formie 212.244.88.59 - wówczas połączenia będą akceptowane tylko z tego jednego adresu, lub jako 212.244.88. - wówczas akceptowane będą połączenia ze wszystkich pasujących adresów.
<VirtualHost test.virtualhost.pl>
ServerAdmin user@virtualhost.pl
ServerName "testowy virtualhost"
TransferLog /var/log/proftpd/virtualhost.ftp
MaxLoginAttempts 5
RequireValidShell no
DefaultRoot /home/user/virtualhost
User jakis_user
Group jakas_grupa
AllowOverwrite yes
<Anonymous /home/user/virtualhost/anon>
User jakis_user
Group jakas_grupa
UserAlias anonymous ftp
RequireValidShell no
MaxClients 20
DisplayLogin .mirrors
DisplayFirstChdir .current-version
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
</VirtualHost>
Jak widać konfiguracja praktycznie nie różni się od GlobalConfig i Anonymous - całośc ujęta jest tylko w dyrektywe <VirtualHost test.virtualhost.pl> /--reszta wpisów normalnie--/ port 8000 /--a tu reszte wpisów z VirtualHost--/ </VirtualHost>Konfiguracja jaką podaje powyżej, jest konfiguracją działającą na kilku serwerach i sprawdzoną.