Оглавление
Темы
Введение
Файлы конфигурации ProFTPD
Итоги и рекомендации
Дополнительные материалы
Samba — Доступ к сетевым дискам и принтерам по протоколу SMB
Монтирование файловых систем
ProFTPD — один из популярных FTP-серверов на Linux/Unix. В этой заметке описана базовая конфигурация `proftpd.conf` и связанных файлов (ssl, sql) для использования на сервере. Настройка сделана “на коленке”, но работоспособна — как исходный базис, который можно доработать под свои нужды.
ProFTPD — Server FTP.
Конфигурация `/etc/proftpd.conf`
Комментарии и пояснения:
ssl-конфигурация (`/etc/proftpd.d/ssl.conf`)
Комментарий: SSL/TLS включён, но **не обязателен** (`TLSRequired off`). Можно при необходимости усилить безопасность, сделав его обязательным.
SQL-аутентификация (`/etc/proftpd.d/sql.conf`)
Комментарий: используется MySQL-база для управления пользователями FTP, с хешированием MD5. Парольная база и таблицы должны быть подготовлены заранее.
Код: Выделить всё
# имя 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>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>- Эта конфигурация — стартовая точка.
- Проверь права файлов, владельцев каталогов, безопасность TLS (при необходимости — заставлять TLSRequired on).
- Следует добавить журналирование, ограничение доступа по IP, хаммер-протекции (Fail2Ban и прочее).
- Если планируешь публичный FTP, подумай о безопасности: chroot, ограничения прав, контроль нагрузки.