Proftpd - докладно про те, про що тількиздогадувалися
ProFTPD може працювати в режимах (директива ServerType): standalone або inetd.
Можна запускати ProFTPD без привілеїв суперкористувача. Однак при цьому необхідно встановити Port вище 1023, вимкнути AuthPAM та WtmpLog, обов'язково використовувати AuthUserFile та AuthGroupFile, встановити User та Group на себе. Не можна використовувати DefaultRoot та Anonymous.
Для використання DefaultRoot (chroot) потрібно запускати сервер із правами root. Деякі ОС вимагають наявності певних файлів у кореневій директорії (наприклад, Solaris потребує /dev/tcp та /dev/zero). Символьні посилання не можуть вказувати назовні (хоча можна використовувати жорсткі посилання або mount-bind).
ProFTPD дозволяє створювати «віртуальних» користувачів за допомогою директив AuthUserFile та AuthGroupFile (або з використанням SQL, LDAP та DB за допомогою додаткових модулів). AuthUserFile визначає заміну для /etc/passwd у тому форматі, AuthGroupFile – для /etc/group. Зашифровані паролі зберігаються тут же (аналогу для /etc/shadow немає), тому права на читання відповідних файлів повинен мати лише користувач, вказаний у директиві User віртуального сервера (імовірно окремий користувач для ftpd). Див. також DirFakeUser та DirFakeGroup.
Області дії директив конфігурації (секції визначаються як у файлі налаштування Apache за допомогою HTML-подібних тегів, що відкривають і закривають):
' для вказівки домашньої директорії
Управління анонімним доступом:
- AnonRequirePassword offon
- Anonymous коренева-директорія (задає область дії для анонімного доступу, директорія використовується для chroot; використовується в області дії – основний сервер, Global, VirtualHost)
- AnonymousGroup список-груп-через-кому (трактувати користувачів з цієї групи як анонімних - пароль не потрібно, робиться chroot в домашню директорію; користувач повинен входити до всіх згаданих груп (AND, можливо заперечення, що задається знаком оклику перед ім'ям групи), область дії – основний сервер, Global, VirtualHost)
- AuthUsingAlias offon (область дії – Anonymous)
Ім'я користувача/"; область дії – основний сервер, Global, VirtualHost, Anonymous)
- AllowStoreRestart offon (дозволити відновлювати запис на сервер, область дії – server config, VirtualHost, Anonymous, Directory, Global, .ftpaccess)
- DefaultChdir ім'я-директорії [список-груп-через-кому ] (можна щодо домашньої директорії; за замовчуванням – до неї; користувач повинен входити до всіх згаданих груп (AND, можливо заперечення, задається знаком оклику перед ім'ям групи), область дії – server config, VirtualHost, Anonymous, Global)
- DefaultTransferMode asciibinary
- DeleteAbortedStores off on
- GroupOwner ім'я-групи (до якої групи приписувати новостворені файли та директорії;дотримуються обмеження прав доступу для поточного користувача; область дії – Anonymous, Directory, .ftpaccess)
- H >Керування повідомленнями, що видаються клієнтам:
- AccessDenyMsg повідомлення
- AccessGrantMsg повідомлення
- DeferWelcome offon (притримати привітання до аутентифікації; частина привітання все одно видається)
- DisplayConnect ім'я-файлу (ім'я файлу абсолютне або відносно домашньої директорії)
- DisplayFirstChdir ім'я-файлу (ім'я файлу абсолютне або щодо самої директорії; можна використовувати макроси:
- %T – поточний час
- %F – вільне місце у файловій системі
- %C – ім'я поточної директорії
- %R – ім'я віддаленого хоста
- %L – ім'я локального хоста
- %u – ім'я користувача, отримане за протоколом >Керування журналами (за замовчуванням, використовується syslog , daemon:debug/authpriv):
Умовні оператори: Define (можна також визначати параметри в командному рядку під час запуску proftpd), IfDefine, IfModule. Можуть бути вкладені. Є також директиваInclude.
Формат видачі змісту директорії (NLST, LIST, STAT)
- DirFakeGroup
- DirFakeMode
- DirFakeUser
- LsDefaultOptions «рядок» (область дії – сервер, VirtualHost, Anonymous, Global)
- ListOptions
- ShowDotFiles offon (еквівалентно LsDefaultOptions «-A»; область дії – сервер, VirtualHost, Anonymous, Global)
- ShowSymlinks onoff (показувати символьні посилання або файли, що результатують; область дії – сервер, VirtualHost, Anonymous, Global)
- TimesGMTonoff (показувати GMT або локальні часи; область дії – сервер, VirtualHost,Anonymous, Global)
- UseGlobbing onoff (дозволяє використовувати шаблони замість імен файлів; область дії – сервер, VirtualHost, Anonymous, Global)
Розташування локальних файлів:
-
P & Обмеження трафіку.
- RateReadBPS байт-в-секунду (область дії - сервер, VirtualHost, Global, Anonymous, Directory)
- RateReadFreeBytes байт (перші байти безкоштовно; область дії – сервер, VirtualHost, Global, Anonymous, Directory)
- RateReadHardBPS offon (чи чекати після вичерпання перших безкоштовних байт поки що середня швидкість не опуститься до RateReadBPS)
- RateWriteBPS байт-в-секунду (область дії - сервер, VirtualHost, Global, Anonymous, Directory)
- RateWriteFreeBytes байт (перші байти безкоштовно; область дії – сервер, VirtualHost, Global, Anonymous, Directory)
- RateWriteHardBPS offon (чи чекати після вичерпання перших безкоштовних байт поки що середня швидкість не опуститься до RateWriteBPS)
- TransferRate (замінює старі директиви Rate*)
Модулі mod_ratio, mod_ldap, mod_radius, mod_sql мають свої набори директив:
- mod_ratio: AnonRatio, ByteRatioErrMsg, CwdRatioMsg, FileRatioErrMsg, GroupRatio, HostRatio, LeechRatioMsg, RatioFile, RatioTempFile, Ratios, SaveRatios, UserRatio
- mod_ldap: LDAPAuthBinds, LDAPDNInfo, LDAPDefaultAuthScheme, LDAPDefaultG &mod_unixprivs.
mod_quota і mod_quotatab (враховуються лише дані, передані за протоколом FTP для даного користувача).
Logwatch має скрипти для обробки журналів ProFTPD.
Формат журналу xferlog (ім'я файлу задається директивою TransferLog):