Главная » 2013 » Декабрь » 12 » 11.1. Сервер FTP wu‑ftpd
01:57
11.1. Сервер FTP wu‑ftpd

Сервер FTP wu‑ftpd является разработкой Вашингтонского университета. Этот сервер очень распространен и входит в состав практически каждого дистрибутива Linux. Для его установки нужно установить пакет wu‑ftpd. Как и любой другой сервер, wu‑fptd может быть постоянно загруженным в память или вызываться суперсервером inetd по мере необходимости. Первый режим называется standalone и применяется, как правило, если FTP‑серверу нужно часто обрабатывать запросы клиентов. Второй режим используется в целях экономии памяти и если нагрузка на FTP‑сервер не очень велика.

Если вы решите настроить работу сервера FTP во втором режиме, в файле inetd. conf должна быть соответствующая запись (см. листинг 11.1)

Листинг 11.1. Фрагмент файла inetd. conf

Из листинга 11.1 видно, что FTP‑сервер вызывается не напрямую, а через демон tcpd, чем обеспечивается дополнительная безопасность. В том случае, если вы используете новую версию inetd – xinetd, формат записи у вас будет другой (см. листинг 11.2).

Листинг 11.2. Фрагмент файла xinetd. conf

Опция ‑l сервера FTP регистрирует все сеансы FTP в файле syslog.

Кроме этой опции, сервер ftp имеет ряд других опций, указанных в табл. 11.1.

Опции командной строки сервера wu‑ftpd Таблица 11.1

Опция

Описание

‑d

Записывает отладочную информацию в журнал syslog

–l

Регистрирует все FTP‑сеансы в журнале syslog

‑L

Регистрирует в журнале syslog все команды, отправленные серверу FTP

‑t секунды

Устанавливает предел времени ожидания для пассивных клиентов (по умолчанию 15 минут). Если за этот промежуток времени от клиента не поступит ни одной команды, то FTP‑сеанс с сервером будет разорван

‑Т секунды

Максимально допустимое время сеанса FTP (по умолчанию 2 часа)

‑а

Разрешает использование файла конфигурации ftpaccess

‑А

Запрещает использование файла конфигурации ftpaccess. Эта опция установлена по умолчанию

‑i

Регистрирует в журнале xferlog файлы, полученные сервером FTP

‑о

Регистрирует в журнале xferlog файлы, переданные сервером во время сеанса

Сервер wu‑ftp использует пять файлов конфигурации: ftpaccess, ftphosts, ftpusers, ftpgroups, ftpconversions. В этой главе мы подробно рассмотрим каждый из них.

11.1.1. Файл ftpaccess

Основным файлом конфигурации является ftpaccess. Как и другие файлы конфигурации, он располагается в каталоге /etc. Пример файла /etc/ftpaccess приведен в листинге 11.3.

Листинг 11.3. Пример файла ftpaccess

Файл ftpaccess определяет возможности доступа к FTP‑серверу, которые будут иметь различные группы пользователей. В этом файле задаются параметры доступа, разрешенные операции, виды регистрируемых событий.

Директива class определяет класс пользователей, которые будут иметь доступ к серверу FTP. В листинге 11.3 задан класс all, который состоит из следующих типов пользователей: настоящие (real), гости (guest), анонимные (anonymous). Под настоящими пользователями подразумеваются те, которые зарегистрированы на сервере, то есть их учетные записи хранятся в файле /etc/passwd.

С помощью директивы email можно указать адрес администратора сервера.

Директива loginfails задает максимальное количество попыток регистрации. Если это количество превышено, пользователь автоматически будет отключен. Значение по умолчанию для этой директивы равно 5.

Директива message определяет файл и событие, когда он должен быть отображен. Например, можно создать несколько файлов, один из которых будет отображаться при регистрации пользователя, а другой – при входе его в определенный каталог.

Директивы chmod и delete определяют, могут ли пользователи использовать одноименные команды FTP. А директивы overwrite или delete разрешают или запрещают определенным пользователям перезаписывать или удалять файлы на сервере. В приведенном примере (см. листинг 11.3) пользователи классов guest и anonymous не могут выполнять ни одну из упомянутых операций. Общие директивы сервера wu‑ftpd перечислены в табл. 11.2.

Директивы сервера wu‑ftpd Таблица 11.2

Директива

Описание

Autogroup имя_группы имя_класса […]

Разрешает доступ анонимным пользователям определенных классов к файлам, которые принадлежат к указанной группе

Alias псевдоним каталог

Создает псевдоним для каталога на FTP‑сервере. Псевдоним позволяет быстро (указав только псевдоним) перейти в соответствующий ему каталог из любого другого каталога на сервере

Anonymous‑root каталог [имя_класса]

Указывает каталог, который будет использоваться в качестве корневого для заданного класса пользователей. После успешной регистрации пользователя на FTP‑сервере он автоматически попадет в соответствующий его классу каталог. Если имя класса не указано, то данная директива будет задавать корневой каталог для анонимных пользователей, для которых корневой каталог не определен явно

Banner файл

Перед регистрацией клиента ему будет показано сообщение из указанного файла. В качестве параметра файла задается полное (абсолютное) имя файла

Bit‑limit [raw] in|out|total макс_кол_байт [имя_класса]

Устанавливает ограничение на количество пересылаемой информации в байтах для пользователей указанного класса. Если имя класса не указать, то данное ограничение будет применяться ко всем пользователям, для которых нет явных указаний по этому поводу. Необязательный параметр raw позволяет ограничить весь объем пересылаемой информации (в том числе и служебной), а не только пересылаемых файлов. Значения in, out, total указывают поток данных (на сервер, от сервера или и тот, и другой одновременно), подлежащий учету

Class имя_класса типы_пользователей адреса_хостов

Создает класс пользователей с указанным именем. В качестве типа пользователей используются ключевые слова anonymous (анонимные пользователи), guest (гостевые пользователи) и real (зарегистрированные пользователи). Если указывается несколько типов, то они перечисляются через запятую без пробелов. В поле адреса_хостов указываются адреса хостов, только пользователи которых будут принадлежать данному классу. Символ звездочка «*» означает все хосты (см. листинг 11.3). Адреса хостов могут указываться в виде одного из следующих форматов: IP‑адрес – отдельный IP‑адрес. IP‑адрес: маска_сети – IP‑адрес с маской сети. IP‑адрес/cidr – IP‑адрес с информацией CIDR. !nameserved – указание этого идентификатора приводит к запрету доступа со всех хостов, имена которых не удается получить от DNS‑сервера. /имя_файла – Указывается абсолютное имя текстового файла, в котором содержится список IP‑адресов (по одному в каждой строке)

Cdpath каталог

Определяет для директивы cdpath выражение, с помощью которого задается путь поиска при переходе в указанный каталог

Compress yes|no имя_класса

Разрешает или запрещает сжатие данных перед отправкой (команда compress) для указанного класса пользователей

Defaultserver private

Запрещает анонимный доступ к серверу

Deny адреса_хостов файл_сообщения

Запрещает доступ к серверу для хостов с указанными адресами. При этом будет отображено сообщение из файла_сообщения. При указании файла необходимо использовать полное (абсолютное) имя. Адреса хостов могут указываться в виде одного из следующих форматов: IP‑адрес – отдельный IP‑адрес. IP‑адрес: маска_сети – IP‑адрес с маской сети. IP‑aflpec/cidr – IP‑адрес с информацией CIDR. !nameserved – указание этого идентификатора приводит к запрету доступа со всех хостов, имена которых не удается получить от DNS‑сервера. /имя_файла – указывается абсолютное имя текстового файла, в котором содержится список IP‑адресов (по одному в каждой строке)

Email адрес почты

Почтовый адрес администратора сервера

File‑limit [raw] in|out|total количество_файлов [имя_класса]

Устанавливает ограничение на количество пересылаемых файлов для пользователей указанного класса. Параметр количество_файлов как раз и задает максимально допустимое количество файлов. Значение остальных параметров такое же как и для директивы bit‑limit

Guestgroup имя_группы [имя_группы…]

Всем пользователям, входящим в группу с указанным именем, будет разрешен гостевой доступ к серверу FTP

Limit имя_класса максимум периоды файл_сообщения

Ограничивает число одновременно работающих пользователей, принадлежащих указанному классу, в определенное время суток. Параметр максимум задает максимально допустимое количество одновременно работающих пользователей. Параметр периоды задает временные интервалы. Клиенту, которому запрещается доступ к FTP‑серверу в результате действия данной директивы, будет показано сообщение из файла файл_сообщения

Loginfails количество

Определяет максимальное число неудачных попыток регистрации пользователя, после которых он будет отключен. По умолчанию количество попыток равно 5

Log commands типы_пользователей

Регистрирует в журнале команды, которые вводились пользователями указанных типов. В качестве типов пользователей указываются ключевые слова anonymous, guest, real (см. описание опции class)

Log transfers тип_пользователей список_направлений

Регистрирует в журнале акты передачи файлов пользователями указанных типов. В качестве типов пользователей указываются ключевые слова anonymous, guest, real (см. описание опции class). В поле список_направлений задается направление передачи, подлежащее протоколированию: inbound (входящие файлы), outbound (исходящие). Если указываются оба направления, то они должны быть разделены запятой без пробела (см. листинг 11.3)

Message файл_сообщения действие

Отображает файл_сообщения во время регистрации или при переходе в другой каталог. Соответственно значение в поле действие может быть либо LOGIN (регистрация) или CWD=каталог (переход в каталог). Запись cwd=* задает любой каталог (см. листинг 11.3)

Noretrieve [class=имя_класса] список_файлов

Запрещает получение указанных в списке файлов. Если указан параметр class, то этот запрет распространяется только на пользователей заданного класса

Readme

Файл действие Во время регистрации или при смене каталога пользователь получит сообщение о существовании и времени модификации указанного файла. Параметр действие определяется так же, как и в директиве message

Tar yes|no имя_класса

Разрешает или запрещает использование команды tar для указанного класса пользователей, то есть разрешает или запрещает архивирование файлов архиватором tar перед их пересылкой

Virtual адрес

Разрешает использование виртуального FTP‑узла

Кроме общих директив, сервер wu‑ftp имеет директивы, которые управляют правами доступа. Директивы прав доступа определяют, какие операции могут выполнять пользователи того или иного типа. Эти директивы указаны в табл. 11.3.

Директивы прав доступа Таблица 11.3

Директива

Описание

Chmod yes|no типы_пользователей

Разрешает или запрещает выполнять команду chmod для пользователей указанных типов. В качестве типов пользователей указываются ключевые слова anonymous, guest, real (см. описание опции class)

Delete yes|no типы_пользователей

Разрешает или запрещает выполнять команду delete для пользователей указанных типов. В качестве типов пользователей указываются ключевые слова anonymous, guest, real (см. описание опции class)

Overwrite yes|no типы_пользователей

Разрешает или запрещает пользователям указанных типов перезаписывать файлы на сервере. В качестве типов пользователей указываются ключевые слова anonymous, guest, real (см. описание опции class)

Rename yes|no типы_пользователей

Разрешает или запрещает пользователям указанных типов переименовывать файлы на сервере. В качестве типов пользователей указываются ключевые слова anonymous, guest, real (см. описание опции class)

Password‑check rfc822|trivial|none enforce|warn

Задает уровень проверки пароля. При этом в качестве первого параметра указывается метод проверки пароля: none – отключает проверку паролей; trivial – все пароли должны обязательно содержать символ '@'; rfs822 – в качестве паролей должны указываться адреса электронной почты, задаваемые согласно стандарту RFC822 (рекомендую использовать именно это значение). Вторым параметром задается действие, которое должно производиться в тех случаях, когда пользователь введет неправильный пароль. Значение warm говорит о том, что пользователь просто будет проинформирован об ошибке в пароле и далее ему будет позволено заново зарегистрироваться на FTP‑сервере. Если указать значение enforce, то пользователю будет выдано сообщение о неправильном пароле и ему в дальнейшем будет запрещен доступ к серверу

Upload yes|no типы_пользователей

Разрешает или запрещает выгрузку файлов на сервер пользователям указанных типов. В качестве типов пользователей указываются ключевые слова anonymous, guest, real (см. описание опции class)

11.1.2. Файл ftphosts

Файл ftphosts используется для разрешения или запрещения доступа определенных пользователей с указанных узлов. Например, вы можете разрешить доступ пользователю admin только с компьютера Admm. domain. ru и запретить со всех остальных. А для других пользователей разрешить доступ со всех компьютеров. Таким образом, в файле могут быть записи двух видов: разрешающие и запрещающие. Формат записей в файле ftphosts следующий:

Разрешающая запись allow разрешает пользователю регистрироваться с хостов, указанных в списке hosts, но запрещает регистрацию со всех остальных. Запись deny, наоборот, запрещает доступ с определенных хостов, но разрешает со всех остальных. В листинге 11.4 приведен пример файла ftphosts.

Листинг 11.4. Пример файла ftphosts

В приведенном примере пользователь admin может регистрироваться на сервере только с компьютера с IP‑адресом 192.168.1.1. Если этот пользователь попробует зарегистрироваться с другого компьютера, то ему будет отказано в доступе. Пользователю user запрещено регистрироваться с компьютеров 192.168.1.2 и 192.168.1.3, но он может зарегистрироваться с любого другого компьютера сети.

11.1.3. Файл ftpusers

Файл ftpusers содержит список пользователей, которым запрещено использовать команду ftp. Эти пользователи не могут зарегистрироваться на сервере. При попытке регистрации будет выведено сообщение об ошибке Login Incorrect, даже если пользователь ввел правильный пароль. Из соображений безопасности этот файл должен содержать хотя бы имена пользователей root, bin, news, uucp. Пустые строки, а также строки, начинающиеся с символа #, игнорируются. Полностью корректный с точки зрения безопасности файл представлен в листинге 11.5.

Листинг 11.5. Файл ftpusers

11.1.4. Файл ftpgroups

Файл ftpgroups содержит специальные пароли, с помощью которых пользователи FTP будут рассматриваться как пользователи определенной группы. Такое разрешение получит пользователь, для которого запись в файле ftpgroups содержит выражение Yes. Более подробную информацию об этом файле вы можете получить в справочной системе, введя команду man ftpgroups.

11.1.5. Файл ftpconversions

В файле ftpconversions заданы операции сжатия, разрешенные пользователям для выполнения во время сеанса FTP. Стандартный файл ftpconversions представлен в листинге 11.6.

Листинг 11.6. Файл ftpconversions

Каждая запись этого файла состоит из восьми полей. Поля разделяются с помощью символа двоеточия. Эти поля содержат префиксы и постфиксы удаления и добавления, внешнюю команду, тип операции и описание. Например, сжатый программой gzip файл должен иметь имя с суффиксом gz. Чтобы к имени файла был добавлен суффикс gz, запись в файле ftpconversions должна иметь постфикс gz. Я специально не использую здесь термин «расширение», так как он отсутствует в терминологии UNIX, потому что файлы в ОС Linux не имеют расширения.

11.1.6. Файл xferlog

Файл xferlog является журналом сервера FTP, в который записываются все транзакции, которые были произведены в результате работы пользователей. С помощью опций ‑о и –i сервера FTP можно выбрать тип транзакций, записываемых в журнал (см. табл. 11.1).

Примечание. Транзакция – это обработка запроса, то есть прием порции данных от пользователя, ее обработка и выдача результата пользователю. В базах данных и файловых системах – это выполнение элементарной целостной операции над данными, например, удаление записи.

Рассмотрим листинг 11.7, в котором представлен фрагмент файла xferlog.

Листинг 11.7. Фрагмент файла xferlog

Теперь проанализируем записи. Из первой записи вы можете узнать, что пользователь Den был зарегистрирован с удаленного узла localhost. localdomain. Начало передачи файла /home/den/vmware. html произошло в среду, 9 января 2002 года в 11:49. Общее время передачи – одна секунда. Общий объем переданной информации составляет 1490 байт. Для передачи файла использовался режим ASCII (а), не было произведено никаких специальных операций (_). Файл vmware. html пользователь загружал с сервера, на что указывает направление передачи (о). Пользователь Den является реальным (зарегистрированным) пользователем системы (r). Название службы, которая производила операцию – ftp.

Теперь рассмотрим четвертую запись. Тот же пользователь Den передал на сервер файл ftphosts. html. Направление передачи – на сервер (i). Режим передачи – двоичный (b). Вторая и третья записи сообщают о загрузке с сервера и на сервер файла w. out в текстовом (а) режиме.

Тип пользователя обозначается символом возле имени пользователя. Символ r обозначает зарегистрированного в системе пользователя, у которого есть своя запись в файле /etc/passwd. Символ g означает гостевую регистрацию, а символ а – анонимную.

Направление передачи, как вы уже догадались, обозначается символами о – прием файла пользователем и i – прием файла сервером. Остается только отметить, что файл xferlog используется обоими серверами FTP – wu‑ftpd и  ProFTPD.

Категория: Настройка FTP | Просмотров: 505 | Добавил: spb_serge | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: