PHP, безопасность · 3 min read · Oct 25, 2025

Как усилить PHP5 с помощью Suhosin на Mandriva 2007 Spring

Как усилить PHP5 с помощью Suhosin на Mandriva 2007 Spring

Версия 1.0
Автор: Фалко Тимме

Это руководство показывает, как усилить PHP5 с помощью Suhosin на сервере Mandriva 2007 Spring. С страницы проекта Suhosin: “Suhosin — это продвинутая система защиты для установок PHP, которая была разработана для защиты серверов и пользователей от известных и неизвестных уязвимостей в PHP-приложениях и ядре PHP. Suhosin состоит из двух независимых частей, которые могут использоваться отдельно или в комбинации. Первая часть — это небольшой патч для ядра PHP, который реализует несколько низкоуровневых защит от переполнения буфера или уязвимостей форматной строки, а вторая часть — это мощное расширение PHP, которое реализует все остальные защиты.”

Этот документ предоставляется без каких-либо гарантий! Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

Я протестировал это на сервере Mandriva 2007 Spring с IP-адресом 192.168.0.100.

Это руководство немного нетипично, потому что вам не нужно ничего делать для установки Suhosin на Mandriva 2007 Spring, если у вас уже установлен PHP5, потому что PHP5 от Mandriva уже поставляется с Suhosin по умолчанию. В любом случае, я думаю, что стоит написать это руководство, потому что оно отвечает на вопрос “Что мне нужно сделать, чтобы установить Suhosin?” — ничего, если PHP5 уже установлен.

2 Установка Apache2 и PHP5 (по желанию)

(Эта глава является необязательной, если у вас уже установлены Apache2 и PHP5 — чтобы проверить, включен ли Suhosin в вашем PHP5, пожалуйста, перейдите к следующей главе.)

Сначала, если вы используете онлайн-репозиторий Mandriva (а не DVD Mandriva) для установки пакетов, вам следует обновить базу данных пакетов:

urpmi.update -a

Если у вас нет установленного Apache2 и PHP5 на сервере, установите их сейчас:

urpmi apache-mod_php libphp5_common5

Много других пакетов будет установлено как зависимости вместе с этими двумя пакетами, как вы можете видеть в выводе:

[root@server1 ~]# urpmi apache-mod_php libphp5_common5
Чтобы удовлетворить зависимости, будут установлены следующие пакеты:
apache-base-2.2.4-6.2mdv2007.1.i586
apache-conf-2.2.4-4mdv2007.1.i586
apache-mod_php-5.2.1-4mdv2007.1.i586
apache-modules-2.2.4-6.2mdv2007.1.i586
apache-mpm-prefork-2.2.4-6.2mdv2007.1.i586
ccp-0.4.1-1mdk.noarch
libmm14-1.4.2-1mdv2007.1.i586
libphp5_common5-5.2.1-4.2mdv2007.1.i586
php-ctype-5.2.1-1mdv2007.1.i586
php-filter-5.2.1-0.1mdv2007.1.i586
php-ftp-5.2.1-1.1mdv2007.1.i586
php-gettext-5.2.1-1mdv2007.1.i586
php-hash-5.2.1-1mdv2007.1.i586
php-ini-5.2.1-2mdv2007.1.i586
php-json-1.2.1-3mdv2007.1.i586
php-openssl-5.2.1-4.2mdv2007.1.i586
php-posix-5.2.1-1mdv2007.1.i586
php-session-5.2.1-1mdv2007.1.i586
php-simplexml-5.2.1-1mdv2007.1.i586
php-suhosin-0.9.18-4mdv2007.1.i586
php-sysvsem-5.2.1-1mdv2007.1.i586
php-sysvshm-5.2.1-1mdv2007.1.i586
php-timezonedb-2007.3-1mdv2007.1.i586
php-tokenizer-5.2.1-1mdv2007.1.i586
php-xmlreader-5.2.1-1mdv2007.1.i586
php-xmlwriter-5.2.1-1mdv2007.1.i586
php-zlib-5.2.1-4.2mdv2007.1.i586
Продолжить установку 27 пакетов? (6 МБ) (Y/n)
[…]

Как вы видите, пакет php-suhosin устанавливается автоматически, так что ваш PHP5 будет усилен Suhosin по умолчанию.

Затем запустите Apache2:

/etc/init.d/httpd restart

Теперь у вас есть PHP5 с базовой функциональностью на вашем сервере; если вам нужны специальные модули PHP5, вы можете искать их так:

urpmi --fuzzy php

Из вывода выберите необходимые модули, установите их так и перезапустите Apache2:

urpmi php-bz2 php-calendar php-ctype php-curl php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-mhash php-ming php-mysql php-mysqli php-ncurses php-newt php-odbc php-oggvorbis php-pam_auth php-pcntl php-pcre php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-sysvmsg php-sysvsem php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php5-ini
/etc/init.d/httpd restart

3 Получение информации о вашей установке PHP5

Если вы еще не создали виртуальные хосты в вашей установке Apache, корневая папка по умолчанию для веб-сайта — /var/www/html. Теперь мы создадим небольшой PHP-файл (info.php) в этом каталоге (если вы создали виртуальные хосты, поместите его в любой из виртуальных хостов, где включен PHP) и вызовем его в браузере. Файл отобразит много полезных деталей о нашей установке PHP, таких как установленная версия PHP.

vi /var/www/html/info.php

| |

Теперь мы вызываем этот файл в браузере (например, http://192.168.0.100/info.php):

Как вы видите, наша версия PHP — 5.2.1.

Если все прошло хорошо, вы теперь должны увидеть упоминание Suhosin в двух местах на странице:

Вот и все. Если хотите, вы можете настроить Suhosin (см. http://www.hardened-php.net/suhosin/configuration.html), хотя Suhosin будет работать из коробки с его конфигурацией по умолчанию, так что убедитесь, что вы знаете, что делаете.

4 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.