Глава 7. Настройка FTP сервера

Проверяем что установлен или устанавливаем пакет ProFTPd

# urpmi proftpd

Файл конфигурации для FTP сервера ProFTPd это /etc/proftpd.conf. Все настройки и изменения мы будем делать именно в нем.

Запускаем сервер:

# /etc/init.d/proftpd restart

проверяем работоспособность

$ lftp admin@localhost

вводим пароль пользователя admin. Теперь выполняем команду ls и убеждаемся, что мы находимся в домашнем каталоге пользователя admin. Выполняем команду cd / и ls и убеждаемся, что FTP сервер пустил нас выше домашнего каталога пользователя, что часто НЕЖЕЛАТЕЛЬНО. Выходим из FTP клиента (команда quit).

Чтобы этому воспрепятствовать, пишем в файле конфигурации строчечку DefaultRoot ~. Это значит, что мы “запираем” всех пользователей в их домашних каталогах. А если нам все-таки хочется пустить какого-то пользователя (пусть это будет testuser) выше, добавляем еще одну строку DefaultRoot / testuser.

Часто используется анонимный FTP сервер (anonymous ftp). Настроить его легко можно так: добавьте следующий код в конец конфигурационного файла /etc/proftpd.conf (каталог /var/ftp/ по умолчанию является каталогом, где лежат общедоступные файлы и домашним каталогом пользователя ftp, под которым запускается демон ProFTPd):

###########################################
<Anonymous /var/ftp/>
  User				ftp
  Group				ftp

  # Рассматривать клиентов, вошедших под логином anonymous как ftp
  UserAlias			anonymous ftp

  # Лимит на максимальное количество подключений пользователя anonymous
  MaxClients			30

  # не спрашивать пароля и оболочку.
  RequireValidShell		off
  AnonRequirePassword		off

  # ограничение ЗАПИСИ(WRITE) везде в anonymous chroot
  <Limit WRITE>
    Order Deny, Allow
    DenyAll
  </Limit>

</Anonymous>
###########################################

Теперь перезапускаем ProFTPd сервер и проверяем, что анонимный доступ на FTP работает:

$ links ftp://localhost/

Часто используется анонимный FTP сервер, который предоставляет возможность пользователям загружать файлы на сервер. Для того, чтобы это сделать, сначала необходимо создать каталог внутри корня анонимного FTP сервера, в который эти пользователи будут иметь доступ, и сделать его владельцем пользователя ftp.

# mkdir /var/ftp/uploads
# chown ftp.ftp /var/ftp/uploads

Теперь добавим следующий код конфигурационный файл /etc/proftpd.conf внутрь секции <anonymous> (например перед ее закрытием, то есть перед строкой </anonymous>):

    <Directory uploads/*>
       <Limit READ>
           DenyAll
       </Limit>
        <Limit STOR>
            AllowAll
        </Limit>
    </Directory>

Теперь в каталог /var/ftp/uploads пользователи могут заливать файлы, используя анонимную авторизацию. При этом файлы в этом каталоге никто не сможет читать. Если вам захочется, чтобы загруженные в этот каталог файлы были доступны для чтения анонимным пользователям, тогда просто закомментируйте (или удалите) следующие строки:

#       <Limit READ>
#           DenyAll
#       </Limit>

Минимальные настройки FTP сервера закончены. Более расширенные инструкции поищите у себя в каталоге /usr/share/doc/proftpd-1.2.7/, а также на сайте разработчиков этого демона http://proftpd.org/