APACHE
Метки: Apache
Понедельник, 27 июля 2009 г.
Просмотров: 3023
Подписаться на комментарии по RSS
Одним из самых популярных OpenSource-приложений представляется Web-сервер Apache. Apache сделал революцию в мире Web-серверов, став эталонным стандартом на Web-серверы - теперь Apache входит во все дистрибутивы Linux, FreeBSD, даже есть версии Apache для Windows.
Apache без особых усилий дает возможность настроить обычный домашний компьютер, как Web-сервер. Но здесь есть опасность его использования: Apache устанавливается с файлом конфигурации, который дает возможноть сделать всего несколько изменений для запуска сервера, что не сказывается положительным образом на безопасности системы - ведь оставшиеся директивы остаются по умолчанию. К тому же в новых версиях Apache есть поддержка всевозможных расширений (модули), которые тоже требуют дополнительной настройки.
Особую опасность отображают CGI-скрипты. Центровая проблема заключается в том, что CGI-скриптинг крайне прост в изучении и многие Web-разработчики иследуют его поверхностно, часто они и не понимают, к каким последствиям может привести употребление таких безопасных программ не по назначению.
Конфигурация Apache.
Конфигурационный файл Apache обозначается httpd.conf, его нахожление зависит от дистрибутива и версии Apache. Часто этот файл можно найти в каталоге /etc/httpd/conf, иногда - в /etc/apache. Если Apache был установлен самостоятельно (то есть не из пакета, а из исходников), то файл конфигурации обычно бывает в каком-то подкаталоге каталога /usr/local.
В каком именно каталоге можно найти файл конфигурации - особой разницы нет, поэтому основное - его найти.
Пользователь и группа.
Для запуска Apache можно установить имя пользователя и имя группы, от имени которых Apache будет запускаться. Сперва Apache запускается от имени root, так как ему можно употреблять привилегированный порт 80, но затем он отказывается от полномочий root и запускается как обычный пользователь (он будет употреблять указанные имя пользователя и группу).
Пользователь по умолчанию - nobody, но, если другой демон уже использует это имя, надо употреблять другую учетную запись, к примеру www, apache или http. Почему нельзя употреблять уже занятое имя? Да, сервер будет работать нормально, даже если от имени nobody уже запущено с десяток разных серверов. Просто если крекер скомпрометирует какой-то сервис, он получит доступ к учетной записи nobody и, следовательно, ко всем запущенным процессам данного пользователя.
Для определения имени пользователя и группы используются директивы User и Group соответственно:
User <пользователь>
Group <группа>
К примеру:
User apache
Group apache
Если нет такого пользователя и такой группы, самое время их создать:
# useradd apache -c "Apache Server" -d /dev/null -g apache -s /sbin/nologin
Домашний каталог пользователя - /dev/null, а оболочка - /sbin/nologin, что предотвращает вход в систему этого пользователя.