Брандмауэры и специальное программное обеспечение 8 Часть 4

Вид материалаРеферат

Содержание


Использование файлов .htaccess
Дополнительные замечания, связанные с безопасностью
Замечания, связанные с suEXEC
Подобный материал:
1   ...   80   81   82   83   84   85   86   87   ...   101

Использование файлов .htaccess


Файл .htaccess может содержать множество разнообразных параметров и может использоваться для множества различных целей. Прежде всего, этот файл может использоваться для ограничения доступа к некоторому каталогу. Если вы хотите, чтобы доступом к каталогу обладали только лица, обладающие определенными именами и паролями, вы можете реализовать это с использованием файла .htaccess.

Прежде всего вы должны отредактировать файл /etc/httpd/conf/httpd.conf. Добавьте в этот файл выражение , в котором содержится объявление Allow/Override Authconfig. Этим вы разрешаете использование в отношении данного каталога специального механизма авторизации. Не забудьте выполнить команду apachectl restart для того, чтобы приказать серверу заново прочитать содержимое конфигурационных файлов.

После этого создайте файл .htaccess. При создании необходимо добавить в файл .htaccess четыре строки, показанные в листинге 20.5. В первой строке содержится ключевое слово AuthName и имя. Имя может быть любым, однако оно должно быть по смыслу связано с той информацией, доступ к которой вы защищаете. Параметр AuthType всегда имеет значение Basic. Параметр AuthUserFile должен указывать на файл, который вы намерены использовать для аутентификации клиентов. Файл аутентификации клиентов создается с использованием htpasswd. В последней строке содержится директива require valid-user.


Листинг 20.5. Файл .htaccess

AuthName "foo"

AuthType Basic

AuthUserFile /путь/к/.htpasswd

require valid-user


Файл .htaccess может использоваться также для того, чтобы расширить или изменить любые из директив файла /etc/httpd/conf/httpd.conf для данного каталога. Для этого вы должны.внести в раздел для данного каталога объявление AllowOverride Options. Формат файла .htaccess в точности совпадает с форматом файла httpd.conf, и фактически любые записи, которые используются в файле httpd.conf, могут быть использованы также в файле .htaccess.

Дополнительные замечания, связанные с безопасностью


Некоторые выражения, которые допускается использовать в файле httpd.conf, не обсуждались ранее, так как они не используются в конфигурационном файле по умолчанию. Эти выражения имеют отношение к выражениям Directory и Files. К этим дополнительным выражениям относятся выражения DirectoryMatch, FilesMatch, Location и LocationMatch. Синтаксис этих выражений совпадает с синтаксисом выражений Directory и Files, однако добавка Match указывает на то, что в составе этих выражений используются аргументы, являющиеся регулярными выражениями (regular expression, regex). Аргументы, являющиеся регулярными выражениями, отличаются от обычных аргументов. Дополнительно об использовании этих аргументов рассказывается в электронной документации.


ПРИМЕЧАНИЕ

Термин гедех обозначает regular expression — регулярное выражение. В Linux регулярные выражения используются для описания некоторого символьного шаблона. В рамках этого шаблона допускается использовать специальные символы (такие как * и ?) для того, чтобы указать неопределенный символ или набор символов. При помощи регулярных выражений вы можете специфицировать строки, начинающиеся с определенного набора символов, заканчивающиеся определенным набором символов, содержащие в себе определенный набор символов и т. п. Более подробно о регулярных выражениях и методах их использования можно узнать из книги, посвященной программированию sed, awk или Perl. Регулярные выражения — это чрезвычайно мощный и очень гибкий механизм, однако для новичков овладение этим механизмом может оказаться непростым делом.

Необходимо отметить, что выражения Location и LocationMatch соответствуют не файлам и каталогам, a URL. Также необходимо отметить порядок, в котором обрабатываются все эти выражения. Любое выражение Directory обрабатывается в первую очередь. Если следующее за ним выражение Files содержит в себе конфигурационные значения, которые противоречат заданным в рамках выражения Directory, директивы Directory будут перекрыты директивами Files. Иными словами, выражение Files обладает более высоким приоритетом. В этом есть смысл, так как файл является более специфичным элементом файловой системы, чем весь каталог. Выражение Location перекрывает собой как выражения Directory, так и выражения Files. Такое распределение приоритетов менее очевидно, так как местоположение URL является виртуальной концепцией, в отличие от каталогов и файлов. Выражение Location обеспечивает большую гибкость, однако повышает сложность конфигурирования. Применив выражение Location, вы непреднамеренно можете перекрыть директивы, определенные с использованием Directory и Files. Используя выражения Location, будьте внимательны и осторожны.

Замечания, связанные с suEXEC


Программа suEXEC — это оболочка, которая позволяет запускать программы от лица пользователя, отличающегося от пользователя, от лица которого запущен web-сервер. При нормальном функционировании все программы запускаются на уровне привилегий пользователя, от лица которого запущен web-сервер. В случае использования конфигурации, описанной ранее в данной главе, три четверти программ работают на уровне привилегий пользователя nobody. В некоторых ситуациях это может быть неприемлемым. Например, если пользователи обращаются к индивидуальным базам данных, запись в которые со стороны посторонних пользователей недопустима. В этом случае вы можете компилировать Apache с использованием suEXEC и включить конфигурацию userdir. Эта возможность может быть использована в ситуациях, когда применение файлов .htaccess оказывается неудобным или неприемлемым.

Для настройки suEXEC необходимо некоторое время. Потребуются дополнительные конфигурационные директивы, среди которых:


--enable-suexec

--suexec-caller=UID

--suexec-docroot=DIR

--suexec-logfi1e=FILE

--suexec-userdir=DIR

--suexec-uidmin=UID

--suexec-gidmin=GID

--suexec-safepath=PATH

Данная возможность конфигурации обладает рядом недостатков. Однако используя ее, вы можете с большой гибкостью указывать (при помощи выражений VirtualHost) пользователя, от лица которого должна работать та или иная программа. К сожалению, компиляция с включением suEXEC и использование этого механизма в записях VirtualHost налагают ограничения на расположение каталогов VirtualHost — все они должны быть расположены в рамках иерархии основного корневого каталога документов DocumentRoot. Такое положение вещей не всегда можно считать приемлемым.

Наибольшую опасность при использовании suEXEC представляет указание небезопасного пути (PATH) для каталогов, содержащих в себе бинарные файлы. Каждый из бинарных файлов должен запускаться от лица указанного вами пользователя — это выглядит замечательно с точки зрения системы, однако может оказаться бедствием для пользователя, в особенности если бинарный файл является «троянским конем».