Виртуальность
В статье пойдет речь о конфигурировании виртуальных HTTP- и FTP-серверов. В качестве HTTP сервера будет рассмотрен Apache, а создание виртуального FTP-сервера будет происходить с использованием FTP-серверов wu-ftp и ProFTP.
Денис Колесниченко
Виртуальный FTP-сервер
Рассмотрим конфигурирование виртуального FTP-сервера на примере ProFTP. Демон proftpd позволяет обслуживать
сразу несколько FTP-узлов. Виртуальные FTP-узлы нужны когда мы, например, хотим организовать несколько FTP-узлов -
один для одной рабочей группы, другой - для второй, в третий может быть анонимным и т.д.
Настройка виртуального FTP-узла очень похожа на настройку виртуального Web-сервера -
даже используется та же директива VirtualHost. Linux может поддерживать несколько Ip-адресов, благодаря чему
мы можем создать виртуальные узлы. Дополнительные IP-адреса, которыми вы располагаете можно использоваться
виртуальными узлами. При конфигурировании виртуальных FTP-узлов каждому виртуальному узлу нужно присвоить
отдельный IP-адрес.
Для конфигурирования виртуального FTP в файл proftpd.conf нужно добавить директиву VirtualHost, содержащую
IP-адрес.
<VirtualHost 192.168.1.5>
ServerName "Virtual FTP Server"
</VirtualHost>
В блок VirtualHost можно другие вставить директивы, например, директиву Anonymous, которая создаст
гостевой узел. Можно также задать каталог или порт.
Пример 2.1.
<VirtualHost ftp.library.com>
ServerName "Online library"
MaxClients 15
MaxLoginAttempts 1
DeferWelcome on
<Limit LOGIN>
Allow from 192.168.1
Deny from all
</Limit>
<Limit WRITE>
AllowUser libadmin
DenyAll
</Limit>
<Anonymous /var/ftp/library/books>
User library
Group library
AnonRequirePassword on
<Anonymous /var/ftp/library>
User ftp
Group ftp
UserAlias anonymous ftp
</Anonymous>
</VirtualHost>
В примере 2.1 приведена конфигурация виртуального сервера ftp.library.com. В директиве VirtualHost используется
доменное имя, которое должно быть прописано в сервере DNS. IP-адрес должен указывать на узел сети, на котором
запущен демон proftpd. В конфигурации 2.1 также конфигурируются две анонимных учетных записи - library и ftp. Причем
учетная запись library требует ввода пароля при регистрации. Пароль должен совпадать с паролем того пользователя,
который запустил демон. Доступ к виртуальному серверу разрешен только для нашей подсети (192.168.1.0). Записывать
данные на сервер может только пользователь libadmin.
Директивы конфигурации сервера ProFTP
Директива |
Описание |
AccessGrantMsg message |
Ответное сообщение, которое будет отправлено пользователю в случае
его регистрации или получения анонимного доступа. Символы %u будут заменены
на имя пользователя, которое он ввел при регистрации. |
Allow from all | host | network [,host | network[, ...]] |
Используется внутри блока Limit. Ограничивает доступ к серверу (а именно
разрешает доступ). По умолчанию allow from all |
AllowAll |
Разрешает доступ к блокам Directory, Anonymous, Limit |
AllowForeignAddress on | off |
Разрешает клиенту указывать при соединении соединения адрес, который
не соответствует ему. По умолчанию off. Может использоваться в блоках VirtualHost,
Anonymous, <Global> |
AllowGroup group_list |
Разрешает доступ определенным группам. Используется в блоке Limit |
AllowUser user_list |
Разрешает доступ определенным группам. Используется в блоке Limit |
AnonRequirePassword on | off |
Требует пароль при анонимной регистрации. Пароль должен совпадать с
паролем того пользователя, который запустил демон. По умолчанию опция выключена. |
<Anonymous directory> |
Создает анонимную учетную запись, directory - корневой каталог анонимного
сервера. |
AuthGroupFile path |
Позволяет указать путь к альтернативному файлу group. По умолчанию
используется файл /etc/group |
AuthUserFile path |
Указывает альтернативный файл passwd |
Bind address |
Разрешает привязку дополнительного IP-адреса к основному или виртуальному
хосту. |
DefaultRoot directory |
Задает корневой каталог по умолчанию |
Deny from all | host | network |
Запрещает доступ к серверу. Блок Limit |
DenyAll |
Запрещает анонимным пользователям доступ к объектам, указанным в блоке
Limit |
DenyUser user_list |
Запрещает доступ определенным пользователям |
<Directory> path |
Используется в VirtualHost, Anonymous для того, чтобы определить особенные
параметры доступа к каталогу и его подкаталогам |
DisplayFirstChdir filename |
Текстовый файл filename будет выводиться, когда пользователь впервые
за время сеанса войдет в данный каталог. Используется в VirtualHost, Directory,
Anonymous |
DisplayLogin filename |
Этот файл будет отображен, когда пользователь зарегистрируется |
<Global> |
Используется для задания параметров, которые будут использоваться как
основным, так и всеми виртуальными серверами |
<Limit command> |
Ограничение на выполнение данной FTP-команды, например LOGIN, WRITE |
MaxClients number | none | message |
Ограничение на количество клиентов. Message будет отображено, если
пользователю будет отказано в доступе. Блоки Anonymous, Global |
MaxLoginAttempts |
Максимальное количество попыток зарегистрироваться. По умолчанию 3.
Блоки VirtualHost, Global |
Order allow, deny | deny, allow |
Порядок выполнения директив Allow и Deny в блоке Limit |
PersistentPassword on | off |
При значении on будут использованы системные файлы /etc/passwd и /etc/group,
несмотря на то, что командой chroot корневой каталог был изменен. |
RequireValidShell on | off |
Разрешает или запрещает регистрацию при использовании оболочек (shells),
которые не указаны в файле /etc/shells |
ServerAdmin email |
Определяет email администратора сервера. |
ServerType |
Определяет режим работы сервера standalone (по умолчанию) или inetd.
В первом случае сервер будет запускаться автоматически из стартовых сценариев
системы, во втором - его будет запускать сервер inetd при попытке соединения. |
TimeoutIdle seconds |
Время в секундах, в течение которого пользователь имеет право не проявить
активности. По умолчанию 60 (1 минута). |
User username |
Имя пользователя, присвоенное демону ProFTP |
UserAlias Alias User |
Создает псевдоним (alias) для пользователя (user) |
<VirtualHost address> |
Создает виртуальный сервер |
Организация виртуальных FTP-узлов с помощью wu-ftp
По сравнению с демоном ProFTP, демон wu-ftp имеет не столь богатые возможности в конфигурировании и поддержке
виртуальных узлов.
Поддержку виртуальных узлов можно включить командой virtual в файле конфигурации wu-ftp /etc/ftpaccess.
virtual address
Данная команда разрешает использование виртуального FTP-узла.
Источник - SoftТерра, http://www.softerra.ru
|