Apache服务器搭建与安全分析指南

在不断变化的软件版本中,经常需要处理依赖关系和针对UNIX系统的代码。因此,最好的方法是将所有组件收集到一个地方,并提供分步指导。目标是编写一系列文章,展示如何设置Apache服务器,创建一个简单的带有登录系统的网站(因此还需要PHP和SQL),更重要的是,调查C源代码层面发生了什么。这种理解将帮助找到安全漏洞(或手动创建一个),并研究如何在不知道实际登录名和密码的情况下获取用户信息。

逐步构建

将构建Apache2.4.33。转到此链接并下载源代码归档。解压缩并重命名提取的文件夹为httpd。现在,需要下载依赖项:apr、apr-iconv、apr-util、expat、pcre(需要安装cmake来构建)。前三者可以从这里下载。将使用Apr 1.6.3、Apr-util 1.6.1和Apr-iconv 1.2.2。下载归档文件,解压缩并将提取的文件夹放入httpd\srclib。相应地重命名它们为apr、apr-util、apr-iconv。

从这里下载expat。将使用Expat 2.2.5。下载归档文件,解压缩,进入提取的文件夹并将嵌套的expat文件夹放入httpd\srclib。

从这里下载pcre。将使用Pcre 8.42(有一个更新版本的库名为pcre2,但apache使用旧版本)。下载归档文件,解压缩并将提取的文件夹放入httpd\srclib。将其重命名为pcre。

还有一些额外的可选依赖项,将在下一篇文章中添加。现在,将使用最少的依赖项来满足构建过程。

让构建expat。转到httpd\srclib\expat文件夹并在Visual Studio中打开expat.sln解决方案。解决方案expat将包含7个项目:elements、expat、expat_static、expatw、expatw_static、outline、xmlwf。由于使用的是Visual Studio 2013,必须转到项目属性->配置属性->常规,并设置平台工具集为Visual Studio 2013 (v120)。现在,右键单击expat项目并选择构建 - 这将构建单个项目expat。

现在让构建pcre。它是一个基于cmake的项目,所以需要从这里下载cmake二进制文件并安装它们。转到httpd\srclib\pcre文件夹并创建一个名为build的子文件夹。启动控制台并cd到新创建的build文件夹。执行以下命令:cmake --help。在输出中,将看到可用的生成器。要为Visual Studio 2013生成解决方案文件,需要Visual Studio 12 2013生成器。执行以下命令:cmake -G "Visual Studio 12 2013" ..。打开生成的PCRE.sln解决方案。解决方案PCRE将包含12个项目。右键单击pcre项目并选择构建 - 这将构建2个项目:pcre和ZERO_CHECK。

现在让构建apr、apr-iconv、apr-util。转到httpd\srclib\apr-util文件夹并在Visual Studio中打开aprutil.dsw文件。在旧版本的Visual Studio中,.sln文件有.dsw扩展名,.vcxproj文件有.dsp扩展名。Visual Studio将打开以下升级窗口:点击OK并等待所有25个项目升级。准备解决方案需要一些时间,所以它可能会看起来卡住了,最后它将在浏览器中打开迁移报告网页。

右键单击libaprutil项目并转到项目设置: VC++ Directories -> Include Directories> : Add path to httpd\srclib\expat\lib directory (it contains header file) Linker -> General -> Additional Library Directories> : Add path to httpd\srclib\expat\win32\bin\Debug directory (it contains import library file) Linker -> Input> : Modify $(XML_PARSER).lib to libexpat.lib

右键单击aprutil项目并转到项目设置: VC++ Directories -> Include Directories> : Add path to httpd\srclib\expat\lib directory (it contains header file)

右键单击libaprutil项目并选择构建 - 这将构建7个项目。

现在让构建apache本身。转到httpd文件夹并打开Apache.dsw。将再次看到升级窗口:点击OK,过一会儿,将看到以下通知窗口:检查所有类似情况并点击No。转换后,转到libhttpd项目设置: VC++ Directories -> Include Directories> : Add path to httpd\srclib\pcre\build directory (it contains header file) Linker -> General -> Additional Library Directories> : Add path to httpd\srclib\pcre\build\Debug directory (it contains static library file) Linker -> Input> : Make sure we have pcred.lib打开util_pcre.c文件:在pcre.h头文件包含之前添加PCRE_STATIC宏:#include "httpd.h" #include "apr_strings.h" #include "apr_tables.h" #define PCRE_STATIC #include "pcre.h"

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485