Страница 1 из 1

ProFTPD — Server FTP (up25)

СообщениеДобавлено: 09 дек 2019, 19:50
ROOT
Оглавление


Темы
 Введение 
 Файлы конфигурации ProFTPD 
 Итоги и рекомендации 
Дополнительные материалы
Samba — Доступ к сетевым дискам и принтерам по протоколу SMB
Монтирование файловых систем


ProFTPD — Server FTP (протокол передачи файлов)
 Введение 
ProFTPD — один из популярных FTP-серверов на Linux/Unix. В этой заметке описана базовая конфигурация `proftpd.conf` и связанных файлов (ssl, sql) для использования на сервере. Настройка сделана “на коленке”, но работоспособна — как исходный базис, который можно доработать под свои нужды.

СообщениеДобавлено: 13 окт 2025, 15:41
ROOT
 Файлы конфигурации ProFTPD 
Конфигурация `/etc/proftpd.conf`
Код: выделить все
# имя ftp-сервера
ServerName           "sergey.free-adm.ru ProFTPD"
# сообщение при подключении
ServerIdent           on "FTP Server ready."
ServerAdmin           sergey@free-adm.ru
DefaultServer          on
ServerType standalone
UseIPv6                off
ShowSymLinks           on
RootLogin               off
DefaultRoot            ~ !adm
AuthPAMConfig           proftpd
AuthOrder               mod_sql.c mod_auth_unix.c
UseReverseDNS          off
IdentLookups            off
User                    nobody
Group                   nobody
MaxInstances             20
UseSendfile              off
LogFormat                default "%h %l %u %t \"%r\" %s %b"
TransferLog              /var/log/proftpd/xfer.log
ExtendedLog              /var/log/proftpd/access.log WRITE,READ write
ExtendedLog              /var/log/proftpd/auth.log AUTH auth
DebugLevel               9
MaxClients                10 "Слишком много соединений с сервером (%m)"
MaxClientsPerHost        4 "%m клиента уже подключены с Вашего хоста"
# ... и др.

Комментарии и пояснения:
  • `ServerType standalone` — запускает сервер как самостоятельный процесс, а не через `inetd`.
  • `DefaultRoot ~ !adm` — домашний каталог пользователя, запрет на доступ выше.
  • `RootLogin off` — запрет входа под root.
  • `MaxClients`, `MaxInstances` — ограничивают число одновременных подключений, чтобы не перегрузить систему.
  • `UseSendfile off` — иногда `sendfile` вызывает ошибки на некоторых файловых системах, поэтому отключено.

Дополнительные файлы конфигурации
ssl-конфигурация (`/etc/proftpd.d/ssl.conf`)
Код: выделить все
<IfDefine TLS>
    TLSEngine      on
    TLSRequired    off
    TLSRSACertificateFile      /etc/pki/tls/certs/proftpd-cert.pem
    TLSRSACertificateKeyFile    /etc/pki/tls/certs/proftpd-key.pem
    TLSCipherSuite ALL:!ADH:!DES
    TLSVerifyClient  off
    TLSLog /var/log/proftpd/tls.log
</IfDefine>

Комментарий: SSL/TLS включён, но **не обязателен** (`TLSRequired off`). Можно при необходимости усилить безопасность, сделав его обязательным.

SQL-аутентификация (`/etc/proftpd.d/sql.conf`)
Код: выделить все
<IfModule mod_sql.c>
    SQLBackend mysql
    SQLAuthTypes MD5
    SQLConnectInfo proftpd@localhost proftpd tnUQGY4W
    SQLUserInfo ftpuser userid passwd uid gid homedir shell
    SQLGroupInfo ftpgroup groupname gid members
    SQLLog PASS updatecount
    SQLNamedQuery updatecount UPDATE "count=count+1, accessed=now() WHERE userid='%u'" ftpuser
    SQLLog STOR,DELE modified
    SQLNamedQuery modified UPDATE "modified=now() WHERE userid='%u'" ftpuser
</IfModule>

Комментарий: используется MySQL-база для управления пользователями FTP, с хешированием MD5. Парольная база и таблицы должны быть подготовлены заранее.

СообщениеДобавлено: 13 окт 2025, 15:41
ROOT
 Итоги и рекомендации 
  • Эта конфигурация — стартовая точка.
  • Проверь права файлов, владельцев каталогов, безопасность TLS (при необходимости — заставлять TLSRequired on).
  • Следует добавить журналирование, ограничение доступа по IP, хаммер-протекции (Fail2Ban и прочее).
  • Если планируешь публичный FTP, подумай о безопасности: chroot, ограничения прав, контроль нагрузки.