Грамотная настройка веб-сервера ApacheДанная статья будет полезна как администраторам домашних сетей, которые наверняка имеют внутрисетевую страничку (а порой и огромный медиа-портал), так и закоренелым сисадминам некоторых веб-хостингов. Я рассмотрю самый популярный на данный момент и успешно зарекомендовавший себя web-server Apache. Из плюсов сразу же хочется выделить надёжность, функциональность, открытость исходного кода, кроссплатформенность и гибкость настройки. Из минусов - только отсутствие единого стандартного интерфейса для администрирования. Также Apache позволяет подключать внешние модули, такие, как PHP, MySQL, Perl, SSL и многие другие. На данный момент существует три ветки разработки сервера: 2.2.*, 2.0.* и 1.3.* Рекомендуется ветка 2.2.*, т.к. в оставшихся не реализуются нововведения, а лишь исправляются мелкие уязвимости, в основном, связанные с DDoS атакой (отказ в обслуживании). Я рассмотрю Apache 2.2.4 под управлением Windows 2003 Server. Пожалуй, начнём...
Первое, что нам потребуется, - это,
собственно, сам веб-сервер. Он
распространяется свободно под
лицензией GPL, так что "взять"
его можно без проблем по ссылке Инсталляция не займёт особого труда, могу лишь посоветовать установить его на отдельный логический диск в целях безопасности (пример пути: d:\usr\local\apache). Этот путь был выбран не случайно, ибо такая иерархия принята в *nix семействах. При установке вводим имя домена, название сайта и почтовый адрес (необходимо для связи с администраторам в случае неполадки). Если необходимо, чтобы наш сервер был доступен извне (Internet), мы должны ввести зарегистрированное доменное имя (например, site.by). При успешной установке должен появиться значок в системном трее и при наборе в браузере адреса: http://localhost (стандартное доменное имя) мы увидим стартовую страничку веб-сервера Apache. Сейчас откроем основной конфигурационный файл - d:\usr\local\apache\conf\httpd.conf. Сразу же бросаются в глаза строки, помеченные символом "#", - это комментарии. Чтобы любые изменения вступили в силу, требуется перезагрузка сервера. Первое, что нам необходимо, это указать путь для нашего сайта в строке DocumentRoot (по умолчанию это d:/usr/local/Apache/htdocs). В принципе, это делается по желанию, но лучше указать, к примеру, d:/home/localhost/www (не забудьте создать данную папку на диске). Далее, если мы сменили рабочую директорию сайта, следует изменить в конфигурационном файле строчку <Directory/> на <Directory "d:/home/localhost/www">. Делаем то же самое, но для CGI-скриптов: создаём папку d:/home/localhost/cgi-bin и меняем строку <Directory/> на <Directory "с:/home/localhost/cgi-bin">. Если мы напортачили при установке с почтой или названием сайта, всегда можно изменить это в строках ServerAdmin и ServerName. Сейчас займёмся наладкой виртуальных хостов, эта опция будет необходима, если у нас будет более одного сайта. Для этого добавляем в httpd.conf следующие строки: NameVirtualHost test.by <VirtualHost test.by> ServerAdmin <почта_администратора_test.by> DocumentRoot c:/home/test.by/www ServerName TEST.BY ErrorLog logs/error.log CustomLog logs/access.log common ScriptAlias /cgi-bin/ "с:/home/test.by/cgi-bin/" </VirtualHost>Создаём папку d:/home/test.by и стартовую страницу index.html Перезагружаем Apache и проверяем. Мы настраивали Apache вручную, редактируя конфигурационные файлы. А вообще, существуют графические оболочки для конфигурирования, наиболее известная из них - ApacheConf. Если наш сайт не будет ограничен
только HTML и JavaScript, то основные
модули, такие, как PHP, можно взять
здесь:
Самое первое правило - это ограничение прав в операционной системе. Под Администратором необходимо чётко определить права на запись, чтение и выполнение веб-сервера, ни в коем случае эти три пункта не должны выходить за пределы своей корневой папки, с внутренними файлами проще - всё зависит от веб-приложения. В *nix необходимо Apache выделить в отдельную группу и пользователем root необходимо выполнить команду chmod 0777 на папку www, и chmod 0600 - на корневую. Каждая папка в директории сайта должна иметь индексовую страницу (index.html или index.php). Это позволит избежать просмотра содержимого папок. Очень важной особенностью будет создание файла доступа .htaccess (например, можно запретить доступ к папке по маске: DA deny from 195.114.*.*). Не следует также забывать, что в httpd.conf содержится информация о правах доступа к объектам. Рассмотрим конфигурацию интерпретатора PHP. Конфигурационный файл - php.ini (/usr/local/php5/php.ini). Основная переменная, отвечающая за безопасность выполнения приложений, - это safe_mode=on(off). С одной стороны, частичная безопасность, с другой - функциональные ограничения. Вам придётся выбирать настройки в зависимости от функциональности веб-приложения (так, многие форумы не могут работать при safe_mode=on). Рекомендуется установить переменные register_globals=off и allow_url_fopen=off (они запрещают передавать параметр к определённому файлу, что часто способствует атаке типа php-including). Также необходимо запретить опасные функции: system, exec, shell_exec, passthru (выполняют удалённые команды) и phpinfo (полная информация о php.ini). Осуществляется это путём добавления их в переменную disable_functions=... Напоследок пользователям Windows
платформы хочу посоветовать проект
Максим ГУРСКИЙ
Чтобы разместить новость на сайте или в блоге скопируйте код:
На вашем ресурсе это будет выглядеть так
Данная статья будет полезна как администраторам домашних сетей, так и сисадминам некоторых веб-хостингов... |
|