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. Решение пролемы.

Bash Backup. Моменты.

На днях пришлось писать скрипт для резервного копирования некоторых важных файлов на одном из серверов. Вся прелесть состояла в том, что резервирование должно было быть гибридным. Часть файлов нужно было хранить с накоплением, то есть при изменении файла, нужно было его копию в директории бекапа переименовать, а затем заново его сохранить в выше упомянутую директорию. Другие файлы нужно было хранить только в виде последней версии, то есть просто перезаписывать то, что уже лежит в бекапе.

В принципе, скрипты бекапа — вещь, с которой рано или поздно (безусловно лучше, если рано) сталкивается любой системный администратор (кстати, я на некоторое время из веб разработчиков переквалифицировался в Linux администратора =) ). Полностью весь скрипт приводить смысла не вижу, а вот непосредственно те его части, которые реализуют копирование, выношу на суд читателя.

Continue reading «Bash Backup. Моменты.»

Bash Backup. Моменты.

SSH. Запоминаем пароль.

Те, кто частенько соединяется с удаленными серверами по ssh, знает, что если такие приложения как WinSCP (Windows), Наутилус (Gnome) или Krusader (KDE) умеют запоминать пароли, то вот с консолью дела обстоят не столь радужно. Конечно, рано или поздно, каждый находит для себя решение этой проблемы, и вот какое нашел я. Перво-наперво, нужно установить пакет expect_tcl. Далее остается лишь написать небольшой .sh скрипт, который позволит нам соединяться по ssh не вводя пароль каждый раз. Собственно, вот код :

#!/bin/bash
expect -c " spawn ssh $1@$2 -x "$4" expect "password:"send "$3r" interact "

вызывать можно например так:

$ ssh.sh user host password command

или сделать ярлык в меню:

gnome-terminal -x /path/to/script/ssh.sh user host password command

правда есть один минус, передача 4-го параметра, то есть вызов удаленной команды, не всегда срабатывает.Вот собственно и все.
p.s. за модернизацию скрипта спасибо Николаю Мельникову

UPD: Описаный метод отнюдь не претендует на звание самого правильного и безопасного, более того, он не всегда удобен, лично я использую его в реализации собственной утилиты.

SSH. Запоминаем пароль.