资源描述
摘要
本文分析了开源领域流行的网络入侵检测系统——Snort,介绍了Snort的主要组成模块,以及工作流程。并给出了如何在校园网中部署网络入侵检测系统的方案。详细介绍了怎样在Linux上安装Snort以及其他配套软件以组成可以投入实际使用的入侵检测系统。最后给出了具体的应用实例——把上面安装好的入侵检测系统用来保护校园网一子网——汽车实验室的网络。
关键词:入侵检测系统,Snort,校园网
Abstract
This paper analysised the most popular network intrusion detection system Snort,introduced the main modules which composed of snort and it’s working flow.We have gived some scenarios of how to deploy the network intrusion detection system on school network.And offered detailed documents on how to setup snort and some related softwares to found a intrusion detection system which can be put in practical use on Linux operating system.Finally we put this system which setup followed by the documents to practical use to protect a subnet of our school’network — vehicle library network.
Key words: intrusion detection system,snort,school network
目录
第一章 入侵检测系统与Snort 5
1.1 校园网中面临的安全问题 5
1.2 部署NIDS的必要性,为什么要选择Snort 5
1.3 如何在校园网中部署Snort 5
1.3.1 Snort和网络体系结构 5
1.3.2 Snort和交换网络环境 7
1.4 如何保护Snort本身 7
第二章 Snort工作原理与相关配置 9
2.1 Snort的主要部件及处理过程 9
2.2 高性能的配置 10
2.2.1 软件优化 10
2.2.2 选择好的硬件 11
2.3 用Snort以及相关软件搭建一个入侵检测系统 11
2.3.1 安装数据库 12
2.3.2 安装Snort 13
2.3.3 安装ACID 14
第三章 Snort主要用途和用法 19
3.1 将Snort用作快速嗅探器 19
3.1.1 输出格式 19
3.1.2 BPF命令 19
3.1.3 日志计入磁盘 20
3.1.4 以pcap格式记录 20
3.2 将Snort用作入侵检测工具 20
3.3 将Snort用作陷阱网络(honeyport)捕获器和分析器 21
3.4 Snort日志 21
3.4.1 报警模式 21
3.4.2 日志模式 21
3.4.3 日志格式 22
3.5 向数据库记录日志 22
3.6 利用SNMP报警 23
3.7 以Barnyard和unified格式输出 23
第四章 在校园网中实际部署与应用 Snort 24
4.1 部署探测器 24
4.2 运行探测器 24
4.3 使用ACID分析警报 28
结论 37
感谢 38
参考文献 39
第一章 入侵检测系统与Snort
本章主要内容:校园网中面临的安全问题,部署NIDS的必要性,为什么选择Snort,如何部署Snort。如何保护Snort本身。
1.1 校园网中面临的安全问题
要谈校园网面临的安全问题,先要看互联网的安全问题。互联网实在是很不安全,有各种猖狂的病毒,还有躲藏在暗处的不怀好意的家伙(他们总是千方百计的想闯进别人的主机,从而偷窃重要数据或者恶意破坏)。对于校园网络,除了普通的互联网安全问题,还有另一个安全隐患——内部攻击。校园网中很多服务都是面向本校师生的,可是难保他们中也有一些人,由于种种原因而入侵服务器,干一些不该干的事。
1.2 部署NIDS的必要性,为什么要选择Snort
上面讨论了校园网中面临的诸多安全问题,那有没有办法可以解决这些问题呢,答案当然是有,她就是NIDS(网络入侵检测系统 Network Intrusion Detection System)。网络入侵检测系统的最主要作用,就是保护互联网的基础设施的安全。它能够分析网络中的数据流,看看里面是不是有网络病毒和蠕虫等攻击,它能检测到网络攻击前的扫描探测,可以在发现攻击时阻止攻击的继续进行,同时通知管理员,还能在攻击成功时发出警报,使管理员能及时采取措施减轻攻击带来的影响,防止更大的损失。
许多公司都开发出阻止和检测网络攻击的软件。但是一套入侵检测软件价值不菲,少则数千,多则上万,让人望而却步。Snort的出现无疑是一道福音,它不仅稳定有效,而且完全免费,因此拥有一个不断成长的用户群体。Snort本身是开源的,拥有众多的支持者。它能运行在众多的硬件平台和操作系统上,加上开发源码的发布模式,使得它成为入侵检测软件中非常流行的选择。因此,在校园网中安装部署Snort来保护网络是很聪明的选择。
1.3 如何在校园网中部署Snort
1.3.1 Snort和网络体系结构
如何最大程度地发挥Snort的作用呢?就是在网络中的关键地点部署Snort。而关键地点的选择和这样几个因素有关:网络的规模有多大,投资的金钱数额有多少。
如果安全投资额很小,那就根据实际的花费定位Snort需要如何布置,图1.3.1是一种Snort在网络中比较完美的部署方式。比较低的标准是确保在和外界接入的路由器之后以及要重点保护的子网中安装Snort。
图1.3.1 Snort监视路由器的结构图 图1.3.2 使用防火墙和IDS的网络结构图
很多网络管理员现在依靠配置路由器上本身的安全设置来做保护。路由器上的安全设置的功能相当于简单的防火墙,可以依据众所周知的端口,在网络层阻止特定的数据包。当假设数据包使用其他端口通过路由器时,路由器的安全配置就不起作用了。
然而,当这个数据包通过路由器时,也会被IDS监听到,这是个很理想的放置IDS的地方。图1.3.1显示了Snort监视路由器的结构图。
在图1.3.2中,我们在防火墙内部放置一台IDS,另一台放置在外部的路由器和防火墙之间。这里我们假设路由器的访问列表启用,已经预先过虑了一些网络流量。不把Snort放在网络外面的原因时那样可能会增加很多不准确的报警,而且让Snort受攻击的危险大大增加。Snort放置在防火墙内部非常重要,这样既可以监视到频繁的攻击,又能减少很多漏报和误报,只检测那些经过防火墙规则过滤后还有可能攻击的数据流。然而,把IDS放在路由器和防火墙之间也有好处,那样的报警信息多,在收到攻击后做检查时有用。
然而,很多网络结构中都有非军事化区(DMZ,Demilitarized Zone),在DMZ区放置提供公共的服务器,例如WEB服务器,FTP服务器和其他应用服务器等。当然外网中也可以有DMZ区。在这个例子中,我们讨论DMZ区内的公共服务器,图1.3.3显示了这种结构。
图1.3.3 带DMZ区的防火墙网络结构图 图1.3.4防火墙的DMZ区使用Snort的网络结构图
本例中,我们需要三个Snort系统:一个在路由器内部,一个在DMZ区内部,一个在防火墙内部。使用这么多IDS机器的原因时要保护不同的网络子网。在网络中布置Snort的最佳原则时:
n 在路由器内放置一台。
n 在每个我们想要保护的子网中放置一台。
图1.3.4显示了这种结构。
1.3.2 Snort和交换网络环境
Snort也能用在交换网络环境中。交换网络环境已经越来越流行,用Snort来监视交换网络环境的需求也越来越大。交换机可以放在路由器或防火墙的内部。
可以直接把Snort接到交换机的SPAN(Switch Port Analyser)端口上。Snort可以对从被监听的端口上“拷贝”来的数据包进行分析。我们可以定义希望被监听的端口。通常,我们只监听一个端口,如果多了的话,可能对交换机的SPAN端口造成堵塞,从而降低交换机和IDS的工作性能。
1.4 如何保护Snort本身
尽管使用Snort是为了增加网络的安全,但更要尽可能的保护Snort系统本身的安全。如果Snort被入侵,那么Snort所发送的那些报警信息就不可信了。
一个典型的安装了Snort的系统易受到攻击。为什么呢?这是因为我们可能想使用SSH远程控制Snort系统,也可能想用数据库(MySQL或Postgres)存储警告信息。另外,我们可能还想有一个好看的查询报警信息的界面,这样也许会用到WEB服务器(Apache或IIS)。安装了Snort的操作系统中有了这么多的应用程序,而很多应用程序都是经常被发现安全漏洞的。像其他应用程序一样,Snort本身也有很多安全问题。为了加固我们的Snort系统,Snort必须经常升级,保证使用最新版本的Snort程序和最新的规则。还要对操作系统进行加固:禁止不需要的服务、及时打补丁、正确配置各种软件、加密重要数据。
可以让Snort在秘密模式下运行(Stealth Mode)。从而在一定程度上保证它的安全。
当它运行在秘密模式下,外界探测不到运行Snort的系统是否存在(从而保证安全)。可以通过不给Snort系统的网络接口卡设定IP地址来达到此目的(也有其它方法)。在这种情况下,要想运行Snort,首先要将网卡激活。在Linux下达到此目的的命令为:
ifconfig eth0 up
这里假设eth0是Snort要监听的接口。在秘密模式下也可以通过远程来操作Snort。你可以让Snort系统拥有两个网卡:eth0,eth1。其中eth1连接到内部私有网络(需要设定IP地址),而eth0(没有设定IP地址)连接到外部网络。
第二章 Snort工作原理与相关配置
本章先简单介绍了Snort的工作原理,并针对处理高速网络的情况给出了一些建议,然后讲述了怎样利用Snort和其他一些相关软件搭建成一个可以投入实际使用的网络入侵检测系统,并给出了详细的安装文档。
2.1 Snort的主要部件及处理过程
在讨论Snort内部机制的时候,图2.1有助于阐明各个部件的工作原理,并且提供了Snort在处理过程中的高层次的视角。
报警/日志
数据流
输出插件
检测插件
检测引擎
预处理器插件
包解码引擎
Snort
嗅探
图2.1 Snort的主要部件及处理过程
下面是Snort的四个主要部件以及Snort的处理过程描述:
① 包捕获/解码引擎。首先,利用libpcap从网卡捕获网络上的数据包(需要将网卡设置为混杂模式),然后数据包(数据链路层的原始数据包)经过解码引擎解码。在解码过程中Snort将数据包填入到链路层协议的包结构体中,以便为后继的预处理器和检测引擎的分析做准备。
② 预处理器插件。接着,数据包被送到各种各样的预处理器中,在检测引擎处理之前进行检查和操作。每个预处理器检查数据包从而决定是否产生一个报警或者丢弃数据包或者修改数据包。
③ 检测引擎。然后,包被送到检测引擎。检测引擎通过各种规则文件中的不同选项来对每个包的特征和包信息进行单一、简单的检测。检测引擎插件对包提供额外的检测功能。规则中的每个关键字选项对应于不同的检测引擎插件,能够提供相应的检测功能。
④ 输出插件。输出插件与Snort中的其他部件不同,因为进入输出插件的入口不只一个。不同的部件在不同的阶段使用输出插件。
l 数据包解码引擎会使用输出插件,例如,输出至TCPDump格式或者ASCII格式。
l 预处理器程序会使用输出插件进行报警,但是有一些有它们自己的输出格式,例如,portscan2预处理器程序。
l 检测引擎会使用输出插件来报警和记录日志。
不过从长远看来,输出阶段会成为一个独立的过程。因为当监视高速网络时,我们不想等待输出插件向数据库中记录报警。将输出阶段分离为一个独立的过程,才能适应高速网络的需要。
2.2 高性能的配置
当我们在网络中实际部署Snort时,如果网络流量很大,这时让Snort运行在网络入侵检测系统模式下(参加第三章),可能发现丢失了很多数据包。而我们使用一个NIDS的目标就是检测网络上所有感兴趣的数据流,好的探测器的要点就是保证所有的包都被捕获并记录下来。为此我们要通过适当的配置,让Snort能适应高速网络。提高Snort处理性能的方法不外乎从软件和硬件着手,我们先谈软件,再看硬件。
2.2.1 软件优化
首先是选择一个合适的操作系统,因为Snort最初是在Linux上编写的,而Linux本身也是最强大、最易移植、最优化的操作系统,其性能比Solaris和Windows更胜一筹。Linux是低性能机器的最好选择。在Linux中你可以下载libpcap的优化版本来提高性能——http://public.lanl.gov/cpw/。
使用恰当的规则至关重要。如果规则配置不当,会产生很严重的问题。规则过少固然能提高速度,但是恐怕不能起到保护网络的作用;提供详细的规则看上去能很好的保护网络,但是也许会导致大量的数据包丢失。要为具体保护的网络量身定做规则。这需要遵循以下两条原则:
1. 标识出在网络中使用的关键协议和服务。如果NetBIOS和HTTP服务是一个特定的网段中使用的全部协议,那么只需要应用那些与这两个协议相关的规则。另外再创建一条通用规则用以记录流量,该规则定义了试图连接到未被使用的网络服务上的外部资源。
2. 决定取证日志所需要的粒度水平。例如,如果仅仅是一个研发网络,攻击的详细记录和规则可能不需要像金融或者公众网络要求得那么严格。
通过配置预处理器能提高性能。预处理器的唯一价值是它在把数据传递到Snort规则集之前对数据进行分析。例如:它能对包进行重组、对协议进行解码、还能进行异常检测等等。这些工作非常有用,正因为预处理器对数据包进行预先分析,使得接下来检测引擎的工作得以简单化,它们让规则更容易书写,而Snort卓越的速度正是源于简单的规则匹配。当然,预处理器本身也会消耗性能。好在Marty Roesch前瞻性的将预处理器设计为模块化的插件,我们可以根据需要选用它们。每个插件在snort.conf文件中被单独配置,我们可以根据具体需要选择合适的预处理器插件,兼顾效果与性能。下面是一些可以依据的规则:
1. 不要使用任何单独的预处理器见识超过10000个以上的连接。
2. 无需使用多个端口扫描预处理器。
3. HTTP解码只需在有HTTP连接的系统上使用,换句话说,就是在我们的Web服务器上使用。
4. 使用新的stream4进行包重组和检查。
5. 和HTTP解码类似,用于Telnet和FTP的Telnet解码应仅仅用于与Telnet和FTP服务器通信的系统上(在大多数情况下是23端口和21端口)。
还有其它一些优化方法,如Snord2.0版本的结构允许“acquisition插件”,这些插件允许开发者为特定的操作系统(如Linux)编写特定的包捕获网卡驱动并且这个插件将为Snort提供更高速的包捕获。这样做将失去Snort的可移植性,因为它被绑定到特定的网卡和操作系统,然而由于这种和网卡的结合,我们将获得更高的包捕获速度。
如果想让Snort运行的很快(比如说要跟上1000 Mbps 的连接),你需要使用统一的记录格式(二进制格式)和读取工具(比如说barnyard)。它允许Snort用统一输出插件(spo_unified.c和spo_unified.h)快速有效的把报警和日志写入一个二进制文件(“统一格式”),同时让另外的程序(barnyard)执行较慢的缓冲区工作,读入“统一”格式的文件并以不同的格式输出,比如将它写到一个数据库中。
上面谈到的都是关于如何在软件上进行优化,另外选择好的硬件也非常重要。下面我们谈谈关于硬件的选择。
2.2.2 选择好的硬件
Snort一大优点就是免费,我们选择了它,就不用将资金浪费在软件上,成本是我们永远关心的话题,特别是如果我们还得花钱购买额外的硬件。影响探测器性能的因素有以下这些:
n 处理器的速度和架构
n 内存
n 磁盘容量
n 网络接口
处理器的速度和架构将决定数据包被分析和规类的速度,必须确保处理器足够快,以免造成阻塞造成丢包。
必须有足够的内存用于高效的运行操作系统和Snort,同时还必须提供足够的空间用于保证输入的数据包在被传送到硬盘或其它存储介质之前能够保存在系统内存里。同样我们还需一个大硬盘用来保存日志文件。关于硬件选择的最后一点就是网卡,至少要配一块100Mb/s的网卡。如果资金充足的话,再配备一块千兆网卡。在这种情况下,几乎不会发生丢包的情况。
2.3 用Snort以及相关软件搭建一个入侵检测系统
要想在现实中把Snort用于入侵检测,仅仅安装Snort本身是远远不够的。不信你可以作个试验,在一个负载较大的网络环境中建立一个Snort,用发布中缺省的规则,让它运行一周(也许只需几个小时),你将会大吃一惊,怎么会有如此多的报警(可能是成千上万)。这么多的报警意味着管理员无法通过简单的浏览日志文件来获取网络中发生的事情。入侵检测的重要性不仅在于记录事件,而且还在于对一些入侵尝试做出实时反应,对记录下来的数据进行分析并得出结论,再基于结论作最后的决策。为了满足这些需求,你还需要安装数据库,比如说MySQL(它用来存储Snort产生的报警信息并且存储数据包);安装WEB服务器,比如说Apache(之所以安装服务器,是因为ACID工具需要它);安装数据分析工具,比如说ACID(ACID本质上是一些PHP脚本,它提供Web浏览器和存储报警数据的数据库之间的接口。它可以用来进行数据浏览和分析);安装统一文件处理工具,现阶段最好的是Barnyard(统一文件是Snort为了处理高速网络所采取的措施,它可以直接将结果输入到二进制文件中,而将耗时的写数据库操作留给了别的工具,比如说Barnyard,Barnyard读取这些二进制文件再将它们转换为需要的格式。)。还有一些其他非常有用的工具,比如说Swatch(Simple Log Watcher and Filter),它检测用户的日志文件,以检查是否触发了一些条件,如果触发了,就执行某一动作,并向管理员发送一个关于这一事件的电子邮件,甚至可以给管理员的呼机发送信息。还有SnortSnarf,它对Snort的日志文件进行分析,生成一套静态的结果页面。上面介绍了这么多相关的软件,它们并不能随意安装,因为某些软件的安装需要别的软件已经安装作为前提。下面是这些软件的详细安装文档,这里我选择的操作系统是Linux(因为Snort在Linux上的性能比Windows好),整个Snort入侵检测系统的安装还是比较复杂的,特别是如果你对如何在Linux上安装软件还不熟悉,不过不用担心,下面我会一步一步的详细介绍如何在Linux上搭建Snort入侵检测系统。(这里请注意,我的安装步骤也仅仅是一种参考,在笔者的机器上是可行的,但具体到你的机器上也许未必可行,但应该还是大同小异的。如果你对Linux操作系统真的很陌生,建议你先找一些Linux的入门资料来看。在一个完全不熟悉的操作系统上安装一整套软件,真的非常痛苦,笔者就是这么过来的。)
在安装前还有一些话要说,这是关于操作系统的。在安装Linux时,请务必选择与开发相关的软件包。不要以为你不会在Linux上进行软件开发,就不选择它们。因为我们要安装的大部分软件,是通过源代码手工编译安装的,如果你没有相关的软件开发包,很可能发生各种莫名其妙的错误,让人摸不着头脑。如果你的Linux已经安装好了,也可以通过更新软件包的方式,再将它们装上去。虽然不是所有的开发包都需要,但是我也不太清楚到底需要哪些(估计谁也不清楚),从简单的原则出发,建议你将“Development”下的诸如“Developmnet Tools”,“Kernel Development”,“X Software Development” 等等全选上。还有一点要说明的是,安装这些软件最好是以root身份进行。
2.3.1 安装数据库
首先安装数据库,Snort可以把数据包和报警信息记录到好几种数据库中,包括MySQL、PostgreSQL、SQLServer、Oracle和任何兼容UNIX ODBC的数据库。鉴于MySQL数据库越来越流行,而且还是开源的,因此我们选择使用它作为入侵检测系统的数据库。
从MySQL官方网站(www.mysql.org)下载二进制版本,解压缩,阅读说明文件,执行相应的脚本。这个过程比较简单,因为下载的是预编译的二进制版本(不推荐用源代码进行安装,因为那样很复杂),你只需执行一些相关的脚本进行配置就可以了,这在解压缩后包含的说明文件中已经讲的很详细了,所以我也无需多费唇舌。数据库安装好后最好新建一个用户专门用来操作数据库,我创建的用户是mysqlusr。接着你可以尝试启动、关闭MySQL服务器,看看是否安装正常。(强烈建议你将启动服务器、关闭服务器、连上服务器等方法写在纸上,因为这些命令很复杂、又很常用,写在纸上代替大脑记忆非常的方便。其中/usr/local/mysql是mysql的安装目录,你也可以选择另外的目录。)
①启动服务器: /usr/local/mysql/bin/mysqld_safe --user=mysqlusr --log &
②关闭服务器: /usr/local/mysql/bin/mysqladmin --user=root shutdown
再次启动服务器: /usr/local/mysql/bin/mysqld_safe --user=mysqlusr --log &
③连上服务器: /usr/local/mysql/bin/mysql -h localhost -u root -p
④创建snort数据库,该数据库即是Snort用来存放数据包和报警的地方。
create database snort;
⑤创建snort数据库的用户,赋予他一定的权限,并且设定密码:
grant CREATE,INSERT,UPDATE,SELECT on snort.* to snortusr@localhost;
set password for 'snortusr'@'localhost' = password('nedzq');
如果一切正常,数据库的安装工作就到此结束了。下面讲Snort的安装。
2.3.2 安装Snort
首先从www.tcpdump.org下载最新版本的libpcap软件包,放在/home/koala目录下。接着启动终端,进行如下操作:
① 进入该目录 cd /home/koala
② 解压缩下载的文件 tar zxvf libpcap-0.7.1.tar.gz
③ 转至解压缩后的文件目录 cd libpcap-0.7.1
④ 运行配置文件 ./configure
⑤ 键入 make
⑥ 键入 make install
如果一切正常,则libpcap就安装好了。Libpcap 的安装步骤很具典型性,一般从源代码进行安装大都要经过这样几步。Libpcap是Snort的安装前提,当libpcap安装好后,就可以安装Snort了。
从Snort的官方网站www.snort.org 下载Snort的最新版本,放在/home/koala目录下,接着启动终端(如果终端已经启动,自然不需要再启动终端),进行如下操作:
① 进入下载目录 cd /home/koala
② 解压缩下载的文件 tar zxvf snort-2.1.2.tar.gz
③ 转至解压缩后的文件目录 cd snort-2.1.2
④ 运行配置文件 ./configure --prefix=/opt/snort --enable-flexresp --with-mysql=/usr/local/mysql
该配置选项使得Snort安装在/opt/snort目录下,并且支持MySQL数据库。
⑤ 键入 make
⑥ 键入 make install
安装完毕,不过还有几件事情要做:
① 新建目录/var/log/snort,这是Snort默认情况下存放日志的地方。
② 新建目录用来保存Snort的配置文件,我创建的目录是/opt/snort/config。
③ 从源代码目录中将配置文件(配置文件在源代码的etc目录下,配置文件后缀名为.conf)拷贝到/opt/snort/config目录下。
④ 新建目录/opt/snort/rules,并且将规则文件从源代码目录中拷贝到该目录下。规则文件在源代码目录的rules目录下,以.rules后缀名结尾。
⑤ 修改snort.conf文件,让snort输出到数据库。 output database: log, mysql, user=snortusr password=nedzq dbname=snort host=localhost
⑥ 为Snort的数据库创建表格。先启动MySQL服务器
/usr/local/mysql/bin/mysqld_safe --user=mysqlusr --log &
利用snort源代码中提供的脚本,创建表格。
usr/local/mysql/bin/mysql -h localhost -u snortusr -p snort < /home/koala/snort/contrib/create_mysql
我们可以看看创建了哪些表格,先连上服务器
usr/local/mysql/bin/mysql -h localhost -u snortusr -p snort
然后键入show tables;
结果如下:
+------------------+
| Tables_in_snort |
+------------------+
| data |
| detail |
| encoding |
| event |
| icmphdr |
| iphdr |
| opt |
| reference |
| reference_system |
| schema |
| sensor |
| sig_class |
| sig_reference |
| signature |
| tcphdr |
| udphdr |
+------------------+
16 rows in set (0.00 sec)
如果你想知道某个表格的具体结构,看看它到底有哪些字段,可以键入如下命令:
describe iphdr;
⑦ 创建额外表格:解压缩 snortdb-extra.gz,该文件在源代码的contrib目录下。该文件创建额外的表格,如果你想以文本“Telnet prot”来显示源和目的端口,而不是用“23”来显示,那么,你就需要这些信息。
利用解压缩后的文件,创建额外表格:/usr/local/mysql/bin/mysql -h localhost -u snortusr -p snort < /home/koala/snort/contrib/snortdb-extra
该步工作共创建了三个额外表格:flags、services、protocols。
至此,关于Snort和数据库的安装和配置工作就完成了。
2.3.3 安装ACID
ACID的安装工作可能是最复杂的,首先你要确保使用ACID的主机上有X-Windows包(参见本节开头部分),然后你还要安装Web服务器、PHP、一大堆支持库,然后安装ACID并激活,配置它,才能使它工作。听起来挺吓人的,让我们现在就开始这段旅程吧!
一、安装Apache。
从Apache官方网站 www.apache.org 下载源代码手工编译。我下载了 httpd-2.0.49.tar.gz ,放在了/home/koala中。进行如下操作安装Apache。
① 进入下载目录,cd /home/koala
② 解压缩下载的文件,tar zxvf httpd-2.0.49.tar.gz
③ 给解压缩后的文件 httpd-2.0.49 起个绰号,以方便使用。ln -s httpd-2.0.49 httpd
④ 进入解压缩后的文件目录,cd httpd
⑤ 运行配置文件,./configure --prefix=/usr/local/apache2
⑥ 键入 make
⑦ 键入 make install
如果没有出什么问题,Apache就安装好了。
二、安装PHP。
ACID脚本使用PHP语言写的,因此需要让Web服务器支持PHP4。可以有多种方法实现这一点。例如,可以把PHP4作为一个Apache模块建立,或者作为外部的CGI应用运行。我们需要下面这些重要功能:
n 数据库支持 在这里,我们选用MySQL。
n 图形库GD的支持 这是一个产生图形的图形库。
n 套接字支持 这仅用于执行本地的whois查询。
数据库我们已经安装好了,下面安装图形库GD。
⒈安装图形库GD。
图形库GD是一个支持基本图像处理的函数库,它还依赖于一些其他的库(这些库通常是安装系统的一部分,但有时不是这样,至少在笔者的机器上不是。),如下所示:
n zlib,可以从站点http://www.gzip.org/zlib 下载。
n libpng,可以从站点http://png- 下载。
n freetype,可以从站点 下载。
n ibjpeg-6b,可以从站点http://www.ijg.org/files/ 下载。
n X Pixmap library,可以从站点http://koala.ilog.fr/ftp/pub/xpm/ 下载。
我先把这些库文件一次性都下载下来,放在/home/koala中,然后再逐个安装。
⑴安装zlib。
① 进入下载目录,cd /home/koala
② 解压缩下载的文件,tar zxvf zlib-1.2.1.tar.gz
③ 给解压缩后的文件,zlib-1.2.1 起个绰号,以方便使用。ln -s zlib-1.2.1 zlib
④ 进入解压缩后的文件目录,cd zlib
⑤ 查看配置文件的帮助信息,./configure –help
⑥ 运行配置文件,./configure
⑦ 键入 make
⑧ 键入 make install
⑵安装libpng。
① 进入下载目录,cd /home/koala
② 解压缩下载的文件,tar zxvf libpng-1.2.5.tar.gz
③ 给解压缩后的文件起个绰号,以方便使用。ln -s libpng-1.2.5 libpng
④ 进入解压缩后的文件目录,cd libpng
⑤ 查看配置文件的帮助信息,./configure –help
会提示你它没有 configure 文件, 阅读 INSTALL 文件进行相关的操作。
cp scripts/makefile.std makefile
make test
在本目录下生成了库文件。
⑶安装freetype。
① 进入下载目录,cd /home/koala
② 解压缩下载的文件,tar zxvf freetype-2.1.8.tar.gz
③ 给解压缩后的文件起个绰号,以方便使用。ln -s freetype-2.1.8 freetype
④ 进入解压缩后的文件目录,cd freetype
⑤ 查看配置文件的帮助信息,./configure –help
⑥ 运行配置文件,./configure --prefix=/usr/local/freetype
⑦ 键入 make
⑧ 键入 make install
⑷安装ibjpeg-6b。
① 进入下载目录,cd /home/koala
② 解压缩下载的文件,tar zxvf jpegsrc.v6b.tar.gz
③ 进入解压缩后的文件目录,cd jpeg-6b
④ 查看配置文件的帮助信息,./configure –help
⑤ 运行配置文件,./configure (千万不要指定安装目录,否则在make install时会发生错误,至于为什么不能指定安装目录,我也不知道,这只是经验之谈。因为笔者在指定安装目录时发生了错误,而不指定,反而能够正确安装。)
⑥ 键入 make
⑦ 键入 make test
⑧ 键入 make install
⑸安装X Pixmap library。
安装该文件要用到工具imake,可以从站点 下载。我从该站点下载了 itools-R6.3.tar.gz ,据说包含 imake 工具。执行下面操作安装imake工具。
① 进入下载目录,cd /home/koala
② 解压缩下载的文件,tar zxvf itools-R6.3.tar.gz
③ 进入解压缩后的文件目录,cd itools-R6.3 。阅读readme.txt 和 appb.txt ,按照要求进行相关操作。
对文件 /config/extras/extras.tmpl 进行了这样的操作:
1.for All systems:
创建了目录 /usr/local/lib/config
2.for UNIX systems:
我该变了 PERLPATH 变量,使它指向我的 perl 安装目录。
PERLPATH = /usr/bin/perl
未修改之前 PERLPATH 的值是 /usr/local/bin/perl
④ 继续安装imake工具。键入ma
展开阅读全文