Защити свой WWW-сервер Докучаев Дмитрий aka Forb Спецвыпуск Xakep, номер #041, стр. 041-088-5 Абсолютной безопасности не существует Тем не менее, это так. Поэтому, даже если ты написал могучие скрипты с динамическими изображениями, поставил себе SSL, грамотно настроил httpd, тебя все равно могут поиметь. Чтобы этого не случилось, регулярно следи за системой, самим сервером и заглядывай в системные журналы. Как показывает практика, истина где-то в логах ;). Установка модулей Я уже говорил, что ставить модули из rpm не рекомендуется. Чтобы установить их из исходников, тебе потребуется скомпилить Apache с конфигурационным флагом --enable-module=so. Теперь ты разрешил доставлять внешние модули. Далее ставь PHP с флагом –-with-apxs=/path/to/apache/bin/apxs. Затем перезапусти Апач, и mod_php будет установлен. С SSL все немного сложнее. Сперва установи сам OpenSSL, его ты можешь взять с www.openssl.org. Установка стандартная и состоит из трех команд (./configure, make, make install). Когда пакет установлен, сливай модуль (http://ftp.cvut.cz/mod_ssl/source/mod_ssl-2.8.15-1.3.28.tar.gz) и распаковывай. Чтобы привязать его к Апачу, используй подобные параметры конфигурации: ./configure --with-apache=../apache_1.3.28 --with-ssl=../openssl-0.9.6k --prefix=/usr/apache Затем выполним make certificate. У тебя спросят пароль, который будет требоваться каждый раз при запуске Web-сервера. Не забудь его :). Заверши установку make install'ом и перезапуском httpd. Конфигурим и оттачиваем После установки необходимых модулей нужно их грамотно отконфигурить. Начнем с mod_php. Этот язык программирования имеет свой конфиг php.ini. Парсить его я не буду, лишь скажу, что в инете ты можешь найти множество статей по настройке PHP. Одна из важных переменных называется register_globals (по умолчанию отключена). Именно из-за нее все беды: все переполнения выполняются через внешние параметры. Ты, наверное, знаешь, что включение данной директивы ведет к автоматическому преобразованию всех опций скрипта в переменные php. В свежих версиях php довольно сложно переполнить буфер через подбор длины параметра, поэтому для удобства можно включить эту опцию. Хорошая статья по настройке PHP была в журнале Хакер (02.2003) и называлась "Песнь о багах в PHP или админ в шкуре скрипт-кидди". Напоследок, чтобы сервер понимал расширение php, добавь в httpd.conf строку AddType application/x-httpd-php .php .php3 .phps .phtml. После запуска Apache, mod_ssl каждый раз просит пароль. Если старт происходит при загрузке сервера, вводить его интерактивно не представляется возможным. Решение проблемы и переход на автоматический старт лежит в httpd.conf. Добавляем в конфиг следующую строку: SSLPassPhraseDialog exec:/usr/apache/bin/password.pl А затем создадим скрипт password.pl со следующим содержанием: |