Организация Web-доступа в среде zLinux на сервере z9 BC

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

?овая страница хостинга

 

Как видно из рисунков все хостинги отвечают на запрос браузера и работоспособны.

 

.3.3 Настройки авторизации и аутентификации

Аутентификация - это установление личности пользователя (имя пользователя не длиннее 255 символов и не может содержать символ ':'), а авторизация - проверка полномочий на выполнение каких-либо действий.

При аутентификации сервер определяет директивой ядра AuthName какой домен (realm) авторизации клиент должен использовать при аутентификации; выдаётся на экран при запросе имени и пароля. Директивой ядра AuthType определяется тип аутентификации. Basic - имя и пароль передаются по сети в открытом виде, если не прикрыть TLS/SSL или Digest. Аутентификация производится при каждом запросе, клиентская программа может скрывать это подставляя имя/пароль из кеша для одного и того же домена.

Директива AuthUserFile (DA) модуля auth определяет имя файла с паролями. Файл состоит из строк, содержащих имя пользователя и хешированный пароль (разделяются двоеточием). Директива AuthGroupFile (DA) модуля auth определяет имя файла с описанием групп пользователей. Файл состоит из строк, каждая из которых описывает одну группу. В начале строки указывается имя группы, затем двоеточие, затем список имён пользователей через пробел. Директива AuthAuthoritative (DA) позволяет при неудаче аутентификации передать запрос следующему модулю аутентификации (auth_ldap, auth_mysql), если указать "Off".

Модуль auth_dbm позволяет хранить имена, пароли и списки групп в DBM, что значительно ускоряет работу сервера при большом количестве пользователей в списках. Директива AuthDBMUserFile (DA) определяет имя файла с паролями (ключ - имя пользователя, значение - пароль). Директива AuthDBMGroupFile (DA) определяет имя файла c описанием групп пользователей (ключ - имя пользователя, значение - список групп через запятую). Директива AuthDBMType (DA) позволяет явно задать тип DBM: default, SDBM, GDBM, NDBM, DB. Директива AuthDBMAuthoritative (DA) позволяет при неудаче аутентификации передать запрос следующему модулю аутентификации (auth_ldap, auth_mysql), если указать "Off".

Модуль auth_digest позволяет использовать аутентификацию типа Digest. Директива AuthDigestAlgorithm (DA) определяет вариант алгоритма (MD5 или MD5-sess). Директива AuthDigestFile (DA) определяет имя файла с паролями. Директива AuthDigestGroupFile (DA) определяет имя файла с описанием групп пользователей. Директива AuthDigestDomain (DA) позволяет задать список URL через пробел, которые относятся к одному домену. URL из списка рассматриваются клиентом как префикс в адресном пространстве и используются для оптимизации. Имеется множество директив (недоделанных) по тонкой настройке процесса аутентификации.

Предварительно необходимо создать файл паролей в месте, недоступном для извлечения с сайта. Для создания файла используются утилиты htpasswd (аутентификация Basic, текстовые файлы), htdigest (аутентификация Digest, текстовые файлы), htdbm (аутентификация Basic и DBM).

Добавление (изменение, удаление) пользователя в файл: имя-файла-с-паролями имя-пользователя

Ключи:

c (создавать файл с паролями)

d (использовать crypt() вместо хеширования MD5)

m (использовать хеширование MD5 вместо crypt())

D (удалить запись из файла)

Вывод созданной записи на stdout вместо записи в файл (можно использовать ключи -d и -m): -n имя-пользователя

Утилита htdigest позволяет добавить пользователя в текстовый файл паролей для аутентификации типа Digest (ключ -c создаёт файл): имя-файла-с-паролями realm имя-пользователя

Директива ядра Require позволяет задать ограничение доступа к определённой части сайта только указанным аутентифицированным пользователям или аутентифицированным пользователям из указанной группы или любым аутентифицированным пользователям.

Модуль access обеспечивает авторизацию доступа на основе IP адреса клиента или других характеристиках запроса (т.е. без аутентификации). Секция Limit позволяет ограничить действие директив авторизации конкретными методами доступа. Директивы: Order порядок (определяет очередность в которой применяются директивы Allow и Deny) ,Allow - первыми применяются директивы Deny, затем Allow (начальное состояние - доступ разрешен),Deny - первыми применяются директивы Allow, затем Deny (начальное состояние - запрещено)failure - доступ только с тех хостов, которые перечислены в Allow и не перечислены в DenyAllow from {адрес} (определяет с каких адресов будет дан доступ к данной директории) - со всех хостов

доменное имя (м.б. частичное) - с тех хостов, имя которых заканчивается на эту строку; сервер делает обратный, затем прямой поиск DNS

полный IP адрес

частичный IP адрес - первые 1, 2 или 3 байта IP адреса.b.c.d/e.f.g.h - network/netmask.b.c.d/nnn - network/битAllow from env=имя-переменной (доступ разрешается только если определена соответствующая переменная окружения) Deny ... (определяет с каких адресов не будет доступа к данному каталогу или файлу; синтаксис идентичен синтаксису директивы Allow)

Для ограничения доступа сайтам, а так же некоторым частям сайтов, например скачиванию архивов, мною использовалась Basic аутентификация, построенная на использовании дополнительных файлов конфигурации сервера Apache .htaccess и текстовых файлов с паролями, созданных утилитой htpasswd.

На моем сервере настроены три виртуальных хоста со следующими ограничениями на доступ к ним:.test1.ru - доступ разрешен только одному пользователю admin.test2.ru - доступ разрешен всем.test3.ru - доступ разрешен пользователям из группы с именем test3.ru-group

Состав группы test3.ru-group записан в текстовом файле test3.ru-group.

Содержимое этого файла