Укрепляем Apache и PHP
На скриншоте показан r57shell залитый на машину с Ubuntu 8.10 Desktop. Вся система – как на ладони. Можно выполнять команды, редактировать и создавать файлы. Можно даже просмотреть содержимое директории /root потому что в Ubuntu она почему-то имеет права 755. Необходимо принять меры.
Устанавливаем нормальные права доступа на папку 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.
Поэтому чрезвычайно глупо работать с базой данных под пользователем с обширными правами, например, 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 :)



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