Sagan 开源项目教程
1. 项目的目录结构及介绍
Sagan 项目的目录结构如下:
sagan/
├── AUTHORS
├── CHANGELOG
├── CMakeLists.txt
├── COPYING
├── README.md
├── apps
│ ├── sagan-benchmarks
│ ├── sagan-config
│ ├── sagan-rules
│ ├── sagan-stats
│ └── sagan.c
├── cmake
│ └── Modules
├── config
│ ├── sagan-alert.config.in
│ ├── sagan-bpf.config.in
│ ├── sagan-classification.config.in
│ ├── sagan-custom.config.in
│ ├── sagan-geoip.config.in
│ ├── sagan-ignore.config.in
│ ├── sagan-logging.config.in
│ ├── sagan-output.config.in
│ ├── sagan-parsers.config.in
│ ├── sagan-references.config.in
│ ├── sagan-tags.config.in
│ └── sagan.config.in
├── contrib
│ ├── init
│ ├── logrotate
│ └── systemd
├── doc
│ ├── Doxyfile
│ └── sagan.1.in
├── lib
│ ├── bpf
│ ├── classification
│ ├── geoip
│ ├── ignore
│ ├── logging
│ ├── parsers
│ ├── references
│ ├── rules
│ ├── stats
│ ├── tags
│ └── util
└── tests
├── benchmarks
├── config
├── rules
└── unit
目录介绍
apps/
: 包含 Sagan 的主要应用程序文件,如sagan.c
是主程序文件。config/
: 包含 Sagan 的配置文件模板,如sagan.config.in
。contrib/
: 包含 Sagan 的辅助脚本和配置文件,如 init 脚本和 systemd 服务文件。doc/
: 包含 Sagan 的文档文件,如Doxyfile
用于生成文档。lib/
: 包含 Sagan 的库文件,如bpf
,classification
,geoip
等。tests/
: 包含 Sagan 的测试文件,如单元测试和配置测试。
2. 项目的启动文件介绍
Sagan 的主启动文件是 apps/sagan.c
。这个文件包含了 Sagan 的主要逻辑和初始化代码。要启动 Sagan,通常需要编译并运行这个文件。
编译和启动步骤
- 克隆项目仓库:
git clone https://github.com/quadrantsec/sagan.git
- 进入项目目录:
cd sagan
- 使用 CMake 进行配置:
cmake .
- 编译项目:
make
- 运行 Sagan:
./apps/sagan
3. 项目的配置文件介绍
Sagan 的配置文件位于 config/
目录下,主要的配置文件是 sagan.config.in
。这个文件包含了 Sagan 的所有配置选项,如日志记录、规则、分类等。
配置文件示例
[sagan]
# 日志级别
log_level = info
# 日志文件路径
log_file = /var/log/sagan.log
# 规则文件路径
rules_file = /etc/sagan/rules/sagan.rules
# 分类文件路径
classification_file = /etc/sagan/classification.config
# 输出配置
output = syslog
配置文件选项
log_level
: 设置日志的详细程度,可选值为debug
,info
,warning
,error
。log_file
: 设置日志文件的路径。rules_file
: 设置规则文件的路径。classification_file
: 设置分类文件的路径。output
: 设置日志的输出方式,如syslog
,file
,stdout
等。
通过修改这些配置文件,可以定制 Sagan 的行为和输出。