如何在IPFire防火墙上安装fprobe(Netflow)工具
本教程是关于在IPFire防火墙上编译和安装NetFlow工具(fprobe)的。
Fprobe是基于libpcap的工具,可收集网络流量数据并将输出作为流(NetFlow)发送到指定的收集器。
受NetFlow协议支持的设备将收集所有IP流量,并将收集到的数据转发到服务器以进行进一步分析(例如流量的源和目的地,IP的带宽消耗等)。
IPFire防火墙不支持NetFlow协议,但是可以在IPFire上使用fprobe插件。
因此,在本教程中,将编译fprobe工具并将其安装在IPFire环境中。
本详细的编译教程中使用了已经创建的lfs脚本。
在IPFire上编译新插件需要LFS脚本。
环境设定
首先使用我们先前在Ubuntu 14.04上编译IPFire防火墙的文章来设置IPFire开发系统。
Ubuntu 16.04的IPFire开发环境设置几乎相同。
准备工作
在为IPFire系统编译插件之前,可以将其安装在IPFire构建系统也提供的测试环境或者shell中。
- 首先,将所需的软件包或者软件复制到ipfire-2.x目录下的缓存目录中
- 运行./make shell命令以获取用于测试软件包(fprobe)的shell。
- 提取新的插件并进入/usr/src/cache/frobe-1.1目录。
- 运行./configure脚本以检查软件包的必要性,如下图所示。
- 在开发系统上找不到pcap.h。
- Fprobe工具基于libpcap,因此以下开发库应在构建系统上可用。
apt-get install libpcap-dev
确保开发系统上的ipfire-2.x/build/usr/include/pcap下必须存在“ pcap”目录。
以下快照显示了在开发系统上找到了所需的pcap依赖关系。
Fprobe编译
在IPFire开发环境上编译新插件需要在ipfire-2.x \ lfs目录下使用lfs编译脚本(fprobe),并在构建脚本make.sh中添加脚本。
已将已创建的fprobe编译脚本用于该软件包(fprobe-1.1.tar.bz2),并将其复制到ipfire-2.x内的lfs目录下。
如下所示,fprobe工具的编译脚本位于lfs目录中。
make.sh构建脚本中的更改如下所示。
运行以下build命令,以在IPFire系统中包括新的插件。
但是,对于IPFire环境的插件加载,build命令将运行两次。
./make.sh build
第一次构建的输出显示fprobe的根文件丢失。
如上图所示,插件的根文件名与软件包的名称(fprobe-1.1)相同。
如下所示,插件的根文件位于日志目录中。
将rootfile fprobe-1.1复制到config/rootfiles/packages中,并将其重命名为fprobe软件包名称的lfs。
cp日志/fprobe-1.1 config/rootfiles/packages/fprobe
安装脚本或者make install命令(创建或者删除的文件或者文件夹)的输出存储在软件包rootfile中。
下列sed命令从软件包根文件中删除“ +”号。
sed -i's/+ //g'config/rootfiles/packages/fprobe
PakFire在IPFire上用于管理软件包,这些软件包在IPFire插件中包括三个重要的例程(install,uninstall和update)。
- 在src/paks路径中创建一个fprobe(名称与lfs脚本相同)目录。
- 将例程(安装,卸载和更新)从src/paks/default/*路径复制到src/paks/fprobe中。
重新运行用于编译fprobe插件的构建脚本。
以下输出显示了fprobe的成功编译。
在packages目录中为fprobe插件创建了新软件包(fprobe-1.1-2.ipfire),如下所示。
在IPFire上安装fprobe
将新创建的fprobe软件包(fprobe-1.1.2.ipfire)复制到/opt/pakfire/tmp路径中。
以下快照显示了fprobe软件包的提取和安装。
tar -xf fprobe-1.1.2.ipfire
运行./install.sh例程以安装已编译的软件包。