В предыдущей части была рассмотрена система контроля доступа к веб-ресурсам DACS, были введены основные понятия и принципы работы. Осталось теперь проверить ее в работе.
Проект придерживается строгих правил распространяя, только исходные тексты DACS, и рекомендует с их помощью полностью пересобрать всю систему . На сайте проекта OMSE (http://www.omse.de/download/download-dacs-ix-07-2006.shtml.en) удалось найти прекомпилированные пакеты версии DACS 1.4.11 для Debian 3.1 и Fedora Core 4, которые шли в качестве приложения к статье «DACS: Nur f?r Mitglieder» в немецком IT журнале для професионалов IX (http://www.heise.de/ix). Версии 1.4.11 и 1.4.13а имеют отличия, но если цель знакомство с системой DACS, то первоначально можно воспользоваться и этими пакетами, что позволит сосредоточится больше на функциональности, чем настройке. Мы же не ищем легких путей и будет устанавливать DACS с исходных текстов.
Для установки кроме самого DACS понадобятся исходные тесты:
- веб-сервер Apache – рекомендуемой версией, является 2.0.58 или 2.2.2, с последней DACS начал работать начиная с 1.4.13а, и еще не до конца протестирован, поэтому вполне вероятно возможны проблемы при установке и работе (по крайней мере у меня они были).
- библиотека OpenSSL, разработчики рекомендуют 0.9.8b, хотя и с 0.9.8а проблем не было.
- библиотека синтаксического анализа XML Expat, рекомендуемой версией является 2.0.
Кроме того в зависимости от требуемой функциональности вам могут понадобится и другие пакеты установка, которых опциональна. Так если планируется сохранение конфигурации в базе данных, то потребуется Berkeley DB, gdbm, или ndbm. Для включения NTLM понадобится пакет Samba, а возможность работы с LDAP или Active Directory реализуется посредством пакета OpenLDAP. Но при первой настройке лучше всего ограничиться только базовым набором, постепенно разобравшись с настройками уже можно установить полнофункциональную систему.
В большинстве систем уже имеются библиотеки OpenSSL, если их в системе нет, установить их очень просто.
$ cd openssl-0.9.8a/
$./config –prefix=/opt
$ make; make test
# make install
Теперь очередь веб-сервера. Конфигурировать его необходимо с опцией –enable-ssl, остальные опции по необходимости. Чтобы не повлиять на работу основного Apache, тестовую версию я установил в отдельный каталог.
$ cd apache-2.0.58
$./configure –enable-ssl –with-ssl=/opt/ssl -prefix=/opt/apache2
После чего стандартные make и make install. По умолчанию поддержка ssl компилируются статистически, проверить встроенные модули можно командой.
# /opt/bin/apachectl -l
mod_so.c
…
mod_ssl.c
Если поддержка ssl компилировалась как динамически загружаемый модуль (Dynamic Shared Object), то при дальнейшей настройке необходимо проследить, чтобы при помощи директивы LoadModule в файле веб-сервера httpd.conf, mod_ssl загружался перед mod_auth_dacs. Иначе вы получите ошибку при запуске. Хотя настройкой Apache займемся, чуть позже. Теперь для веб-сервера необходимо сгенерировать сертификаты и ключи.
# /opt/bin/openssl req -config /opt/ssl/openssl.cnf -new -x509 -keyout gw-ca.pem -out gw-ca.pem -days 365
Generating a 1024 bit RSA private key
…….++++++
writing new private key to ‘gw-ca.pem’
Далее выбираем пароль и отвечаем на стандарные вопросы скрипта (страна, организация, почтовый адрес и пр.). Разделяем ключ и сертификат, убираем пароль с ключа.
# /opt/bin/openssl rsa -in gw-ca.pem -out gw-ca.key
Enter pass phrase for gw-ca.pem:
writing RSA key
# /opt/bin/openssl x509 -in gw-ca.pem -out gw-ca.crt
И копируем сертификат и ключ на своем место.
# cp ./gw-ca.crt /opt/conf/server.crt
# cp ./gw-ca.key /opt/conf/server.key
Все настройки SSL по умолчанию описываются в секции.
<IfModule mod_ssl.c>
Include /opt/conf/ssl.conf
</IfModule>
Если заглянуть в файл ssl.conf, в нем файлы сертификата и ключа, указываются следующими переменными.
SSLCertificateFile /opt/conf/ssl.crt/server.crt
SSLCertificateKeyFile /opt/conf/ssl.key/server.key
После этих действия Apache, должен нормально работать через SSL, для чего соединяемся при помощи браузера или telnet к 443 порту.
Теперь Expat. Здесь все стандартно.
$ cd expat-2.0.0
$ ./configure; make
# make install
После чего следует добавить путь к библиотеке /opt/expat/lib в файл /etc/ld.so.conf и дать команду
# /sbin/ldconfig
Распаковывем архив с исходными текстами. Конфигурационный скрипт находится в подкаталоге src. Для просмотра всех опций конфигурирования вводим.
$ cd dacs-1.4.13a
$ src/configure –help
Опций много, необходимости в выборе всех нет. Я использовал следующие параметры при конфигурировании.
$ src/configure –with-ssl=/opt –with-expat=/opt/expat –with-apache=/opt/apache2
–enable-unix-auth –enable-debug –enable-apache-auth –enable-native-auth –prefix=/opt/dacs –enable-ndbm=no –enable-bdb=no
Опции with-ssl, with-expat и with-apache, указывают на каталоги в которых установленны соответствующие приложения, а prefix – куда установить сам DACS. Все виды аутендификации можно включить при помощи параметра enable-all-auth, сейчас все возможности нам не нужны поэтому включаем аутендификацию Unix и Apache, опциями enable-unix-auth, enable-native-auth и enable-apache-auth. По умолчанию поддержка ndbm и Berkeley DB включена и если они не установлены в системе при конфигурировании будет выдана ошибка, поэтому отключаем их поддержку. Если все прошло нормально строим зависимости.
$ gmake depend
Кстати теперь можно получить помощь по компиляции mod_auth_dacs вызвав make help. Модуль mod_auth_dacs можно построить с тремя возможными параметрами, добавляющими информацию о DACS в строку ответа сервера. Для включения вывода всей информации используйте make tag, для частичной – make smalltag, и для того чтобы в ответе не было упоминания о работе DACS – make notag. Я пробовал при помощи Google проверить на скольких серверах установлен DACS и нашел только один сервер. Получается два варианта, либо DACS малоизвестен, либо собирается с опцией notag, как более безопасной.
$ gmake smalltag
# gmake install
Скрипт сначала запрашивает пользователя и группу владельцев файлов DACS.
Which user name/id should own DACS files [sergej]? apache2
Which group name/id should own DACS files [www]? apache2
/opt/dacs/lib
/etc/ld.so.conf
NOTES:
* /opt/apache2/cgi-bin/dacs/local_unix_authenticate may need to be
setuid or setgid in order to check passwords:
chown root /opt/apache2/cgi-bin/dacs/local_unix_authenticate
chmod u+s /opt/apache2/cgi-bin/dacs/local_unix_authenticate
* /opt/apache2/cgi-bin/dacs/local_apache_authenticate may need to be
setuid or setgid in order to check passwords:
chgrp www /opt/apache2/cgi-bin/dacs/local_apache_authenticate
chmod g+s /opt/apache2/cgi-bin/dacs/local_apache_authenticate
* Run ‘make install-autologin’ if you require autologin
* Check that /opt/dacs/man is on your MANPATH
* DACS version info:
number=»1.4″
release=»1.4.13a»
date=»Release date 2-Jun-06 12:12:28″
revid=»$Id: dacs-stamp-h 1218 2006-06-02 19:15:04Z brachman $»
other=»Expat 2.0.0, OpenSSL 0.9.8a 11 Oct 2005, Apache 2.0.58″
Последний вывод получен при помощи утилита version, которая доступна также как веб-сервис dacs_version, позволяющая проверки версии DACS и опций конфигурирования. Ее можно вызвать отдельно.
# /opt/dacs/bin/version -v
./version: error while loading shared libraries: libexpat.so.1: cannot open shared object file: No such file or directory
Такая ошибка возникла по причине того, что строка определяющая местонахождение библиотеки expat не занесена в файл /etc/ld.so.conf и DACS не может ее загрузить.
После этого убедитесь, что в httpd.conf добавилась строка загружающая модуль.
# cat httpd.conf | grep LoadModule
LoadModule auth_dacs_module modules/mod_auth_dacs.so
Теперь можно запустить веб-сервер и проверить правильность работы модуля.
# /opt/apache2/bin/apachectl start
Проверить можно несколькими способами,
Самым простым является журнал работы веб-сервера, котором должна появиться такая запись.
[Wed Jun 14 10:33:00 2006] [notice] Apache/2.0.58 (Unix) mod_ssl/2.0.58 OpenSSL/0.9.8a mod_auth_dacs/1.4.13a configured — resuming normal operations
Хотя для работы с SSL в комплекте DACS имеется утилита sslclient, позволяющая получить аналогичный вывод.
# /opt/dacs/bin/sslclient testserver.net:443
Все сервер работает, осталось только указать на каталоги, которые будут защищены DACS. В «DACS Quick Start Tutorial» для DACS настроен виртуальный сервер, мы тоже послупим аналогичным образом, так легче разобраться, что, где и как. Создадим виртуальный сервер testdacs.net, который будет слушать на 8080 порту. Для этого добавим в httpd.conf следующие строки.
# Разрешение к документам DACS
<Directory /opt/dacs/www/*>
Options Indexes FollowSymLinks
Order allow,deny
Allow from all
</Directory>
# Настраиваем виртуальный сервер и делаем доступными каталоги DACS
NameVirtualHost 127.0.0.1:8080
Listen 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
ServerName testdacs.net
DocumentRoot «/opt/dacs/www/»
ErrorLog «/opt/dacs/logs/error_log»
TransferLog «/opt/dacs/logs/access_log»
ScriptAlias /cgi-bin/ «/opt/apache2/cgi-bin/dacs/»
Alias /css «/opt/dacs/www/css/»
Alias /icons/ «/opt/apache2/icons/»
Alias /dacs «/opt/dacs/www/»
Alias /dtd-xsd «/opt/dacs/www/dtd-xsd/»
Alias /examples «/opt/dacs/www/examples/»
Alias /handlers «/opt/dacs/www/handlers/»
Alias /man «/opt/dacs/www/man/»
Alias /misc «/opt/dacs/www/misc/»
Alias /mod «/opt/dacs/www/mod/»
</VirtualHost>
В качестве примера создадим одну федерацию, назовем ее DACSTEST, и сопоставим ее с доменом testdacs.net. Для упрощения федерация будет состоять из одной юрисдикции – FIRST. Во время работы DACS использует два файла: site.conf и dacs.conf. Первый является опциональным, в нем хранится информация о всех федерациях расположенных на узле. Второй, dacs.conf может описывать федерацию, юрисдикцию, узел. Каждый указанный элемент может иметь свой файл dacs.conf со своими настройками, или на узле может использоваться всего один dacs.conf, в котором все свалено в кучу. Разработчики рекомендуют использовать утилиту install, которая имеется в большинстве дистрибутивов, с ее помощью удобно контролировать права доступа к объектам, DACS очень чувствительный к этим параметрам. Если такой утилиты нет в комплекте имеется скрипт src/conftools/install-sh, как вариант можно использовать стандартные утилиты cp, chown, chgrp и chmod. Обратите внимание, что мы используем пользователя/группу apache2 от имени которых работает веб-сервер. Скопируем шаблонный файл site.conf-std, на свое место.
# install -g apache2 -m 0640 /opt/dacs/federations/site.conf-std /opt/dacs/federations/site.conf
Файл хорошо комментирован, многие параметры понятны, поэтому трогать его не будем. На время тестирования можно отключить SSL установив директиву SECURE_MODE в off, но в рабочей системе естеcтвенно она должна быть включена. Обратите внимание на каталоги в которых должны храниться настройки они описаны как:
${Conf::FEDERATIONS_ROOT}/${Conf::FEDERATION_DOMAIN}/${Conf::JURISDICTION_NAME}
То есть в нашем случае полный путь должен быть такой /opt/dacs/federations/testdacs.net/FIRST/.
Создадим файл dacs.conf для федерации.
# install -g apache2 -m 0660 /dev/null /opt/dacs/federations/dacs.conf
Теперь каталоги в которых будут храниться все асоциативные настройки федерации и юрисдикции FIRST.
# install -d -g apache2 -m 0770 /opt/dacs/federations/testdacs.net/
# install -d -g apache2 -m 0770 /opt/dacs/federations/testdacs.net/FIRST
Все списки контроля доступа и revocation list юрисдикции по умолчанию хранятся в подкаталоге acl.
# install -d -g apache2 -m 0770 /opt/dacs/federations/testdacs.net/FIRST/acls
# install -g apache2 -m 0660 /dev/null /opt/dacs/federations/testdacs.net/FIRST/acls/revocations
В подкаталогах groups записываются вся информация о том кто состоит в юрисдикции (FIRST) и федерации (DACS).
# install -d -g apache2 -m 0770 /opt/dacs/federations/testdacs.net/FIRST/groups \
/opt/dacs/federations/testdacs.net/FIRST/groups/FIRST /opt/dacs/federations/testdacs.net/FIRST/groups/DACS
Файл jurisdictions.grp, описывает все юрисдикции входящие в федерацию, в случае внесения изменений в этот файл он должен быть скопирован во все юрисдикции.
# install -g apache2 -m 0660 /dev/null /opt/dacs/federations/testdacs.net/FIRST/groups/DACS/jurisdictions.grp
Добавим в созданный jurisdictions.grp информацию о нашей юрисдикции.
<groups xmlns=»http://dss.ca/dacs/v1.4″>
<group_definition jurisdiction=»FIRST» name=»jurisdictions»
mod_date=»Tue, 26-Jun-2006 12:00:00 GMT» type=»public»>
<group_member jurisdiction=»FIRST» name=»DACS» type=»meta»
alt_name=»My First Test Jurisdiction»
dacs_url=»http://testdacs.net:8080/cgi-bin/dacs»
authenticates=»yes» prompts=»no»/>
</group_definition>
</groups>
А в /opt/dacs/federations/dacs.conf данные об федерации и юрисдикции.
<Configuration xmlns=»http://dss.ca/dacs/v1.4″>
<Default>
FEDERATION_DOMAIN «testdacs.net»
FEDERATION_NAME «DACSTEST»
LOG_LEVEL «info»
</Default>
<Jurisdiction uri=»testdacs.net»>
JURISDICTION_NAME «FIRST»
</Jurisdiction>
</Configuration>
В примере адрес федерации и юрисдикции совпадает, разделение идет на уровне ресурсов, как вариант можно разделять юрисдикции используя разные адреса, например first.testdacs.net. Чтобы не создавать множество конфигурационных файлов создадим для FIRST/dacs.conf символическую ссылку.
# ln -s /opt/dacs/federations/dacs.conf /opt/dacs/federations/ testdacs.net/FIRST/dacs.conf
Для проверки настроек в комплекте DACS идет специальная утилита conf, которая выведет результат слияния всех этих файлов.
# /opt/dacs/bin/conf -u testdacs.net -q
<Jurisdiction uri=»testdacs.net»>
JURISDICTION_NAME «FIRST»
FEDERATION_DOMAIN «testdacs.net»
AUTH_ERROR_HANDLER «* url /handlers/auth_failed.html»
HTTP_PROG «/opt/dacs/bin/http»
VERIFY_IP «no»
AUTH_SUCCESS_HANDLER «url /handlers/auth_ok.html»
AUTH_CREDENTIALS_DEFAULT_LIFETIME_SECS «43200″
FEDERATION_NAME «DACSTEST»
DTD_BASE_URL «/dtd-xsd»
XSD_BASE_URL «/dtd-xsd»
PASSWORD_DIGEST «SHA1″
SSL_PROG «/opt/dacs/bin/sslclient»
SSL_PROG_CA_CRT «/opt/apache2/conf/ssl.crt/server.crt»
SIGNOUT_HANDLER «url /handlers/signout_ok.html»
ALLOW_HTTP_COOKIE «no»
AUTH_FAIL_DELAY_SECS «2″
ACS_ERROR_HANDLER «* /handlers/acs_failed.html»
SECURE_MODE «on»
COOKIE_PATH «/»
NAME_COMPARE «case»
LOG_FILE «/opt/dacs/logs/FIRST-28-Jul»-06.log»
LOG_FILTER «filename exact DEBUG «crypto.c»"
LOG_LEVEL «info»
LOG_SENSITIVE «no»
NOTICES_ACCEPT_HANDLER «/handlers/notices_accepted.html»
NOTICES_DECLINE_HANDLER «/handlers/notices_declined.html»
NOTICES_ACK_HANDLER «»
NOTICES_SECURE_HANDLER «yes»
NOTICES_WORKFLOW_LIFETIME_SECS «120″
NOTICES_NAT_NAME_PREFIX «NAT-DACS»
VFS «[dtds]dacs-fs:/opt/dacs/www/dtd-xsd»
VFS «[federation_keys]dacs-fs:/opt/dacs/federations/testdacs.net/federation_keyfile»
VFS «[jurisdiction_keys]dacs-fs:/opt/dacs/federations/testdacs.net/FIRST/jurisdiction_keyfile»
VFS «[revocations]dacs-fs:/opt/dacs/federations/testdacs.net/FIRST/acls/revocations»
VFS «[acls]dacs-fs:/opt/dacs/federations/testdacs.net/FIRST/acls»
VFS «[dacs_acls]dacs-fs:/opt/dacs/acls»
VFS «[groups]dacs-fs:/opt/dacs/federations/testdacs.net/FIRST/groups»
VFS «[passwds]dacs-kwv-fs:/opt/dacs/federations/testdacs.net/FIRST/passwd»
VFS «[roles]dacs-kwv-fs:/opt/dacs/federations/testdacs.net/FIRST/roles»
AUTH_AGENT_ALLOW_ADMIN_IDENTITY «no»
LOG_FORMAT «[%t] [%l] [%p,%c,%F] [%sp:"%sm"]«
STATUS_LINE «off»
</Jurisdiction>
Параметры понятны. Обратите внимание на устанавленное по умолчанию время жизни credentials, которое составляет 43200 секунд – 12 часов, и на отключенную проверку IP-адреса в credentials.
Для создания ключей используется утилита mkkey. Ключи необходимо сгенерировать для федерации и каждой юрисдикции. Во избежание компроментации в дальнейшем лучше поручить эту процедуру cron, который будет менять ключи в наименее загруженое время (с учетом жизни credentials, чтобы никто не возмущался).
# install -g apache2 -m 0660 /dev/null /opt/dacs/federations/testdacs.net/federation_keyfile
# /opt/dacs/bin/mkkey -u testdacs.net -q /opt/dacs/federations/testdacs.net/federation_keyfile
Please check ownership and mode of ‘/opt/dacs/federations/testdacs.net/federation_keyfile’
Проверяем созданный ключ.
# cat /opt/dacs/federations/testdacs.net/federation_keyfile
<crypt_keys fed_id=»27-Jul»-2006@19:33:57,3375dd487ad8bb2430b37da395ecb2eb4290dbc2″ auth_key=»p3CEHQymtQi/PJJXW7/nm0″ hmac_key=»…UA/../» private_key=»…»/>
Все нормально. Повторяем процедуру для юрисдикции, но с другими опциями mkkey.
#install -g apache2 -m 0660 /dev/null /opt/dacs/federations/testdacs.net/FIRST/jurisdiction_keyfile
# /opt/dacs/bin/mkkey -uj FIRST /opt/dacs/federations/testdacs.net/FIRST/jurisdiction_keyfile
Please check ownership and mode of ‘/opt/dacs/federations/testdacs.net/FIRST/jurisdiction_keyfile’
В папке /opt/dacs/acls сейчас лежат списки контроля доступа используемые DACS по-умолчанию. Они в основном описывают параметры для стандартных веб-ресурсов. Трогать их не рекомендуется, для того чтобы переопределить правило, следует поместить файл с такм же именев в подкаталог acl юрисдикции.
Например, правило acl-prenv.0 разрешает доступ к cgi-скрипту prenv выдающему информацию о рабочем окружении, только администратору. Поэтому попытка запуска этого скрипта выдаст ошибку 403. Выглядит правило так.
<acl_rule>
<services>
<service url_expr=’»${Conf::dacs_cgi_bin_prefix}/prenv»‘/>
</services>
<rule order=»allow,deny»>
<allow>
dacs_admin()
</allow>
</rule>
</acl_rule>
Давайте разрешим всем просматривать эту информацию. Для этого создадим файл acl-prenv.0 переопределяющий это правило.
# install -g apache2 -m 0660 /dev/null /opt/dacs/federations/FIRST/acls/acl-prenv.0
И поместим в него следующие строки.
<acl_rule>
<services>
<service url_expr=’»${Conf::dacs_cgi_bin_prefix}/prenv»‘/>
</services>
<rule order=»allow,deny»>
<allow>
user(«any») # то есть всем
</allow>
</rule>
</acl_rule>
И чтобы модуль веб-сервера знал о том, что ему контролировать в конец секции VirtualHost которую мы создали ранее в файле httpd.conf, запишем следующие строки (параметры -t -v позволяют вывести отладочную информацию, которая ой как вам понадобится).
AddDACSAuth dacs-acs /opt/dacs/bin/dacs_acs «-t -v»
SetDACSAuthMethod dacs-acs external
SetDACSAuthConf dacs-acs «/opt/dacs/federations/dacs.conf»
<Location /cgi-bin/dacs>
AllowOverride AuthConfig
Require valid-user
Options ExecCGI
AuthType DACS
AuthDACS dacs-acs
</Location>
И перезапускаем Apache.
# /opt/apache2/bin/apachectl restart
Если набрать в веб-браузере http://testdacs.net:8080/cgi-bin/dacs/prenv вы должны увидеть результат работы скрипта. Причем к некоторым другим скриптам лежащим в этом же каталоге получить доступ вам не удасться, так как они защищены правилом acl-dacs.0 позволяющим работать с ними только пользователю с правами администратора.
Теперь заставим пользователя регистрироваться. Как уже говорилось в первой части DACS поддерживает несколько методов аутендификации, в том числе и свой. Изменим описание юрисдикции в файле dacs.conf, добавив в него данные позволяющие осуществлять аутендификацию при помощи паролей Unix.
<Jurisdiction uri=»testdacs.net»>
JURISDICTION_NAME «FIRST»
<Auth id=»passwd»>
URL «http://testdacs.net:8080/cgi-bin/dacs/local_unix_authenticate»
STYLE «pass»
CONTROL «sufficient»
</Auth>
</Jurisdiction>
Для регистрации используем подготовленную HTML форму доступную по адресу http://testdacs.net:8080/examples/login.html, где вводим системный логин и пароль.
Как вариант можно использовать и аутендификацию DACS заменив в файле строку local_unix_authenticate на local_passwd_authenticate. Для создания пароля DACS применяется утилита dacspasswd, роль ее аналогична команде htpasswd при помощи которой создаются пароли для пользователей веб-сервера Apache. Создадим файл в котором будут храниться пароли пользователей юрисдикции.
# install -g apache2 -m 0660 /dev/null /opt/dacs/federations/testdacs.net/FIRST/passwd
И теперь пароль для пользователя sergej.
# /opt/dacs/bin/dacspasswd -u testdacs.net -q -a sergej
New password for sergej?
Re-type new password for sergej?
Посмотрим, что получилось.
# cat /opt/dacs/federations/testdacs.net/FIRST/passwd
sergej:2|6Jc.6GFAiA15Rq6X|VbGuYg3H05MU4zzz4fCsvd1bqb1
Теперь пробуем зайти с новыми данными. Если все нормально, то вам будет выведена страница handlers/auth_ok.html, где вы можете просмотреть полученный credentials.
Вот он.
DACS:DACSTEST::FIRST:sergej=y/ZPRm4Yh………………убрано……………..mOikAoE
Если заглянуть внутрь cookie, то можно увидеть только имя пользователя в формате DACS, остальная информация зашифрована. При помощи утилиты cookie расшифруем полученный credentials.
# /opt/dacs/bin/cookie -u testdacs.net -decrypt < cookie
federation=’DACSTEST’
DACS username=’FIRST:sergej’
ip_address=»
roles=»
expires_secs=’1154148374′
auth_style=’generated’
valid_for=’acs’
version=’1.4′
В файле acl-prenv.0 изменим user(«any«) на user(«auth«). Если параметр изменяется в конфигурационном файле Apache, то для того чтобы он вступил в силу требуется перезапуск веб-сервера. При правке файлов DACS изменения будут актуальны уже при следующем запросе, поэтому перезапускать ничего не надо. Попробуем теперь получить доступ к prenv без регистрации и авторизовавшись в системе. В последнем случае credential делает свое дело и мы получаем доступ к требуемому ресурсу.
Загляни в журнал
При настройках описанных в статье DACS будет вести четыре файла журнала, которые расположены в каталоге /opt/dacs/logs. Три файла описывают все события, а файл имя которого начинается с FIRST и далее текущая дата, поможет разобраться с проишедшим в конкретной юрисдикции. В режиме отладки выдается большое количество информации, которая при внимательном анализе поможет разобраться с проблемой. Например такая запись, при наличии самого файла.
[Wed Jun 14 10:34:25 2006] [error] [8578,18,-] [dacs_acs:"conf"] Could not load config file ‘/opt/dacs/etc/dacs.conf’
Может свидетельствовать о том, что после правки изменились права доступа и модуль DACS не может его прочитать.
Если пользователь не допущен система проинформирует администратора.
[Fri Jul 28 18:57:12 2006] [notice] [8145,266,A] [dacs_acs:"dacs_acs"] *** Access denied to unauthenticated user (FkA74G32) for /cgi-bin/dacs/prenv
Или например, когда DACS не нашел описание ресурса (требуется testdacs.net).
[Thu Jul 27 18:43:32 2006] [error] [8459,1,-] [dacs_version:"conf"] Could not find config in «/opt/dacs/federations/dacs.conf» using service URI http://localhost:8080/cgi-bin/dacs/dacs_version
Не смотря на то, что DACS уже стоит и работает, чтобы окончательно разобраться требуется провести не один эксперимент, меняя параметры и отслеживая реакцию системы. Здесь открываются большие просторы для творческих фантазий. Следует добавить еще юрисдикций, хотя бы одну федерацию, передать между ними пользователя, поэкспериментировать с revocations list, несколькими пользователями, ролями. Только так можно будет ощущить мощь и гибкость этой системы. Успехов.