荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: georgehill (人生不定式), 信区: Linux
标  题: Snort INSTALL文件(转寄)
发信站: BBS 荔园晨风站 (Fri Sep  8 17:51:07 2000), 站内信件

【 以下文字转载自 georgehill 的信箱 】
【 原文由 georgehill.bbs@smth.org 所发表 】
发信人: xuzq (奔腾), 信区: Security
标  题: Snort INSTALL文件(转寄)
发信站: BBS 水木清华站 (Thu Sep  7 15:44:31 2000)


如何安装SNORT(INSTALL文件)

翻译:xuzq(xuzq@chinasafer.com)

快速参考:
1. 确信libpcap软件包已经在系统中安装了。
2. ./configure
3. make
4. make install
5. 制作规则示例文件(如果想要使用规则,参阅snort-lib文件)
6. 运行snort -?(带选项)
7. 如果系统中已经有了老版本的Snort,应该重写已有的规则以使它们和规则格式兼容。
有关规则格式的信息请参阅RULES.SAMPLE文件。
8. 玩得开心Have fun!

Snort的配置选项(Configure-time switches)
`--enable-smbalerts'
激活SMB告警代码,这在安全性方面会有些问题,因为它在程序中以ROOT身份执行了
popen()调用。使用这个选项要小心。
`--enable-flexresp'
激活灵活响应代码,这允许当规则匹配时取消IP层的敌意连接。如果要使用这个特性,就
要安装libnet库,这个包可以从http://www.packetfactory.net/libnet处取得。详情请
参阅README.FLEXRESP文件。这个功能仍然处于alpha测试状态,要小心使用。
`--with-libpq-includes=DIR'
将PostgresSQL数据库支持的Include目录指到DIR。
`--with-libpq-libraries=DIR'
将PostgresSQL数据库支持的库目录指到DIR。如果设置了以上这两个值就可以使用
Postgres的输出插件模块。
`--with-libpcap-includes=DIR'
如果配置脚本不能找到libpcap的包含文件,使用这个选项来指定libpcap包含文件的目录

`--with-libpcap-libraries=DIR'
如果配置脚本不能找到libpcap的库文件,使用这个选项来指定libpcap库文件的目录。

数据库支持插件从snort的1.6.3版本开始作为snort的一部分发布。该插件使snort能够记
录到mysql,postgresql和支持unixodbc的任何数据库。可以使用该插件从多个sensor记
录到一个中央数据库服务器上。
   --with-mysql-includes=DIR      mysql include directory
   --with-mysql-libraries=DIR     mysql library directory
   --with-unixodbc-includes=DIR   unixodbc include directory
   --with-unixodbc-libraries=DIR  unixodbc library directory
   --with-libpq-includes=DIR      libpq include directory
   --with-libpq-libraries=DIR     libpq library directory
在./config脚本中要提供正确的参数。
例如:要支持mysql,如下:
% ./configure --with-mysql-includes=/usr/include/mysql \
                 --with-mysql-libraries=/usr/lib/mysql
运行上面的语句会显示以下的输出:
checking for /usr/include/mysql/mysql.h... yes
   checking for mysql_init in -lmysqlclient... yes
如果这一步成功了,就运行make。如果不能得到yes,检查连接mysqlclient时需要数学库
 "-lm",手工修改  Makefile,使其包含以下内容。
   CPPFLAGS =  -I/usr/include/mysql -I/usr/include/mysql -DENABLE_MYSQL
   LDFLAGS =  -L/usr/lib/mysql   LIBS = -lpcap -lnsl -lmysqlclient -lm


基本安装
==================
以下是基本安装的指令。
'configure'shell脚本用于在编译过程中猜测许多与系统有关的变量的正确值。它使用这
些值在软件包的每一个目录中创建Makefile文件。也用于创建包含有与系统有关的信息定
义的一个或多个.h头文件。最后它创建一个名为config.status的shell脚本,该脚本用于
在将来重建当前的配置
。文件config.cache中保存了配置测试的结果用于加速重新配置过程。文件config.log包
含编译的输出信息(主要用于调试configure)。
如果在编译这个软件包时要做一些额外的配置工作,请检查configure脚本看看是否已经
做了,如果有出入,请给在README文件中提供的邮件地址发信,这样在下一个发行版本中
就可能包含这些改动。如果在config.cache文件中包含不想保存的结果,可以直接编辑或
删掉它们。
configure.in文件是程序autoconf用于创建configure的依据。如果想要修改这个文件,
或者使用新版本的autoconf来重新生成configure时,才会用到这个文件。
编译这个软件包最简单的步骤是:
1. cd到包含软件包源码的目录,执行命令./configure为自己的系统配置这个包。如果使
用的是旧系统V上的csh,可能应该执行sh ./configure命令,以避免使用csh来执行整个
configure脚本。运行configure会花费一些时间,在运行过程中,会在屏幕上显示正在检
查哪些特性。
2. 键入make命令来编译整个包。
3. 可选的,键入make check来运行软件包的自检功能。
4. 键入make install来安装所有的程序、数据文件和文档。
5. 使用make clean命令可以删除在源代码目录中的二进制和目标文件。要删除configure
脚本生成的文件(这样就可以在别的类型的计算机上编译这个包),使用make distclean
命令。这里还有一个make
maintainer-clean目标,但这主要是针对软件包的开发者的。如果使用这个目标,必须获
取重建该软件发行版本文件的所有其他程序。

编译器及其选项
=====================
某些系统需要configure脚本不知道的一些不常用的编译或连接选项。可以通过在环境变
量中给这些变量赋值,从而向configure传递这些变量的初始值。如果使用的是与
Bourne-Shell兼容的shell,就可以使用如下命令完成这一功能:
   CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
或者系统有env程序,还可以用下面的命令完成同样的功能:
     env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure


为多体系结构平台编译
====================================
可以同时为多于一种计算机编译这个软件包,只需将每种体系结构的目标文件放到它们自
己的目录中即可。为此,所使用的make必须支持VPATH变量,比如GNU
make就可以。Cd到想要放置目标和可执行文件的目录中,运行configure脚本。Configure
脚本会自动检查该目录及其上一级目录中的源代码。
如果使用的make不支持VPATH变量,必须在源代码目录中一次为一种体系结构平台编译这
个软件包。在成功安装软件包之后,在为另一种体系结构平台重新配置之前,使用make
distclean命令删除这次配置生成的文件。

安装路径
==================
默认情况下,make install会把这个包的文件安装到/usr/local/bin和/usr/local/man等
目录中。如果不希望安装到/usr/local目录中,使用configure的--prefix=PATH选项,可
以指定其他的安装前缀。
安装前缀可以把与体系结构相关和与体系结构无关的两种文件安装到不同的目录中。如果
使用configure的--exec-prefix=PATH选项,软件包会将程序和库文件安装到PATH指定的
目录中,文档和其他数据文件仍旧使用常规前缀。
另外,如果使用不常见的目录规划层次,可以使用--bindir=PATH之类的选项为不同类型
的文件指定特别的安装目录。运行configure -help能够得到什么样的文件可以安装到什
么目录中的目录列表。
如果软件包支持,使用configure的--program-prefix=PREFIX或--program-suffix=SUFFI
X选项,可以给程序名加上特别的前缀或后缀。


可选特性
=================
某些软件包关心configure的--enable-FEATURE选项,FEATURE是指软件包的可选部分。这
些软件包可能还关心--with-PACKAGE选项,PACKAGE是指诸如gnu-as或x(指X Window
System)。README文件中应该涉及该软件包可以识别哪些--enable-和--with-选项。
对使用X Window System的软件包来说,通常configure可以自动找到X的包含文件和库文
件,但是如果找不到,可以使用configure的--x-includes=DIR和--x-libraries=DIR来指
定它们的位置。
下面的配置选项适用于Snort:
--enable-smbalerts
激活SMB告警代码,因为它从以ROOT特权运行的程序中执行popen()调用,所以多少会有点
不安全。请注意这一点,谨慎使用。
--enable-flexresp
激活灵活响应代码,当一个规则匹配后,允许在IP层取消敌意的连接。当激活这个特性时
,需要libnet库的支持,这个软件包可以在http://www.packetfactory.net/libnet下载
。详细情况参见README.FLEXRESP文件,该功能仍处于alpha测试阶段,小心使用。

指定系统类型
==========================
有些特性configure没法自动探知,需要由主机类型来决定。通常configure能够探知主机
类型,但是如果失败了,可以使用--host=TYPE选项来指定主机类型。主机类型可以是系
统的简称,比如sun4,或者是包含三个域的规范名称:CPU-COMPANY-SYSTEM
每个域的可能取值请参见config.sub文件。如果软件包中没有这个文件,说明这个软件包
不需要知道主机类型。
如果为了交叉编译(cross-compiling)制作编译工具,可以使用--target=TYPE选项来选
择系统类型,编译工具为这个指定的系统产生代码。使用--build=TYPE选项来选择编译软
件包所在平台的系统类型。

缺省共享(Share Default)
=========================
如果希望为configure脚本设置共享的缺省值,可以创建名为config.site的站点shell脚
本,该脚本给出诸如变量CC,cache_file,prefix等的缺省值。如果PREFIX/share/confi
g.site
存在,configure会首先使用它,然后会去查找PREFIX/etc/config.site文件。或者通过
设置环境变量CONFIG_SITE来指定站点脚本文件的位置。警告:并非所有的configure脚本
都查找站点脚本。

操作控制
==================
configure可以识别一下选项来控制其工作方式:
--cache-file=FILE
在FILE而不是./config.cache文件中使用并且保存测试结果。为了调试configure,可以
将FILE指向/dev/null从而禁止caching。
--help
打印configure的选项概要并退出。
--quiet
--silent
-q
不打印有关检查项目的信息。重定向到/dev/null,可以禁止所有的普通输出(错误信息
还会显示)
--srcdir=DIR
到DIR目录中查找软件包的源代码。通常,configure可以自动确定这个目录。
--version
打印产生configure脚本的Autoconf版本,然后退出。
Configure也可以接受一些其他的,但是并不常用的选项。


--

※ 来源:·BBS 水木清华站 smth.org·[FROM: 210.73.88.186]
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.115]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店