Опции, используемые для настройки анонимного FTP-сервера

Опции, используемые для настройки анонимного FTP-сервера

Большинство FTP-пакетов, поставляемых в составе различных версий Linux, полностью или частично сконфигурированы для функционирования в качестве анонимного FTP-сервера. Для того чтобы окончить настройку, вам надо приложить лишь минимальные усилия. В данном разделе описываются опции, позволяющие реализовать анонимный FTP-сервер как с помощью WU-FTPD, так и посредством ProFTPd. Вначале будет рассмотрено создание дерева каталогов (эта задача решается одинаково для обоих серверов), а затем — средства конфигурации для каждого из серверов.

Создание поддерева каталогов

Первый шаг по организации работы FTP-сервера — это создание поддерева каталогов. Как правило, корнем этого поддерева является каталог /home/ftp, но при необходимости вы можете разместить его в другой позиции файловой системы. В большинстве случаев в качестве владельца каталогов указывается root, либо пользователь, который должен непосредственно заниматься поддержкой FTP-узла, а права доступа к каталогам задаются равными 755 (rwxr-xr-x). Это позволяет администратору редактировать файлы, содержащиеся в каталоге, но другим пользователям запись данных запрещена. В отличие от каталогов, при определении прав доступа к файлам не устанавливается бит исполняемой программы.

В большинстве случаев в составе поддерева FTP задаются следующие подкаталоги.

• pub. В этом каталоге размещаются файлы, предназначенные для копирования на пользовательские компьютеры. Вы можете создавать в каталоге pub любую структуру подкаталогов и помещать в них любые файлы. Необходимо лишь обеспечить, чтобы пользователь имел право чтения этих файлов.

• bin. Для выполнения некоторых действий FTP-сервер обращается к другим программам. Эти программы должны находиться в каталоге /bin (путь к каталогу определяется относительно корневого каталога, заданного с помощью функции chroot()). Чаще всего серверу требуется утилита ls, кроме того, в процессе работы ему могут понадобиться программы tar, gzip и zcat (последний файл представляет собой символьную ссылку на gzip). Установив FTP-сервер, вы, возможно, обнаружите, что в каталоге bin уже находятся некоторые программы, причем размер их превышает размер соответствующих программ, находящихся в каталоге /bin системы. Причина в том, что при установке FTP-сервера в состав исполняемого файла помещаются все необходимые коды, в результате чего исключается необходимость в библиотечных файлах. Убедитесь, что для файлов, находящихся в этом каталоге, установлен бит исполняемой программы.

• lib. В этом каталоге содержатся динамические библиотеки, используемые при работе программ в /bin. Если вы скопируете в каталог /bin поддерева FTP утилиты из каталога /bin операционной системы, вам надо выяснить, какие библиотеки требуются для работы каждой из них. Это позволяет сделать команда ldd. Так, например, чтобы определить, какие библиотеки нужны для программы надо выполнить команду ldd /bin/ls.

• etc. Для работы FTP-сервера требуются два файла, содержащихся в каталоге /etc: passwd и group. Вам нет необходимости копировать соответствующие файлы из каталога /etc системы. Вам нужна лишь запись для пользователя ftp (либо другого пользователя, учетную запись которого вы используете для организации анонимного доступа).

После того как вы создадите перечисленные выше каталоги и поместите в них требуемые файлы, можете приступать к дальнейшей настройке анонимного FTP-сервера. Возможно, впоследствии вы внесете некоторые изменения в структуру поддерева FTP, например, включите новые файлы или модифицируете существующие. Например, не исключено, что вы захотите, чтобы перед передачей производилось сжатие файла посредством утилиты gzip. В этом случае вам придется скопировать соответствующий исполняемый файл в каталог /bin поддерева FTP.

Опции WU-FTPD, используемые при создании анонимного FTP-сервера

Наиболее важные опции, используемые для создания анонимного FTP-сервера на базе продукта WU-FTPD, находятся в файле /etc/ftpaccess. В процессе настройки вам может потребоваться изменить значения следующих опций.

• class. Возможно, для обеспечения анонимного доступа вам придется создать новый класс. Для его создания применяются те же средства, что и для формирования других классов.

• compress, tar, chmod, delete, overwrite и rename. Эти опции разрешают или запрещают пользователю выполнять соответствующие командах. Запретив анонимному пользователю вызывать команды, определяемые последними четырьмя опциями, вы лишите его возможности изменять файлы, расположенные на сервере. Эти опции могут показаться излишними, однако некоторая избыточность позволяет сохранить контроль над сервером, если при установке конфигурации была допущена ошибка или если некоторые функции сервера выполняются некорректно.

• anonymous-root. В качестве значения данной опции надо задать корневой каталог поддерева chroot, в пределах которого выполняется сервер WU-FTPD.

В большинстве систем WU-FTPD запускается посредством суперсервера с привилегиями root. Когда сервер принимает запрос от анонимного пользователя, он порождает процесс от имени пользователя ftp. Таким образом, WU-FTPD может реализовать анонимный FTP-сервер, даже при запуске посредством суперсервера.

Опции ProFTPd, используемые при создании анонимного FTP-сервера

Основные опции ProFTPd, используемые для настройки анонимного FTP-сервера, находятся в файле proftpd.conf. Фрагмент конфигурационного файла, реализующий простой анонимный сервер, приведен ниже.

<Anonymous /home/ftp>

 User      ftp

 Group     ftp

 # При регистрации пользователь может указывать имя anonymous

 # либо ftp

 UserAlias anonymous ftp

 # В пределах поддерева chroot запись данных запрещена

 <Limit WRITE>

  DenyAll

 </Limit>

</Anonymous>

• Директива <Anonymous> создает блок, в который помещаются остальные опции, применяемые для формирования конфигурации анонимного сервера. При наличии этой директивы ProFTPd изменяет процедуру регистрации, в данном примере сервер создает поддерево chroot, корневой каталог которого размещается в каталоге /home/ftp.

• Директивы User и Group сообщают ProFTPd о том, какое имя пользователя и группы должно использоваться для работы с анонимным сервером. ProFTPd порождает процесс с полномочиями указанного пользователя и группы. Необходимо убедиться в том, что каталоги поддерева FTP и расположенные в них файлы доступны для указанных пользователя и группы.

• Директива UserAlias обеспечивает обслуживание пользователей, которые указывают при регистрации имя anonymous.

• В блоке, созданном с помощью директивы <Limit WRITE>, содержится директива DenyAll. Этот блок запрещает всем пользователям запись в каталоги. Если вы корректно задали права доступа в поддереве FTP, этот блок можно считать излишним. Однако, как было сказано ранее, некоторая избыточность поможет в том случае, если при настройке сервера была допущена ошибка или если в его системе защиты есть недостатки.

• Если вы хотите создать псевдоанонимный сервер, который регистрирует пользователей посредством имени anonymous, но требует ввода пароля, вы должны использовать опцию AnonRequiresPassword on. В этом случае вам также следует задать пароль в файле /etc/passwd или /etc/shadow. (Сервер ProFTPd выполняет аутентификацию пользователя перед тем, как ограничить сферу своих действий поддеревом chroot, поэтому соответствующий пароль задается в системном файле /etc/passwd или /etc/shadow.)

Если вы хотите, чтобы FTP-сервер работал только как анонимный сервер, вам надо принять меры для того, чтобы запретить доступ обычным пользователям. По возможности разместите FTP-сервер на том компьютере, на котором имеется как можно меньше учетных записей администраторов, и запретите доступ этим пользователям, включив их имена в файл /etc/ftpusers.