сразу предупреждаю, мой стаж работы с линуксом 2 недели))
я захотел поднять ФТП сервер для самообразования, гугл посоветовал ставить proFTPd.
задача следующая:
- ФТП сервер с двумя основными директориями, Uploads и Public.
- в Uploads read/write/dirs можно всем
- из Public read/dirs можно всем, но write - только админу.
прочитал кучу мутных статей (и несколько хороших)), в итоге всё максимально упростил, и вот что у меня получилось.
1. создал от имени root'a директорию /home/FTP-shared
2. создал юзера ftpadmin и ftp, добавил их в группу ftp
3. создал внутри директории Public и Uploads, сделал им chown ftp:ftp, и chmod 0775
4. установил proFTPd
5. настроил конфиг (он находится ниже)
6. создал в папках Public и Uploads файлы .ftpaccess (они тоже внизу)
7. запустил proFTPd
всё чётко работает как я задумал, онанимы заходят и качают, админская учётка всем рулит)
но т.к. опыта у меня пока маловато, возможно я что-то важное не учёл, поэтому прошу указать мои косяки, если они есть (особенно с точки зрения безопасности)
конфиг:
Код: Выделить всё
# General Server Context.
ServerName "White.Net FTP Server"
ServerType standalone
DefaultServer on
Port 21
tcpBackLog 10
MaxInstances 30
CommandBufferSize 50
UseReverseDNS off
IdentLookups off
User ftp
Group ftp
MultilineRFC2228 on
AllowFilter "^[a-zA-Z0-9 ,.,-]*$"
# Global Server Context.
<Global>
DeleteAbortedStores on
MaxClients 100
MaxLoginAttempts 3
TransferRate APPE,RETR,STOR,STOU 5120:10 000 000
ServerIdent on "Привет!"
Umask 022
</Global>
# Запрещаем всем логиниться
<Limit LOGIN>
DenyAll
</Limit>
# секция онанима)
<Anonymous /home/FTP-shared>
# Allow Anonymous logins here since all logging are disabled above.
<Limit LOGIN>
AllowAll
</Limit>
AnonRequirePassword off
RequireValidShell off
User ftp
Group ftp
# алиас онанима
UserAlias anonymous ftp
# Limit the maximum number of anonymous logins.
MaxClients 100
</Anonymous>
# секция админа
<Anonymous /home/FTP-shared>
<limit LOGIN>
AllowUser ftpadmin
</limit>
AnonRequirePassword on
RequireValidShell off
User ftpadmin
Group ftp
# Limit the maximum number of anonymous logins.
MaxClients 1
</Anonymous>.ftpaccess в папке Public:
Код: Выделить всё
<limit ALL>
DenyAll
</limit>
<limit READ DIRS>
AllowAll
</limit>
<limit ALL>
AllowUser ftpadmin
</limit>.ftpaccess в папке Uploads:
Код: Выделить всё
<limit ALL>
DenyAll
</limit>
<limit READ WRITE DIRS>
AllowUser ftp
</limit>
<limit ALL>
AllowUser ftpadmin
</limit>