? Мы хотим ограничить доступ к некоторым страницам нашего Web-сервера, чтобы их могли видеть лишь компании, являющиеся нашими клиентами. Как это сделать? Мы используем Web-сервер Apache, входивший в комплект Linux.
Почти все Web-серверы соответствуют правилам контроля доступа, определенным в эталонном механизме HTTP, разработанном Национальной ассоциацией по компьютерной безопасности (NCSA). (Самый популярный в Internet Web-сервер Apache создан на основе ПО NCSA и соответствует этим правилам как нельзя точнее.)
Такие Web-серверы служат для того, чтобы разрешать или запрещать доступ пользователям с определенными доменами, IP-адресами (или их диапазонами). Однако эта их функция почти не описана в документации.
Мы решили вкратце рассказать о принципах работы системы безопасности Web-сервера.
На каждом сервере есть каталог с конфигурационными файлами. (На многих Unix-системах этот каталог выглядит примерно как /usr/local/www/ server/conf.) В нем есть файл под названием access.conf. Этот файл определяет ограничения доступа к различным каталогам с Web-страницами и CGI-скриптами.
Содержимое access.conf весьма напоминает HTML; однако слова, заключенные в угловые скобки, называются не тегами, а директивами. Все доступные извне деревья директорий описаны в директиве подразделения каталогов, которая выглядит примерно так:
В конце директивы должно стоять слово . Внутри
Например, директива
order deny, allow deny from all allow from ourdomain.com allow from client1.com allow from client2.com allow from 192.216.48
расшифровывается следующим образом: строка, начинающаяся со слова "order" указывает, что сервер должен вначале просмотреть списки клиентов, которым доступ запрещен (команда deny). Затем просматриваются команды allow, которые разрешают доступ определенным клиентам, даже если они и попали ранее в списки deny.
В приведенном примере мы начинаем с тотального запрета; т. е. для доступа к файлам каталога клиент должен быть упомянут в одной из команд allow. Если указан неполный IP-адрес, то команда будет относиться ко всем начинающимся с него адресам.
Файл access.conf не гарантирует решения проблемы контроля доступа. Каждая из директив
Внутри
Я использую функции ограничения доступа для создания частных страниц и защиты от распространителей рекламы, выискивающих на Web-страницах адреса электронной почты. Хотя эти службы и не способны служить заменой брандмауэров и их можно обойти с помощью подстановки ложных IP-адресов, все же они достаточно надежны, особенно в совокупности с защитой по паролю. Более подробную информацию о контроле доступа к Web-серверам вы можете почерпнуть в соответствующей литературе.