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ą.