Родерик Смит - Сетевые средства Linux
• Независимо от того, запускается ли FTP-сервер посредством inetd или xinetd, при запуске ему передаются некоторые параметры. По умолчанию в конфигурационном файле суперсервера указываются параметры для FTP-сервера, поставляемого вместе с системой. Если же вы хотите заменить FTP-сервер, вам надо изменить в конфигурационном файле суперсервера не только параметры, но и имя программы, реализующей FTP-сервер.
Если ваш FTP-сервер часто посещают пользователи, имеет смысл запускать его с помощью сценария SysV или локального сценария запуска. В этом случае сервер будет быстрее отвечать на запросы, но, учитывая небольшие размеры программы, реализующей сервер, увеличение быстродействия будет минимальным. В некоторых версиях Linux, например в Debian и Mandrake, данный подход применяется для запуска ProFTPd. Если же ProFTPd постоянно присутствует в памяти, поддержка анонимного FTP-сервера упрощается.
Перед тем как продолжить настройку, необходимо убедиться в том, что FTP-сервер работает и выполняет аутентификацию пользователей (при регистрации указываются пользовательское имя и пароль). При обращении FTP-клиента с удаленного узла сервер должен отобразить приглашение для ввода пользовательского имени и пароля. Рассмотрим следующий пример, в котором к серверу обращается клиентская программа ftp, выполняющаяся в системе Linux:
$ ftp harding.threeroomco.com
ftp: connect: Connection refused
Данное сообщение клиентской программы означает, что FTP-сервер не выполняется. Если вы получите подобный ответ, вам следует просмотреть файлы протоколов и выяснить причину возникновения проблемы. Если сервер был недавно установлен, причина, возможно, заключается в том, что вы забыли перезапустить суперсервер. Убедившись в том, что сервер работоспособен, можно продолжать его настройку.
Настройка 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 запрещено.