Укрепляем Apache и PHP

На скриншоте показан r57shell залитый на машину с Ubuntu 8.10 Desktop. Вся система – как на ладони. Можно выполнять команды, редактировать и создавать файлы. Можно даже просмотреть содержимое директории /root потому что в Ubuntu она почему-то имеет права 755. Необходимо принять меры.

safe_mode off

Устанавливаем нормальные права доступа на папку root – только для пользователя root:

sudo chmod 700 /root

Редактируем настройки PHP:

Включаем опцию safe_mode в файле /etc/php5/apache2/php.ini

safe_mode on

Это всего лишь запретит выполнять команды на сервере с помощью php, но мы все равно сможем просматривать и редактировать шеллом файлы на которые у нас есть доступ. А доступ у нас есть на все файлы на которые есть доступ у Apache. В Ubuntu и в Debian Apache работает от имени пользователя www-data и группы www-data. Так что мы имеем доступ на чтение на все файлы c правами 644, даже если они пренадлежат другим пользователям и полный доступ на файлы и директории, принадлежащие www-data.

Чтобы обезопасить сервер – ограничим возможные дисковые операции php папкой /var/www нашего сервера, используя опцию open_basedir:

open_basedir = /var/www

После перезапуска Apache мы уже не сможем просматривать шеллом директории которые находятся вне /var/www, да и вообще не сможем произвести никаких дисковых операций кроме как в /var/www да и то над папками и файлами на которые у нас есть доступ. Так что даже если шелл был залит – мы хотя-бы чуть чуть усложним взломщику задачу по проникновению в систему.

Несмотря на эти настройки мы, например, можем с помощью шелла просмотреть файл конфигурации нашего движка (wp-config.php для WordPress) и узнать оттуда логин и пароль от базы данных MySQL.

sqldump

Поэтому чрезвычайно глупо работать с базой данных под пользователем с обширными правами, например, root пользователем MySQL (не путать с root системы). В этом случае злоумышленник сможет легко создать дампы не только базы данных взломанного сайта но и других. Но об этом в следующий раз.

Распечатать Распечатать

Другие записи:

Простое монтирование удаленного диска по sftp в консоли
Поднимаем учет трафика на Squid и TraffPRO – Часть 1
Поднимаем ClamAV и ClamFS на Ubuntu Server
Запуск Java и Apache Felix в chroot jail окружении в Debian Lenny
Следим за файлами сервера с помощью Tripwire
MySQL: сделаем это по-быстрому
Восстановление файлов с помощью PhotoRec в Linux
Печать в pdf в Ubuntu
Настраиваем систему индексации и поиска Sphinx для LiveStreet
Осторожно БОЯН! Сброс root пароля MySQL :)

  1. Чтобы небыло никаких шеллов php вообще не надо ставить :-)

  2. Ziher:

    С этими скриптовыми языками вообще беда – дыра на дыре, в том числе и в Пайтоне. Для полной безопасности песочницу сооружать надо.:(

Добавить комментарий

Ваш e-mail не будет опубликован.

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">