Настройка FTP сервера (используем ProFTPd)
Если будете ставить Apache, MySQL, PHP пакетом task-lamp (как написано здесь), то он автоматом подтянет ProFTPd сервер. Можно и его запустить.
1. Запустите сервер:
- service proftpd start - запуск proftpd-сервера.
- service proftpd stop - остановка proftpd-сервера.
- service proftpd restart - перезапуск proftpd-сервера.
Если не запустится командой service, запускайте через следующие скрипты:
- /etc/init.d/proftpd start
- /etc/init.dproftpd stop
- /etc/init.d/proftpd restart
2. Проверяем работоспособность сервера командой lftp user@localhost
Введите пароль пользователя user (у вас, естественно, свой). Теперь выполняем команду ls и убеждаемся, что мы находимся в домашнем каталоге пользователя user. Выполняем команду cd / и ls и убеждаемся, что FTP сервер пустил нас выше домашнего каталога пользователя (а это НЕЖЕЛАТЕЛЬНО). Выходим из FTP клиента (команда quit).
3. Чтобы этому воспрепятствовать, раскомментируйте в файле конфигурации /etc/proftpd.conf строку DefaultRoot ~. Это значит, что мы “запираем” всех пользователей в их домашних каталогах. А если нам все-таки хочется пустить какого-то пользователя (пусть это будет mypclinuxos) выше, добавляем еще одну строку DefaultRoot / mypclinuxos.
4. Часто используется анонимный FTP сервер (anonymous ftp). Настроить его можно так: добавьте следующий код в конец конфигурационного файла /etc/proftpd.conf * (каталог /var/ftp/ по умолчанию является каталогом, где лежат общедоступные файлы и домашним каталогом пользователя ftp, под которым запускается демон ProFTPd):
<Anonymous ~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/
5. Часто используется анонимный FTP сервер, который предоставляет возможность пользователям загружать файлы на сервер. Для того, чтобы это сделать, сначала необходимо создать каталог внутри корня анонимного FTP сервера, в который эти пользователи будут иметь доступ, и сделать его владельцем пользователя ftp:
- mkdir /var/ftp/uploads
- chown ftp.ftp /var/ftp/uploads
Теперь добавьте следующий код в конфигурационный файл /etc/proftpd.conf внутрь секции (например перед ее закрытием, то есть перед строкой </anonymous>):
<Directory uploads/*>
<Limit READ>
DenyAll
</Limit>
<Limit STOR>
AllowAll
</Limit>
</Directory>
Теперь в каталог /var/ftp/uploads пользователи могут заливать файлы, используя анонимную авторизацию. При этом файлы в этом каталоге никто не сможет читать. Если вам захочется, чтобы загруженные в этот каталог файлы были доступны для чтения анонимным пользователям, тогда просто закомментируйте (или удалите) следующие строки:
# <Limit READ>
# DenyAll
# </Limit>
6. Минимальные настройки FTP сервера закончены. Перезапустите его указанными выше командами. Более расширенные инструкции поищите у себя в каталоге /usr/share/doc/proftpd.
Примечание
* Настройки анонимного ftp-сервера можно просто скопировать из файла /etc/proftpd-anonymous.conf и вставить в конец файла /etc/proftpd.conf.
** ProFTPd сервер требует применения патчей для корректного отображения русских шрифтов. Без патчей вместо русских букв будут кракозяблы.