ProftpdConfig

Материал из OpenWiki
Перейти к: навигация, поиск

Краткий пример конфигурации сервера proftpd, запущеного от пользователя root, но в большинстве случаев вполне достаточный. Здесь включены некоторые правила безопастности и удобства отладки. Пользователь test реальный пользователь системы со своим домашним каталогом. Если строку <Anonymous ~test> заменить на <Anonymous /var/ftp>, то для пользователя test зашедшего по ftp это будет домашний каталог.

Для запуска сервера от непривелегированного пользователя требуется отдельное шаманство в роли создания специфичного файла passwd. В этом случае возникают проблемы с назначением для ftp домашнего каталога отличного от указанного в настояшем passwd, т.к. он пытается сделать chroot.

Приведенный конфиг вряд ли работает, так как в общей секции мы видим секцию Limit, а при подобном размещении и таком содержимом она вызывает полную блокировку попыток залогиниться даже не предлагая приглашения(Данное утверждение противоречит официальной документации, однако на практике и в некоторых авторских книгах замечен именно такой порядок работы). Во вторых в секции Anonymous мы видим директиву "AuthUsingAlias on", однако, директивы UserAlias из которой и берутся соответствия ftp и системных логинов, нет.

ServerName                      "ProFTPD"
ServerType                      standalone
DefaultServer                   on
Port                            21
Umask                           002
MaxInstances                    30
User                            nobody
Group                           nobody
UseReverseDNS                   off

AllowStoreRestart               on
PersistentPasswd                off
RequireValidShell               off
AuthPAMAuthoritative            off
#LDAPServer                     localhost
#LDAPDNInfo                     cn=Manager,dc=example,dc=com password
#LDAPDoAuth                     on "ou=People,dc=examples,dc=com"
#LDAPNegativeCache              on
PidFile                         /var/run/proftpd/proftpd.pid
ScoreboardFile                  /var/run/proftpd/proftpd.scoreboard
SystemLog                       /var/log/proftpd/proftpd.log
#ExtendedLog                    /var/log/proftpd.log

DenyFilter /\*/\.\.
<Limit LOGIN>
  Order allow,deny
  DenyAll
</Limit>

<Global>
  IdentLookups       off
  ServerIdent        off
  RequireValidShell  off
  AllowOverwrite     on
</Global>

<Anonymous ~test>
  User                          test
  Group                         ftp
  MaxClients                    50
  AuthUsingAlias                on
  AnonRequirePassword           on
  <Limit WRITE>
    AllowAll
  </Limit>
  <Limit LOGIN>
    AllowAll
  </Limit>
</Anonymous>