SuexecUserGroup directive requires SUEXEC wrapper

После установки модуля mod_suexec в Slackware 13.37 выскочило вот такое предупреждение: «Warning: SuexecUserGroup directive requires SUEXEC wrapper». Лечится довольно просто.

Во-первых, все зависит от способа установки, я устанавливал в лоб, скачал rpm-пакет c rpm.pbone.net, который соответствовал моей платформе и версии апача (i686, apache-2.2.19), выдернул из cpio архива 2 файла: mod_suexec.so, который копируется в /usr/lib/httpd/modules и suexec, который копируется в /usr/sbin. Если вы устанавливали таким способом, то нужно проверить, где апач будет искать suexec:

httpd -V | grep SUEXEC_BIN

Если в выводе увидите -D SUEXEC_BIN=»/usr/sbin/suexec», то все ок, а если -D SUEXEC_BIN=»/usr/bin/suexec», то нужно сделать линк:

ln -s /usr/sbin/suexec /usr/bin/suexec

После этого, нужно подправить права, если это необходимо:

chown root:root /usr/sbin/suexec
chmod 4750 /usr/sbin/suexec

Рестартуем апач и можем спокойно использовать директиву SuexecUserGroup

SuexecUserGroup directive requires SUEXEC wrapper

Apache killer. Решение пролемы.

В Apache обнаружена узвимость, которая позволяет провести атаку на приложение версии 2.2.х, вызывающую переполнение памяти. Уязвимость находится в коде, отвечающем за обработку байтовых диапазонов, указанных в специальных HTTP-заголовках. Уже и скрипт «Apache killer» выложили. Если статика раздается с помощью nginx, то скорее всего проблем не будет, во всяком случае, если nginx свежий. Проверить, уязвим ли Ваш сервер можно следующим образом:

curl -I -H "Range: bytes=0-1,0-2" -s http://www.site.ru/robots.txt | grep Partial

Если в ответе присутствует «206 Partial Content», то увы, Ваш сервер подвержен уязвимости. Прикрыть можно довольно простым способом, в .htaccess добавьте следующие строки:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^(HEAD|GET) [NC]
RewriteCond %{HTTP:Range} ([0-9]*-[0-9]*)(\s*,\s*[0-9]*-[0-9]*)+
RewriteRule .* - [F]
Apache killer. Решение пролемы.

Symfony no_script_name и Apache mod_rewrite

Намедни компания, в которой я работаю, обзавелась новым сервером. Так как нужно было срочно перебросить на него несколько проектов, а поблизости админами не пахло (ночь на дворе, фигли), полез настраивать сам. Как говорится, долго ли умеючи. Перебросил проекты, базы, поднял Apache, Nginx, MySQL, настроил DNS, запускаю. Работает! Но только главная страница проекта, причем каждого. Так как проекты на Symfony, полез сначала ковырять ее настройки, отключив директиву no_script_name, получил полностью работающий проект. Что бы понять в чем причина потребовалось времени больше, чем было потрачено на настройку. Дьявол прячется в мелочах, для нормальной работы mod_rewrite, при использовании директив RewriteRule и RewriteCondition в файлах .htaccess, кагбе не мешает изменить следующие строки в конфиге Apache с:

<directory />
    ...
    AllowOverride None
    ...

на

<directory />
    ...
    AllowOverride All
    ...

Epic Fail! За последние несколько лет общения с Apache впервые упустил этот момент. Вывод: на досуге покуривать мануалы, до просветления. И спать по ночам, а не настраивать боевые сервера.

Symfony no_script_name и Apache mod_rewrite