15.3. Утилиты обслуживания FTP-сервера
При работе с серверами wu-ftpdи ProFTPDвы можете использовать программы ftpshut(останавливает сервер), ftpwho(выводит информацию о пользователях), ftpcount(сообщает о количестве установленных соединений). Инструментальные средства обоих серверов имеют похожие опции, но вспомогательные программы для ProFTPDвыводят больше полезной информации.
Я рекомендую использовать расширенный вывод утилиты ftpwho. В этом режиме предоставляется больше информации (листинг 15.11).
Листинг 15.11. Результат работы программы ftpwho
# ftpwho -v
Master proftpd process 759:
1113 2m55s proftpd: ftp — localhost.localdomain:
anonymous/den@den.com: IDLE
(host: localhost.localdomain [127.0.0.1])
(cwd: /)
1150 0m20s proftpd: den - localhost.localdomain: IDLE
(host: localhost.localdomain [127.0.0.1])
(cwd: /home/den)
Service class - 2 users
15.4. Виртуальный узел FTP
Виртуальный сервер — это сервер, не существующий физически, но представляющийся пользователю как реальный сервер. ОС Linux может поддерживать несколько IP-адресов, благодаря чему имеется возможность создать виртуальные узлы. Если вы располагаете дополнительными IP-адресами, то они как раз могут использоваться для создания виртуальных узлов. При конфигурировании виртуальных FTP-узлов каждому виртуальному узлу нужно присвоить отдельный IP-адрес.
Виртуальные FTP-узлы нужны, если вы, например, хотите организовать несколько узлов FTP — например, для разных рабочих групп и для анонимных пользователей. Обслуживать сразу несколько FTP-узлов позволяет все тот же демон proftpd.
Настройка виртуального FTP-узла очень похожа на настройку виртуального веб-сервера, которая будет рассмотрена в следующей главе. Даже используется одна и та же директива VirtualHost, содержащая IР-адрес или доменное имя, прописанное в службе DNS. IP-адрес должен указывать на узел сети, на котором запущен ProFTPD(см. листинг 15.12).
Листинг 15.12. Пример использования директивы VirtualHost
ServerName "Online library"
MaxClients 15
MaxLoginAttempts 1
DeferWelcome on
Allow from 192.168.1
Deny from all
AllowUser libadmin
DenyAll
User library
Group library
AnonRequirePassword on
User ftp
Group ftp
UserAlias anonymous ftp
В примере 15.12 также конфигурируются две анонимных учетных записи — library и ftp. Причем учетная запись library требует ввода пароля при регистрации. Пароль должен совпадать с паролем того пользователя, который запустил демон. Доступ к виртуальному серверу разрешен только для подсети 192.168.1.0. Записывать данные на сервер может только пользователь libadmin.
Очень полезной, особенно, при организации виртуальных узлов, является конфигурационная директива DefaultRoot, позволяющая указать каталог, который представлялся бы пользователям как корневой. Например, значение DefaultRoot "~"настраивает сервер так, чтобы корневым каталогом каждого пользователя был его собственный домашний каталог.
А что делать, если нам нужно, чтобы пользователи видели все дерево файловой системы? Например, чтобы каждый мог посмотреть, в каком каталоге находится та или иная программа. В этом случае целесообразно ограничить действия над файлами в корневом каталоге (точнее, во всех каталогах, кроме домашнего каталога пользователя). Делается это так:
DenyAll
Пример файла конфигурации с использованием директивы DefaultRootприведен ниже (листинг 15.13):
Листинг 15.13. Пример использования директивы Default Root (/etc/proftpd.conf)
ServerName "My ProFTPD server"
ServerType standalone
DefaultServer on
# Корневым для пользователя будет его домашний каталог
DefaultRoot "~"
# Используем стандартный порт
Port 21
Umask 022
MaxInstances 30
# Пользователь и группа, обслуживающие сервер
User nobody
Group nobody
# Параметры корневого каталога. Блочная директива Directory
# Директива, определяющая параметр AllowOverwrite
AllowOverwrite on
# Чтобы избежать атаки на отказ, нужно установить
# максимальное число клиентов, а также максимальное
# число неудачных попыток регистрации;
Читать дальше
Конец ознакомительного отрывка
Купить книгу