Шрифт:
Интервал:
Закладка:
ErrorDocument — директива, сопоставляющая коды ошибок сервера URL-адресам на этом же сервере.
16.3.11. Директивы управления доступом к отдельным каталогам
Вы можете определить отдельные параметры для каждого каталога вашего сервера — оформление каталога, параметры доступа к этому каталогу.
Блок директив DirectoryБлок директив Directory определяет свойства каталога (см. листинг 16.3).
Листинг 16.3. Директива Directory
<Directory />
Options Indexes Includes FollowSymLinks
AllowOverride None
</Directory>
Свойства каталога можно указывать в директиве Directory или в файле .htaccess, который находится в том каталоге, для которого необходимо установить нужные параметры.
В блоке Directory могут находиться директивы управления доступом. К ним относятся директивы AllowOverride, Options, Limit. Рассмотрим по порядку все эти директивы. Директива AllowOverride может принимать значения, указанные в таблице 16.1.
Значения директивы AllowOverride Таблица 16.1
Значение Описание None Сервер Apache будет игнорировать файлы .htaccess. Рекомендую установить данную опцию, так как это повысит производительность сервера All Пользователи имеют право переопределять в файлах .htaccess глобальные параметры доступа. Из соображений безопасности лучше не использовать этот режим Options Разрешает использовать директиву Options Limit Разрешает использовать директиву Limit AuthConfig Разрешает использование директив AuthName, AuthType, AuthUserFile и AuthGroupFile FileInfo Разрешает использовать в файлах .htaccess директивы AddType и AddEncodingС помощью директивы Options можно определить функции сервера, которые будут доступны для использования в определяемом каталоге. Данную директиву можно использовать как в файле httpd.conf, так и в файлах .htaccess. Допустимые опции для директивы Options представлены в таблице 16.2.
Значения директивы Options Таблица 16.2
Значение Описание None He разрешается использование каких-либо функций All Разрешаются все функции FollowSymLinks Разрешается использовать символические ссылки. С точки зрения безопасности не рекомендуется использовать этот режим SymLinksIfOwnerMatch Разрешается использование символических ссылок, если они указывают на объекты, которые принадлежат тому же пользователю, что и сами ссылки ExecCGI Разрешается выполнение CGI-сценариев Indexes Если эта опция выключена, сервер не будет передавать содержимое каталога при отсутствии файла index.html Includes Разрешено использование серверных включений. Рекомендую отключить эту опцию, поскольку это сильно нагружает сервер IncludesNoExec Разрешает использование серверных включений, но запрещает запуск из них внешних программДиректива Limit ограничивает доступ к файлам в определенном каталоге:
Limit метод
Параметр «метод» определяет метод передачи: GET или POST. Директиву Limit можно использовать внутри блоков Directory, Location или в файле .htaccess.
Блок директив LimitВ блоке Limit можно использовать такие директивы: allow (разрешить), deny (запретить), order (порядок), require (требуется). После директивы allow следует слово from, после которого можно указать IP-адрес, адрес сети, домен или просто имя компьютера. Слово all обозначает все компьютеры. Директива order определяет порядок выполнения директив allow и deny. Например, вам требуется запретить доступ всем компьютерам, кроме компьютеров, которые входят в домен ru (см. листинг 16.4).
Листинг 16.4. Директивы allow, deny
order deny, allow
deny from all
allow from ru
Следующий пример показывает, как разрешить доступ компьютерам только из вашей сети.
Листинг 16.5. Разрешение доступа подсети 192.168.1.0
order deny, allow
deny from all
allow from 192.168.1.
Кроме значений allow,deny и deny,allow, директива order может содержать значение mutual-failure. В этом случае в доступе будет отказано всем компьютерам, которые явно не указаны в списке allow.
Директиву require можно использовать для защиты каталога паролем. После названия директивы должен следовать список элементов: имена пользователей, групп, которые заданы в директивах AuthUserFile и AuthGroupFile. Можно использовать параметр valid-user, который укажет серверу предоставить доступ любому пользователю, имя которого имеется в директиве AuthUserFile, если он введет правильный пароль. Пример использования приведен в листинге 16.6.
Листинг 16.6. Использование директивы require
<Directory *>
AuthUserFile /var/secure/.htpasswd
AuthName Security
AuthType Basic
<Limit GET>
order deny,allow
deny form all
allow from mydomain.ru
require valid-user
</Limit>
</Directory>
В листинге 16.6 для аутентификации используется файл паролей .htpasswd, который можно создать с помощью программы htpasswd. Директивы блока Limit разрешают доступ к любому каталогу сервера только пользователям домена mydomain.ru.
Кроме параметра valid-user допускается использование параметра users или groups. Данные параметры разрешают доступ только определенным пользователям или группам пользователей. Пример использования параметра users приведен в листинге 16.7.
Листинг 16.7. Применения параметра users
<Directory /users>
AuthType Basic
AuthUserFile /var/users/.htpasswd
AuthName UsersDir
<Limit GET POST>
require users denis igor evg
</Limit>
</Directory>
Блок директив LocationС помощью директив, расположенных в блоке Location, можно задать определенный URL-адрес, предназначенный для обозначения каталогов, файлов или групп файлов. Обозначить группу файлов можно с помощью шаблонов, например, шаблон *.html определяет все файлы, имена которых заканчиваются на .html, В URL-адрес не включается протокол и имя сервера. Пример описания блока Location представлен в листинге 16.8.
Листинг 16.8. Блок Location
<Location URL>
директивы управления доступом
</Location>
16.4. Файл ротации журналов /etc/logrotate.d/httpd
Файл /etc/logrotate.d/httpd (или /etc/logrotate.d/apache — для версий Apache до 2.0) задает параметры ротации журналов веб-сервера, что позволяет поддерживать порядок в журнальном хозяйстве. Пример этого файла приведен в листинге 16.9.
Листинг 16.9. Файл /etc/logrotate.d/httpd (Apache 2.0)
/var/log/httpd/*_log {
missingok
notifempty
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
Убедитесь, что режим доступа к файлу /etc/logrotate.d/httpd равен 0640 и владельцем этого файла является пользователь root.
16.5. Системный файл конфигурации /etc/sysconfig/httpd
Этот файл позволяет передать серверу Apache системную информацию, например, параметры запуска.
Предположим, что вы хотите запустить сервер Apache с включенной поддержкой SSL. Для этого в файл /etc/sysconfig/httpd добавьте строку:
OPTIONS="-DSSL"
Вам нужно только добавить нужные параметры в директиву OPTIONS, а обо всем остальном позаботится сценарий запуска /etc/init.d/httpd. Нужно отметить, что файл /etc/sysconfig/httpd появился в версии Apache 2.0.
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение