如何在IPFire防火墙上安装fprobe(Netflow)工具

时间:2020-03-05 15:32:26  来源:igfitidea点击:

本教程是关于在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例程以安装已编译的软件包。