Файл настроек ASB-сервера хранится в формате INI-файла. INI-файл делится
на секции, секция - это блок строк текста
от одного наименования секции до другого.
Наименования секции заключаются в
квадратные скобки. Если первый значимый
символ строки - точка с запятой, такая
строка считается комментарием. Как правило
(не всегда!) строка INI-файла выглядит так: параметр=значение
.
В файле настроек ASB-сервера для имен параметров, значений параметров, имен секций принята ANSI 1251-кодировка; имена секций и параметров понимаются регистронезависимо.
Ниже подробнее описаны секции и параметры файла настроек сервера.
Содержит настройки сервера для обслуживания по asbp/asbps-протоколу.
Имя параметра | Область значений | Значение по умолчанию | Описание |
---|---|---|---|
Authorization | Yes/No |
|
Должен ли ASBP-сервер авторизовать подключения. Под Windows 95, 98 и ME это невоможно |
AuthenticationProviders | Список протоколов аутентификации через запятую или точку с запятой. Допустимые протоколы: NTLM, Negotiate, Kerberos | "Negotiate, NTLM" | Список провайдеров аутентификации по умолчанию для протокола ASBP |
AvoidAnonymousAccessAccountInfo | Yes/No | Yes | Флаг "избегать анонимного доступа к учетной информации" |
AsbRoot | Имя локального каталога | Каталог расположения главного модуля сервера asbsrv.exe | Корневой каталог ASB-сервера. От этого каталога интерпретируется относительный путь к серверным RED-файлам проекта. |
OnlySoftTRNKeepTRNSlices | Yes/No | Yes | Значение Yes: "не уничтожать в памяти сервера срезы завершенных
транзакций, если они завершились позже, чем началась
мягкая незавершенная
транзакция". Значение No: "не уничтожать в памяти сервера срезы завершенных транзакций, если они завершились позже, чем началась любая (мягкая или жесткая) незавершенная транзакция". |
Содержит настройки сервера для обслуживания по http-протоколу.
Имя параметра | Область значений | Значение по умолчанию | Описание |
---|---|---|---|
Authorization | Yes/No |
|
Должен ли HTTP-сервер авторизовать подключения. Под Windows 95, 98 и ME это невоможно |
AuthenticationProviders | Список протоколов аутентификации через запятую или точку с запятой. Допустимые протоколы: NTLM, Negotiate | "Negotiate, NTLM" | Список провайдеров аутентификации по умолчанию для протокола HTTP |
AvoidAnonymousAccessAccountInfo | Yes/No | Yes | Флаг "избегать анонимного доступа к учетной информации" |
WebRoot | Имя локального каталога | Каталог расположения главного модуля сервера asbsrv.exe | Корневой каталог HTTP-сервера. URL запроса интерпретируется относительно этого каталога |
DefaultPage | Имя файла | "default.htm" | Имя файла по умолчанию. Если ресурс, на который указывает URL запроса, является каталогом, сервер попытается найти в этом каталоге файл по умолчанию. Если такого файла нет, сервер вернет страницу, содержащую структуру каталога |
AsbHtmlFileExt | Строка | ".ahm;.asbhtml" | Расширения по умолчанию для HTML-файлов, содержащих ASB-спецтеги. Содержимое такого файла предобрабатываются сервером перед отправкой клиенту |
AdministrativePrivilege | Строка | "" (т.е. никто не имеет административных привилегий) | Список групп и пользователей (через запятую или точку с запятой), которые имеют административные привилегии при работе с сервером по HTTP-протоколу. |
Содержит общие настройки для asbp и http-серверов.
Имя параметра | Область значений | Значение по умолчанию | Описание |
---|---|---|---|
SimulateBase64DecodeOutLenBug | Yes/No | No | В процессе аутентификации имитировать ошибку, имевшую место в процедуре декодирования Base64 до версии 14.21.1. |
LogLevel | None/Debug/Verbose | None | Уровень протоколирования отладочных сообщений сервера. Протоколирование осуществляется одновременно в файл asbsrv.log и на консоль сервера (последнее только в отладочном режиме). Ключи командной строки сервера -debug и -verbose перекрывают значение данного параметра. |
AccumulateSynchrObjectsStatistics | Yes/No | No | Надо ли собирать статистику использования объектов синхронизации. Эту статистику можно получить, вызвав ASL-процедуру GETSERVERSYNCHROBJECTSSTATISTICS. |
Содержит настройки SSL-протокола. Эти настройки являются общими для всех защищенных каналов сервера. Какой канал защищается SSL-протоколом, а какой - нет, определяется в другой секции.
Имя параметра | Область значений | Значение по умолчанию | Описание |
---|---|---|---|
SSL2 | Yes/No | No | Разрешается ли серверу использовать протокол SSLv2 |
PCT1 | Yes/No | No | Разрешается ли серверу использовать протокол PCTv1 |
SSL3 | Yes/No | No | Разрешается ли серверу использовать протокол SSLv3 |
TLS1 | Yes/No | No | Разрешается ли серверу использовать протокол TLSv1 |
MinCipherStrength | Число бит | 0 | Минимально допустимая длина сеансового ключа шифрования в битах |
Если все SSL-протоколы запрещены, сервер выберет набор разрешенных протоколов по собственному усмотрению.
Данная секция является необязательной. Если секция опущена, сервер самостоятельно выберет набор разрешенных протоколов и будет допускать любую длину сеансового ключа. Настройки секции служат для усиления секретности: можно запретить использовать "устаревшие" протоколы SSLv2 и PCTv1, а также "ненадежные" 40-битные сеансовые ключи. Однако если, например, клиент поддерживает только 40-битное шифрование, он не сможет связаться с сервером.
Эти секции содержат определения виртуальных папок для ASBP и HTTP-серверов. Определение подключает реальную папку, находящуюся вне корневого каталога, к корневому каталогу под именем виртуальной папки. Благодаря виртуальным папкам проекты можно хранить на разных дисках сервера. При считывании секции контролируется как вхождение виртуальной папки в корневую, так и невхождение реальной папки в корневую. Формат определения таков.
ВиртуальнаяПапка = РеальнаяПапка
В ходе разбора виртуального пути, т.е. пути к проекту (ASBP-сервер) или ресурсу (HTTP-сервер), перебираются все виртуальные папки и выбирается наиболее подходящая. Если ни одна виртуальная папка не подходит, предполагается, что искомый объект находится в пределах корневой папки. Рассмотрим сказанное на примере.
[ASBP Server] ... AsbRoot = C:\Appl ... [ASBP Server\Path Translation] Virtual\Virtual2 = E:\Appl Virtial = D:\Appl
Для приведенных выше настроек
"Virtual\X1\X1.red"
(т.е. LocationAtServer="Virtual\X1") соответствует реальному
пути "D:\Appl\X1\X1.red"
;"Virtual\Virtual2\X2\X2.red"
соответствует реальному пути
"E:\Appl\X2\X2.red"
;"X3\X3.red"
соответствует
"C:\Appl\X3\X3.red"
.Эти секции содержат списки разрешений на подключение клиентов соответственно для asbp и http-серверов. Для конкретных адреса и порта сервера и некоторого диапазона адресов клиента, разрешение задает, во-первых, список пользователей и групп, которые имеют право подключения к серверу, во-вторых, тип протокола (asbp или http - косвенно, по имени секции), необходимость защиты канала связи протоколом SSL и данные для поиска сертификата сервера в системном хранилище.
[ASBP Server\Bind Addresses] ... 192.168.0.1:5401-255.255.255.0&192.168.0.0=Schannel(CN, d3nt02, LocalMachine, MY):AuthenticationProviders(Negotiate, NTLM):$(UserDomain)\AP_InetUsers ...
Приведенное выше разрешение следует читать так. Если к адресу сервера 192.168.0.1 и порту 5401 подключается клиент с адреса 192.168.0.XXX (XXX - любое число), такого клиента следует аутентифицировать при помощи протокола аутентификации Negotiate или NTLM (на выбор клиента), аутентифицированный клиент должен быть членом группы AP_InetUsers своего домена, общаться с ним следует по протоколу asbps, в ходе SSL-рукопожатия сервер должен предъявить клиенту сертификат, выданный на имя d3nt02, каковой сертификат серверу следует разыскать в личном (MY) хранилище сертификатов локального компьютера.
Ниже приведено формальное описание синтаксиса разрешения на подключение.
Admission = ServerIPAddrOrHostName [ ":" ServerPort [ "-" SubNetMask [ "&" ClientIPAddrOrHostName ] ] ] "=" [ SchannelPrefix ] [ AuthenticationProvidersPrefix ] GroupsAndUsersList
ServerIPAddrOrHostName = IAddrOrHostName
ClientIPAddrOrHostName = IAddrOrHostName
IAddrOrHostName = IPAddress | HostName
SchannelPrefix = "Schannel" "(" CertSearchCriteria "," CertSearchValue [ "," SystemCertStoreType [ "," SystemCertStoreName ] ] ")" ":"
AuthenticationProvidersPrefix = "AuthenticationProviders" "(" [ AuthenticationProvider { "," AuthenticationProvider } ] ")" ":"
AuthenticationProvider = NTLM | Negotiate | Kerberos
CertSearchCriteria = CN | SHA1 | MD5
SystemCertStoreType = "LocalMachine" | "CurrentUser"
GroupsAndUsersList = [ GroupOrUser { GroupsAndUsersSeparator GroupOrUser } ]
GroupsAndUsersSeparator = ";" | ","
GroupOrUser = GroupOrUserName | GroupOrUserSID
Описание компонентов разрешения.
Компонент | Описание | Значение по умолчанию | |
---|---|---|---|
Протокол ASBP | Протокол HTTP | ||
ServerIPAddrOrHostName | IP-адрес или имя хоста сервера | ||
ServerPort | Порт сервера | 5301/5401 | 80/443 |
SubnetMask | Маска исходящей подсети, в паре с ClientIPAddrOrHostName определяет исходящую подсеть. Разрешение относится только к подключениям из заданной исходящей подсети | 0.0.0.0 | |
ClientIPAddrOrHostName | Адрес исходящей подсети (или имя хоста вместо адреса); в паре с SubnetMask определяет исходящую подсеть. Разрешение относится только к подключениям из заданной исходящей подсети | ServerIPAddrOrHostName | |
SchannelPrefix | Если данный компонент разрешения - префикс секретного канала - присутствует, сервер должен общаться с клиентом по защищенному каналу связи. В скобках задаются через запятую четыре параметра поиска сертификата: критерий поиска, значение, тип и ID хранилища. Значение поиска зависит от критерия поиска: для критерия CN задается общее имя, для критериев SHA1 и MD5 - хэш сертификата в виде последовательности шестнадцатиричных значений байтов. Два последних параметра - необязательные: по умолчанию сервер разыскивает сертификат в личном (MY) хранилище компьютера. | Префикс секретного канала не задан, т.е. незащищенный канал | |
GroupsAndUsersList | Список групп и пользователей из домена сервера или доверяемых доменов, которым разрешено подключение по соответствующему протоколу. Разделитель в списке - точка с запятой или запятая. Разрешается использовать имена глобальных и локальных групп и пользователей, а также имена встроенных участников безопасности. Разрешено указывать SID вместо имени. Определены макроподстановки для исключения зависимости от версии и локализации Windows NT/2000/XP. Полный список макроподстановок см. список макросов локализации. | "" (пустой список) |
Список макросов локализации.
Имя макроса | Security ID (SID) | Значение макроса в английской версии Windows NT | Значение макроса в русской версии Windows NT | Описание |
---|---|---|---|---|
Имена доменов | ||||
$(UserDomain) | Имя домена аутентифицированного пользователя | |||
$(ServerDomain) | Имя домена сервера | |||
$(ServerName) | Имя сервера | |||
Универсальные встроенные участники безопасности | ||||
$(Null) | S-1-0-0 | "Null SID" | "Null SID" | Встроенная группа, в которую никто не входит |
$(Everyone) | S-1-1-0 | "Everyone" | "Все" | Встроенная группа, в которую входят все пользователи |
$(World) | S-1-1-0 | "Everyone" | "Все" | Встроенная группа, в которую входят все пользователи |
$(Local) | S-1-2-0 | "Local" | "Локальные" | Встроенная группа, в которую входят все зарегистрированные локально (на сервере) пользователи |
NT Authority | ||||
$(Dialup) | S-1-5-1 | "NT Authority\Dialup" | "NT Authority\Удаленный доступ" | Все пользователи, подключившиеся по dial-up |
$(Network) | S-1-5-2 | "NT Authority\Network" | "NT Authority\Сеть" | Все пользователи, подключившиеся по локальной сети |
$(Batch) | S-1-5-3 | "NT Authority\Batch" | "NT Authority\Пакетные файлы" | Все пользователи, зарегистрировавшиеся на сервере неинтерактивно |
$(Interactive) | S-1-5-4 | "NT Authority\Interactive" | "NT Authority\Интерактивные" | Все пользователи, зарегистрировавшиеся на сервере интерактивно |
$(Service) | S-1-5-6 | "NT Authority\Service" | "NT Authority\Служба" | |
$(AnonymousLogon) | S-1-5-7 | "NT Authority\Anonymous Logon" | "NT Authority\Анонимный вход" | Пользователь "Анонимный вход" |
$(Proxy) | S-1-5-8 | "NT Authority\Proxy" | "NT Authority\Proxy" | |
$(AuthenticatedUsers) | S-1-5-11 | "NT Authority\Authenticated Users" | "NT Authority\Прошедшие проверку" | |
$(TerminalServer) | S-1-5-13 | "NT Authority\Terminal Server" | "NT Authority\Пользователи сервера терминалов" | Группа пользователей, зарегистрированных на сервере терминалов |
$(LocalSystem) | S-1-5-18 | "NT Authority\System" | "NT Authority\System" | Пользователь Local System, под этой учетной записью обычно работают службы |
$(LocalService) | S-1-5-19 | "NT Authority\LocalService" | "NT Authority\LocalService" | Пользователь Local Service, под этой учетной записью работают некоторые службы под Window XP и выше |
$(NetworkService) | S-1-5-20 | "NT Authority\NetworkService" | "NT Authority\NetworkService" | Пользователь Network Service, под этой учетной записью работают некоторые службы под Window XP и выше |
Алиасы | ||||
$(Admins) | S-1-5-32-544 | "Builtin\Admins" | "Builtin\Администраторы" | Группа локальных администраторов |
$(Users) | S-1-5-32-545 | "Builtin\Users | "Builtin\Пользователи" | Группа локальных пользователей |
$(Guests) | S-1-5-32-546 | "Builtin\Guests | "Builtin\Гости" | Группа локальных гостей |
$(PowerUsers) | S-1-5-32-547 | "Builtin\Power Users | "Builtin\Опытные пользователи" | Локальная группа “опытные пользователи” |
$(AccountOperators) | S-1-5-32-548 | "Builtin\Account Operators | "Builtin\Операторы учетной информации" | Локальная группа ”операторы учетной информации” |
$(SystemOperators) | S-1-5-32-549 | "Builtin\System Operators" | "Builtin\Системные операторы" | Локальная группа ”системные операторы” |
$(PrintOperators) | S-1-5-32-550 | "Builtin\Print Operators" | "Builtin\Операторы печати" | Локальная группа ”операторы печати” |
$(BackupOperators) | S-1-5-32-551 | "Builtin\Backup Operators" | "Builtin\Операторы архива" | Локальная группа ”операторы архива” |
$(Replicator) | S-1-5-32-552 | "Builtin\Replicator" | "Builtin\Репликатор" | Локальная группа ”репликатор” |
Относительные (относительно домена) | ||||
Domain\$(Administrator) | S-1-5-21-…-500 | "Domain\Administrator" | "Domain\Администратор" | Пользователь - администратор домена |
Domain\$(Guest) | S-1-5-21-…-501 | "Domain\Guest" | "Domain\Гость" | Пользователь - гость домена |
Domain\$(DomainAdmins) | S-1-5-21-…-512 | "Domain\Domain Admins" | "Domain\Администраторы домена" | Глобальная группа - администраторы домена |
Domain\$(DomainUsers) | S-1-5-21-…-513 | "Domain\Domain Users" | "Domain\Пользователи домена" | Глобальная группа - пользователи домена |
Domain\$(DomainGuests) | S-1-5-21-…-514 | "Domain\Domain Guests" | "Domain\Гости домена" | Глобальная группа - гости домена |
Domain\$(SchemaAdmins) | S-1-5-21-…-518 | "Domain\Schema Admins" | "Domain\Администраторы схемы" | Глобальная группа - администраторы схемы |
Domain\$(EnterpriseAdmins) | S-1-5-21-…-519 | "Domain\Enterprise Admins" | "Domain\Администраторы предприятия" | Глобальная группа - администраторы предприятия |
Domain\$(PolicyAdmins) | S-1-5-21-…-520 | "Domain\Policy Admins" | "Domain\Администраторы системных политик" | Глобальная группа - администраторы системных политик |
Порядок применения разрешений сервером.
Рассмотрим пример задания списков разрешений.
[ASBP Server\Bind Addresses] ;Подключение с локального компьютера к порту 5301 разрешено ;всем членам AP_Users без использования SSL localhost:5301=$(UserDomain)\AP_Users ;Подключение из локальной сети к порту 5301 разрешено ;всем членам AP_Users без использования SSL 192.168.0.1:5301-255.255.255.0&192.168.0.0=$(UserDomain)\AP_Users ;Подключение из Интернета по внешнему адресу разрешено всем членам ;AP_InetUsers с использованием SSL. Сервер будет предъявлять клиенту ;сертификат на имя c43.autopark.ru 212.119.108.250:5401=Schannel(CN, c43.autopark.ru):$(UserDomain)\AP_InetUsers
Прочие секции описывают параметры активных ресурсов HTTP-сервера и изменяются только программистами ASB.