如何使用Suhosin加固PHP5(Debian Etch / Ubuntu)

如何使用Suhosin加固PHP5(Debian Etch / Ubuntu) 本教程介绍如何使用Suhosin在Debian Etch和Ubuntu服务器上强化PHP5。从...

如何使用Suhosin(Debian Etch / Ubuntu)来强化PHP5

版本1.0
作者:Falko Timme

本教程将介绍如何使用Debian Etch和Ubuntu服务器上的Suhosin来强化PHP5。 从Suhosin项目页面: “Suhosin是PHP安装的高级保护系统,旨在保护服务器和用户免受PHP应用程序和PHP内核中已知和未知的缺陷。Suhosin有两个独立的部分,可以单独使用或第一部分是针对PHP内核的小补丁,它实现了一些针对缓冲区溢出或格式化字符串漏洞的低级保护,第二部分是强大的PHP扩展,实现了所有其他保护。

本文档不附带任何形式的保证! 我想说,这不是设立这样一个制度的唯一办法。 实现这一目标有很多方法,但这是我所采取的方式。 我不会保证这将为您工作!

1初步说明

我已经在Debian Etch服务器上测试了这个IP地址192.168.0.100

我将在本教程中安装Suhosin部分,Suhosin补丁(我们需要重新编译PHP5)和Suhosin PHP扩展(可作为Debian / Ubuntu软件包使用)。 要了解Suhosin可以做什么,请参阅http://www.hardened-php.net/suhosin/a_feature_list.html 。 Suhosin补丁的功能列在引擎保护(仅限补丁)下 ; 所有其他功能随Suhosin扩展。

2安装Apache2和PHP5(可选)

(如果您已经安装了Apache2和PHP5,本章是可选的 - 请跳到下一章。)

如果您的服务器上没有安装Apache2和PHP5,请立即安装:

apt-get install libapache2-mod-php5 php5 apache2-mpm-prefork php5-dev

这将安装具有基本功能的PHP5; 如果您需要特殊的PHP5模块,可以这样搜索:

apt-cache search php5

从输出中,选择所需的模块,并像这样安装:

apt-get install php5-auth-pam php5-clamavlib php5-common php5-curl php5-gd php5-idn php5-imagick php5-imap php5-json php5-ldap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-odbc php5-pgsql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-uuid php5-xapian php5-xmlrpc php5-xsl

您将看到以下问题:

没有Maildir支持,继续安装libc-client? < - 是的

如果您选择安装php5-clamavlib ,您现在还应该安装ClamAV:

apt-get install clamav

3获取有关您的PHP5安装的详细信息

除非您已经在Apache安装中创建了虚拟主机,否则默认网站的文档根目录是/ var / www 。 我们现在将在该目录中创建一个小型的PHP文件( info.php )(如果您已经创建了虚拟主机,将其放置在启用了PHP的任何虚拟主机中),并在浏览器中调用该文件。 该文件将显示有关我们的PHP安装的许多有用的细节,例如安装的PHP版本。

vi /var/www/info.php

<?php
phpinfo();
?>

现在我们在浏览器中调用该文件(例如http://192.168.0.100/info.php ):

如您所见,我们的PHP版本是5.2.0-8 + etch1