Мы будем рассматривать настройку FTP-сервера ProFTPD. На мой взгляд, данный сервер наиболее гибкий в настройке.
Установите два пакета: proftpd-basic и gadmin-proftpd. Первый содержит FTP-сервер, а второй — графическую программу для его настройки. После установки сервер практически готов к работе. Его нужно только запустить (по умолчанию он добавляется в автозапуск, поэтому после перезагрузки данная команда не потребуется):
sudo /etc/init.d/proftpd start
Попробуем подключиться к вашему серверу:
ftp <имя_вашего_компыотера>
FTP-сервер запросит имя пользователя и пароль. Нужно вводить имя пользователя, зарегистрированное на вашем компьютере (на FTP-сервере). После этого вы получите доступ к домашнему каталогу пользователя, который будет для вас корневым, т. е. за пределы этого каталога выйти не получится. Это сделано из соображений безопасности, чтобы никто не мог получить доступ к файловой системе сервера.
Данная конфигурация сервера не очень удобна. Когда нужно предоставить доступ пользователям к их домашним каталогам — все просто прекрасно. Но предположим, что вы хотите сделать свою коллекцию фильмов доступной всем пользователям сети. Можно, конечно, записать их в ваш домашний каталог, а потом всем предоставить имя пользователя и пароль, но такая конфигурация нежелательна с точки зрения безопасности — все смогут прочитать ваши файлы, причем не только прочитать, а изменить и даже удалить. Поэтому намного рациональнее предоставить всем пользователям анонимный доступ к вашей коллекции фильмов. Каждый желающий сможет скачать фильм, но никто не сможет ничего удалить.
Основной файл конфигурации сервера ProFTPD называется /etc/proftpdV proftpd.conf. По умолчанию в конфигурационном файле указываются далеко не все опции, которые доступны, поэтому для создания полноценного конфигурационного файла нужно запустить программу gadmin-proftpd:
gksu gadmin-proftpd
При первом запуске программа сообщит вам, что в конфигурационном файле не хватает многих опций, и предложит создать полноценный конфигурационный файл. В верхней части окна программы настройки FTP-сервера расположены кнопки управления сервером:
Online/Offline — информируют о статусе сервера (зеленая кнопка говорит о том, что сервер запущен);
Shutdown — завершает работу сервера;
RcRcad — заставляет сервер перечитать конфигурационный файл.
На вкладке Servers можно управлять разными серверами, если у вас их несколько, точнее, редактировать их файлы конфигурации. У нас будет только один сервер, поэтому я не думаю, что кнопки Add Server и Delete server вам пригодятся. Ознакомимся с другими вкладками программы настройки:
Users — позволяет управлять пользователями выбранного сервера;
Transfers — информация об использовании выбранного сервера;
Disk — информация об использовании дискового пространства локального компьютера;
Files — позволяет сгенерировать файлы статистики сервера;
Conf— позволяет редактировать конфигурационный файл сервера;
Security — информация, касающаяся безопасности сервера.
< Anonymous /var/ftp/put>;
# Имя пользователя и группы
# (пользователь ftp создается при установке FTP-сервера)
User ftp
Group nogroup
# Определяем стандартный псевдоним anonymous
UserAlias anonymous ftp
# Отключает проверку командного интерпретатора пользователя - это лишнее
RequireValidShell off
# Максимальное количество анонимных клиентов
MaxClients 10
# Запрещаем записывать файлы в каталог /var/ftp/pub
< Directory *>;
< Limit WRITE>;
DenyAll
< /Limit>
< /Directory>
< /Anonymous>;
Теперь любой пользователь сможет подключиться к вашему серверу, используя имя пользователяanonymous и любой e-mail в качестве пароля. Они получат доступ к файлам в каталоге /var/ftp/pub. Файлы можно будет только скачивать, все остальные действия (изменение, удаление) запрещены, запрещена и загрузка файлов на сервер. Если нужно разрешить загрузку файлов на сервер, тогда в конце секции Anonymous (перед </Anonymous>) нужно добавить следующую секцию:
< Directory incoming>
Umask 022
< Limit WRITE>
DenyAll
< /Limit>
< Limit STOR>
AllowAll
< /Limit>
< /Directory>
Пользователи смогут просматривать каталог /var/ftp/pub/incoming и загружать в него новые файлы.
После внесения изменений в конфигурационный файл нужно нажать кнопку Save и перезапуститьсервер:
sudo /etc/init.d/proftpd restart
Зачем нужен FTP-сервер?
Протокол FTP (File Transfer Protocol) используется для обмена файлами между компьютерами сети. Вы можете установить FTP-сервер на вашем компьютере, тогда все пользователи сети смогут скачать размещенные на нем файлы (понятно, что не все — вы выделите для сервера специальный каталог, но об этом позже), а некоторые пользователи (которым вы отдельно разрешите доступ) смогут даже закачать файлы на сервер. Спрашивается, зачем нужен FTP-сервер, если все вышесказанное можно реализовать средствами Samba? Оказывается, не все так просто. Дело в том, что Samba по сравнению с FTP-сервером работает медленнее. Поэтому если познания пользователей вашей сети выходят за пределы Проводника Windows и они умеют пользоваться FTP-клиентом, тогда скачивание файлов будет происходить намного быстрее. И еще: FTP-сервер позволяет использовать программы для закачки файлов вроде Downloader for X, FlashGet (Windows), Download Master (Windows), которые разбивают файл на несколько частей и запускают несколько потоков — каждый поток скачивает свою часть файла, что позволяет значительно уменьшить время загрузки файлов. Для Samba тоже есть подобные программы, но те, которые я увидел, оставляют желать лучшего (тормозят работу всей системы, зависают или работают еще медленнее, чем Проводник Windows). Вот поэтому использование FTP-сервера оправдано, особенно, если вы планируете обмениваться большими файлами (от 300 Мбайт), например, фильм.