Настройка WU-FTPD

We use cookies. Read the Privacy and Cookie Policy

Настройка WU-FTPD

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

Конфигурационные файлы WU-FTPD

В большинстве случаев конфигурационные файлы, управляющие работой WU-FTPD, находятся в каталоге /etc. Имена этих файлов начинаются символами ftp.

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

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

• ftphosts. Данный файл позволяет ограничить набор узлов, с которых может осуществляться обращение к FTP-серверу, и даже запретить доступ для отдельных пользователей. Записи, начинающиеся с ключевого слова allow, разрешают, а записи, начинающиеся с deny, запрещают обращение для указанных узлов или указанных пользователей. Например, запись deny sjones означает, что попытки пользователя sjones зарегистрироваться на FTP-сервере будут блокированы, а запись deny badsite.pangaea.edu запрещает обращение к серверу для всех пользователей, работающих на узле badsite.pangaea.edu.

• ftpusers. Данный файл содержит список локальных пользователей, которым запрещено обращаться к серверу WU-FTPD. Этот файл не является частью WU-FTPD; он действует посредством модулей РАМ (Pluggable Authentication Module). Тем не менее он представляет собой удобное средство противодействия попыткам незаконного использования FTP-сервера. По умолчанию в данный файл включаются имена, соответствующие учетным записям root, nobody и daemon.

• ftpservers. В обычных условиях один и тот же набор опций используется для работы с любыми клиентами. С помощью данного файла вы можете задать конфигурацию, которая будет применяться только при взаимодействии с определенными узлами. Каждая строка в этом файле содержит IP-адрес или имя узла, за которым следует имя каталога. Если клиент, обратившийся к FTP-серверу, выполняется на одном из указанных компьютеров, WU-FTPD использует для взаимодействия с ним конфигурационные файлы, находящиеся в соответствующем каталоге. Например, запись 192.168.21.8 /etc/ftpd/trusted означает, что при обращении клиента 192.168.21.8 будут использоваться конфигурационные файлы из каталога /etc/ftpd/trusted. Этот файл позволят контролировать обращения с внешних узлов и в то же время снимать ограничения для пользователей, работающих в локальной сети.

Из перечисленных выше файлов наиболее важным является ftpaccess. Файлы ftphosts, ftpusers и ftpservers также имеют большое значение для обеспечения безопасности сервера. Если вы хотите задать обработку файлов перед передачей их клиенту, вам, помимо конфигурационного файла ftpaccess, потребуется также файл ftpconversions.

Опции общего назначения для сервера WU-FTPD

Действие многих из опций, определяющих конфигурацию WU-FTPD, базируется на понятии класса. Класс — это группа пользователей, подобная группе Linux. Для определения класса в файле ftpaccess предусмотрена опция class, которая записывается в следующем формате:

class имя_класса список_типов список_адресов

Назначение компонентов этой записи описано ниже.

• Имя класса. По умолчанию при инсталляции сервера часто создается универсальный класс с именем all. При необходимости вы можете определить свои классы.

• Список типов. В этом поле указывается список типов учетных записей, соответствующих данному классу. Ключевое слово real задает локальных пользователей, guest — пользователей, обращающихся с удаленных узлов, a anonymous описывает учетную запись для анонимного FTP-узла.

• Список адресов. Данный список содержит IP-адреса, имена узлов и имена доменов, принадлежащих классу. Символ ! означает, что указанный пункт должен отсутствовать в составе класса. Символ * определяет всех клиентов. Если список содержит несколько пунктов, над ними выполняется логическая операция OR. Например, значение threeroomco.com, pangaea.edu определяет всех клиентов, входящих в состав каждого домена.

Стандартный файл ftpaccess обычно содержит следующее определение:

class all real,guest,anonymous *

Эта запись определяет универсальный класс, применимый ко всем типам доступа и включающий все узлы. Настраивая сервер, вы можете создать несколько классов, например, класс описывающий только локальных пользователей, и класс, соответствующий удаленным пользователям. Даже если классы различаются только списком адресов, вы можете использовать их независимо друг от друга.

В файл ftpaccess также включаются перечисленные ниже опции.

• deny список_адресов файл_с_сообщением. Эта опция указывает WU-FTPD на то, что все попытки доступа, предпринимаемые с указанных адресов, должны отвергаться. Данная опция похожа на запись deny в файле ftphosts, но в ней указывается файл, содержащий сообщение. Это сообщение, объясняющее причины отказа в соединении, передается пользователю, обратившемуся к серверу.

• autogroup имя_группы класс[, класс, ...]. Данная опция указывает, что при получении обращений одного из указанных классов WU-FTPD должен выполнить операцию setgid с именем группы. С помощью этой опции вы можете разрешить анонимным пользователям, принадлежащим некоторому классу, читать те файлы, которые имеют право читать члены указанной группы, но которые не доступны для чтения остальным пользователям.

• defumask umasк класс [, класс]. Данная опция сообщает WU-FTPD, что если пользователь, принадлежащий указанному классу, передает файл на сервер, то при создании файла должна использоваться маска umask.

• timeout ключевое_слово время_в_секундах. Данная опция позволяет задает значения тайм-аута. В качестве ключевого слова может использоваться accept, connect, data, idle, maxidle или rfc931.

• noretrieve [relative|absolute] [class=имя_класса] имена_файлов. Эта опция запрещает передачу указанных файлов. Если вместо имени файла задано имя каталога, все содержимое каталога становится недоступным. При необходимости вы можете применять эту опцию только к указанному классу. Значения relative и absolute указывают, должно ли имя файла интерпретироваться как относительное (определяемое относительно корня поддерева chroot) или как абсолютное (определяемое относительно корневого каталога файловой системы). По умолчанию абсолютным считается имя, начинающееся с символа /. Например, если задана опция noretrieve /etc /usr, это означает, что копирование файлов из каталогов /etc и /usr запрещено.

Совет

Опцию noretrieve часто используют для того, чтобы запретить доступ к /etc/passwd, /etc/shadow, /etc/ftpaccess, файлу core (находящемуся в любом каталоге) и другим важным файлам.

• allowretrieve [relative|absolute] [class=имя_класса] имена_файлов. Данная опция выполняет действия, противоположные опции noretrieve. С ее помощью определяются исключения из правила, заданного посредством noretrieve. Синтаксис данной опции полностью совпадает с синтаксисом noretrieve.

• message имя_файла [событие] [класс]. Опция message задает файл, содержимое которого должно быть передано FTP-клиенту при наступлении некоторого события. Так, например, если в качестве события указано ключевое слово login, сообщение будет отображаться при регистрации пользователя. Если событие описано как cwd=каталог, то сообщение будет передано при выборе этого каталога в качестве текущего. При необходимости вы можете ограничить действия данной опции определенным классом пользователей. Например, если задана опция message .message cwd=*, то при переходе в любой каталог пользователю будет передано сообщение из файла .message, содержащегося в этом каталоге. Таким образом, вы можете предоставлять пользователям описание содержимого каталогов и сообщать о назначении всего FTP-сервера.

• compress [yes|no] класс [,класс]. Данная опция разрешает сжатие данных. Если пользователь запрашивает один из существующих файлов, но указывает дополнительное расширение, означающее сжатие, этот файл будет передан в сжатом виде. (Например, для получения файла с именем file пользователь может указать имя file.gz.) Расширения, означающие сжатие, приведены в файле ftpconversions.

• chmod, delete, overwrite, rename и umask. Эти опции принимают значение yes или no, кроме того, в них указывается такой же список типов, как и в определении класса. Каждая из этих опций разрешает или запрещает использование клиентом соответствующей команды. Например, запись delete no guest, anonymous запрещает пользователям типа guest и anonymous удалять файлы.

• tar [yes|no] класс[, класс]. Эта опция действует подобно опции compress, но применяется для объединения содержимого каталога в tar-архив. Данная опция предоставляет удобные средства для копирования каталогов.

• dns refuse_mismatch имя_файла. Данная опция сообщает серверу WU-FTPD о том, что тот должен выполнить обратное преобразование IP-адреса клиента, а затем осуществить прямое DNS-преобразование. Если адрес, полученный в результате прямого преобразования, не соответствует адресу клиента, соединение должно быть разорвано. Однако перед разрывом соединения сервер передает клиенту содержимое указанного файла.

• dns refuse_no_reverse имя_файла. Данная опция указывает на то, что если выполнить обратное DNS-преобразование не удается, сервер не должен продолжать взаимодействие с клиентом. Перед завершением работы клиенту передается содержимое указанного файла.

Здесь приведены лишь некоторые из опций WU-FTPD. Дополнительную информацию о настройке данного сервера можно получить, обратившись к страницам справочной системы, посвященным ftpaccess. Далее в этой главе будут также рассмотрены опции, применяемые для организации работы анонимного FTP-сервера.