InetPowerServer


InetPowerServer
HTTP/FTP/SMTP/POP3 server
Автор: Terje Flaarønning
Сайт: www.inetpowerserver.com
Usergroup: Yahoo! group


InetPowerServer (www.inetpowerserver.com) — сервер, реализующий протоколы HTTP, FTP, SMTP и POP3 (планируется поддержка IMAP4). Существуют версии IPS для OS/2 и Windows NT/2k/XP (виндовая версия требует установки Regina REXX).

Настройку IPS нельзя назвать самоочевидной, поэтому ниже я постараюсь осветить основные моменты, связанные с установкой IPS и настройкой FTPD/SMTPD-компонентов.

Установка IPS

Загрузите последнюю версию IPS с www.inetpowerserver.com/filedownloads.html, распакуйте её в соответствующий каталог и запустите ips2.exe (ips32.exe в случае установки под Windows). Программа создаст нужные каталоги и дефолтные файлы конфигурации, после чего сервер начнёт работать. Немедленно остановите его клавишами Alt-X.

Все файлы, относящиеся к конфигурации сервера, размещены в каталоге config. Базовый файл конфигурации config\ips.cfg редактировать не нужно, если у вас нет твёрдого убеждения в необходимости внесения изменений. Займёмся настройкой вашего основного (и единственного после установки) сайта main (файл config\main\main.cfg).

Директивой ServiceSections в секции [GLOBAL] задайте те сервисы, которые вам нужны. Пример: ServiceSections=FTP-1 SMTP-1 для того, чтобы использовать только FTP- и SMTP-сервисы. Опционально отредактируйте значения директив SiteAdminMail и SiteDescription.

В секции [ACCESS] исправьте строчку .\config\main\vfs\ftp\*;admin;users;777;011; на .\config\main\vfs\ftp\*;admin;users;775;011;, если не хотите, чтобы пользователь anonymous имел право писать на ваш диск.

В каталоге config\main\users отредактируйте файлы admin и user, изменив дефолтные пароли на свои. Пример: Password=-My5uppaPa55w0rd (обратите внимание на знак минуса перед самим паролем; этот момент будет рассмотрен ниже).

Теперь можно приступать к настройке отдельных компонентов IPS.

Настройка FTPD

Базовая настройка состоит в том, что надо (1) определиться с каталогами, к которым вы будете предоставлять доступ по FTP, (2) завести пользователей и (3) раздать им нужные права на эти каталоги. Всё это делается на юниксный манер, и в этих операциях довольно легко запутаться, поэтому ниже я покажу пример создания профиля пользователя (user account), который можно взять за основу.

Итак, задача: создать пользователя 'Petya' с паролем 'DerParole' и дать ему право читать каталог F:\Archives и право читать и писать в каталог D:\temp\uploads. Petya имеет право обращаться к FTP из локальной сети 192.168.16.0 или с домашнего адреса 212.85.0.6.

Для начала надо определиться с каталогами.

1. Виртуальная файловая система (VFS)

Виртуальная файловая система (VFS) позволяет организовать для каждого пользователя дерево виртуальных каталогов, к которым он будет иметь доступ. Из-за отсутствия симлинков в OS/2 приходится сначала создавать каталоги внутри config\main\vfs, а затем привязывать эти каталоги к реальным каталогам на вашем диске в секции [VFS] конфигурационного файла config\main\main.cfg.

Создадим для юзера 'Petya' два виртуальных каталога: incoming, куда он сможет писать, и pub, который он сможет только читать. Для этого каталоге config\main\vfs создадим подкаталог users, а в нём, в свою очередь, подкаталог Petya. Внутри config\main\vfs\users\Petya создадим подкаталоги incoming и pub.

Теперь привяжем эти виртуальные каталоги к реальным. В конец секции [VFS] конфигурационного файла config\main\main.cfg добавим следующие строки:

/users/Petya/incoming=D:\temp\uploads
/users/Petya/pub=F:\Archives
Note: для того, чтобы изменения в этом конфигурационном файле вступили в силу, требуется перезапуск IPS.

2. Создание профиля пользователя

Профили пользователей живут в каталоге config\main\users. Перейдите в этот каталог и скопируйте файл user в файл Petya. Теперь следует отредактировать этот файл. Изменённые строки подсвечены зелёным, добавленные — голубым.
# USER ACCOUNT FILE __________________________________________________________
# ____________________________________________________________________________
[USER]
Username=Petya
Fullname=Петя Мокин, юзер для примера
MemberOfGroups=users

Password=-DerParole
Secret=6387AD58
ChangePassword=0
APOPSecret=password

RootDirectory=/users/Petya
ClientAddress=192.168.16.* 212.85.0.6

# ____________________________________________________________________________
[ACCESS]

# Дать право юзеру читать его RootDirectory
.\config\main\vfs\users\Petya\*;Petya;users;500;177

# Задать права на доступные ему каталоги
D:\temp\uploads\*;Petya;users;700;177
F:\Archives\*;Petya;users;500;177

[--END--]
# END ________________________________________________________________________
Директивы Username и Fullname понятны без объяснений. Директива Password позволяет задать пароль пользователя, при этом есть одна тонкость. IPS по соображениям безопасности не пользуется незашифрованными паролями. Если вы задаёте пароль в незашифрованном виде, как в обсуждаемом случае, поставьте перед паролем знак минуса (-). При первом обращении пользователя к FTPD пароль будет зашифрован. Директива ChangePassword запрещает пользователю менять пароль.

Директива RoorDirectory задаёт виртуальный каталог в config\main\vfs, который увидит пользователь при логине (в обсуждаемом случае он увидит каталоги incoming и pub, лежащие в config\main\vfs\users\Petya). Директива ClientAddress задаёт адреса, с которых данному пользователю разрешён логин. Полный список директив и их описание смотрите в документации.

Строки в секции [ACCESS] задают права доступа данного пользователя к реальным каталогам на диске.

3. Права доступа

Необходимое примечание: IPS позволяет оперировать как пользователями, так и группами. Это верный способ усложнить себе жизнь, если у вас много разнородных пользователей; кроме того, у вас не юникс, где от понятий owner и group и их прав на все объекты файловой системы никуда не деться. Поэтому я препочитаю несколько более тупой и прямолинейный способ: все юзера, кроме admin и anonymous, относятся к группе users, и права раздаются каждому из пользователей отдельно в его профиле.

Итак, права доступа к определённому каталогу задаются следующим образом:

<маска пути>;<владелец>;<группа>;<права>;<ограничения>;
Права и ограничения задаются на юниксный манер трёхзначным восьмеричным числом (750, 532, etc.). Первая цифра задаёт права владельца (owner), в данном контексте — самого пользователя, вторая цифра — права группы, третья — права всех остальных. Точно так же задаются и ограничения. Ниже даны две таблицы с расшифровкой прав и ограничений.

Права  0
(---)
1
(--x)
2
(-w-)
3
(-wx)
4
(r--)
5
(r-x)
6
(rw-)
7
(rwx)
Чтение (r)  - - - - + + + +
Запись (w)  - - + + - - + +
Просмотр каталогов (x)  - + - + - + - +

Ограничения  0
(---)
1
(--d)
2
(-l-)
3
(-ld)
4
(e--)
5
(e-d)
6
(el-)
7
(eld)
Исполнение (e)
Отмена прав на исполнение (HTTP)
  - - - - + + + +
Листинг (l)
Отмена прав на просмотр каталогов (листинг)
  - - + + - - + +
Удаление (d)
Отмена прав на удаление
  - + - + - + - +

Вернёмся к правам нашего пользователя.

D:\temp\uploads\*;Petya;users;700;177
F:\Archives\*;Petya;users;500;177
Petya имеет права 7 (rwx) на содержимое D:\temp\uploads, т.е. может читать файлы из этого каталога, писать файлы в этот каталог и просматривать его. Для него предусмотрено ограничение 1 (--d), т.е. он не может стирать файлы в этом каталоге. На содержимое F:\Archives Petya имеет права 5 (r-x), т.е. может читать файлы из этого каталога и просматривать его, и так же не имеет права стирать файлы в этом каталоге.

Группа users, к которой принадлежит Petya, и все прочие юзеры имеют права 0 (---) на этот каталог, т.е. не имеют прав вообще. На самом деле неважно, какие права вы дадите группе и прочим — всё, что прописано в профиле пользователя, влияет только на него самого.

Изменения, вносимые в профиль пользователя, не требуют перезапуска IPS.

Настройка SMTPD

Пример настройки для хоста smtp.domain.ru в подсети 192.168.16.0:
[SMTP-1]
Protocol=smtpd
Address=192.168.16.170
ClientAddress=192.168.16.* 127.0.0.1
Host=smtp
ForwardAddress=192.168.16.* 127.0.0.1
QueueDirectory=.\queue\mail
LocalDomain=domain.ru
LocalDomains=@localhost
С помощью скрипта endmail Алекса Саморукова (Samm) можно рассылать почту через IPS из командной строки. Для того, чтобы использовать endmail в PHP, отредактируйте php.ini:
sendmail_path = X:/ips/endmail/endmail.cmd

Прочее

Здесь не рассмотрены вопросы более "продвинутой" настройки — удалённое администрирование, использование IPS в качестве мультидоменной почтовой системы, написание скриптов и т.п. Может быть, эти вопросы будут освещены позже.

Dmitry Ban
IRC nick: banshee


Интересные ссылки:
Комментариев к странице: 0 | Добавить комментарий
Домой | Проект ядро Core/2 | Проект OS/4 Download | Новости | Гостевая книга | Подробно обо всем | Нужные программы | Проекты | OS/2 FAQ | Всячина | За и Против | Металлолом | #OS2Russian | RDM/2 | Весёлые картинки | Наша галерея | Доска объявлений | Карта сайта | ПОИСК | ФОРУМ