介绍
本文是关于编译和安装用于IPFire(基于Linux的防火墙)的PSAD(端口扫描攻击检测器)。 然而,将为新的插件(在这种情况下为PSAD)的编译设置IPFire的开发环境。 有关PSAD工具的配置和使用的详细信息,请参见我们上一篇文章 。
设置IPFire开发环境
IPFire开发环境的先决条件包括:
- Ubuntu 16.04 LTS操作系统与最新的更新
- 安装以下所需的软件包
git gcc g++ make bzip2 realpath
- 硬件资源如5-6 GB磁盘空间和6 GB RAM,以减少编译时间。
类似地,IPFire开发环境可以在其他Linux发行版上设置。 安装在Ubuntu发行版上编译源代码所需的以下软件包。 Git工具用于克隆开发系统上的源代码。
aptitude install git gcc g++ make bzip2 realpath
IPFire源码树
目前,在github站点上提供了两个IPFire源代码库。
- IPFire 2.x(稳定发布)
- IPFire 3.x
在本教程中,我们已经考虑了用于编译新插件的IPfire 2.x源代码存储库。
git clone git://git.ipfire.org/ipfire-2.x.git
以下快照显示了IPFire-2.x存储库中的最新更新
在下一步中,运行以下命令下载IPFire软件包的源代码。
./make.sh downloadsrc
目前机器是64位,所以现在预编译的工具链将下载来编译源码。 以下命令用于在开发系统上下载工具链。
./make.sh gettoolchain
成功克隆IPFire后,下载源码包和工具链,下一步是开始构建过程。 首先,IPFire防火墙将被编译没有任何变化。 之后,将包含并重新编译所需的插件,为IPFire环境创建PSAD包。 新建一个包含ipfire扩展名的包将被移动到IPFire VM中,用于安装PSAD包。
编制IPFire
最后一步是运行以下命令来构建源代码。 确保开发系统上有足够的磁盘空间,并且构建命令在用户root下运行。
./make.sh build
对于32位系统
linux32 ./make.sh build
首次构建过程将需要几个小时才能完成。 但是,可以通过在开发系统上使用良好的硬件资源来减少它。 IPFire的构建脚本执行以下四个阶段。
- 构建LFS( 从临时系统构建Linux ),它包含用于安装软件包的脚本。
- 建立IPFire
- 建筑安装
- 建筑包
以下快照显示Building LFS步骤。
建立IPFire步骤如下所示。
以下快照显示安装程序构建步骤。
最后,包编译过程的构建过程。
IPFire编译将需要很多时间(在这种情况下为13个小时),如下面的屏幕截图所示。
最后,IPFire构建脚本生成iso,xen和img输出文件,如下所示。 构建脚本还会计算生成的iso文件的md5校验和。
最后,从源代码编译IPfire已经完成并准备好安装在虚拟机中。 建议在开发系统上登录,以运行构建过程。
安装IPFire
可以使用由构建脚本生成的iso来设置IPFire防火墙。 本教程中不包括IPFire安装的详细步骤。 安装后,出现以下窗口显示Linux内核版本(3.14.73-ipfire 1686)。
使用绿色界面的IP地址(192.168.1.150:444)访问IPFire设备的Web界面。 FireFox子菜单中也提供了IPFire版本信息。
建设PSAD插件
直接地,PSAD工具无法在IPFire上编译。 因此,开发系统需要编译IPFire平台的新插件的源代码。 IPFire的开发环境已在上述部分设置。
以下是编译IPFire开发环境中新的源代码的要求。
-
为所需的插件或软件包创建一个 编译脚本 ,并将其放在 lfs \目录中(在ipfire-2.x \ lfs \下)
-
在构建脚本
make.sh
中添加addon脚本
PSAD的编译脚本是为psad-2.4.1.tar.gz软件包创建的。 下载 lfs脚本并将其放在ipfire-2.x中的lfs 目录下 ,并在lfs脚本中为psad-2.4.1.tar.gz创建MD5校验和。
PSAD lfs脚本显示在以下快照中。
PSAD插件的make.sh构建脚本中的修改如下所示。
为了编译新的插件,下面的build命令将运行两次。 如psad被成功地包含在构建脚本中的截图所示。
./make build
第一个生成命令的输出如下图所示,PSAD的根文件丢失。
addon rootfile的名称与软件包/文件名(psad-2.41)相同,并且存在于log
目录中。
如下图所示,将psad -2.4.1文件复制到config/rootfiles/packages
path
,并将其重命名为放在lfs目录中的包/文件名的lfs。
cp log/psad-2.4.1 config/rootfiles/packages/psad
附件的根文件包含由安装脚本删除,更改或添加的所有文件的列表。 运行以下命令从PSAD的根文件中删除“ + ”,如下所示。
sed -i 's/+//g' config/rootfiles/packages/psad
需要在新的插件中包含PakFire(IPFire软件包管理系统)例程,如安装,卸载和更新。 首先,在src / paks中创建一个目录(psad),与包名称的lfs相同。 将默认例程从src / paks / default / *复制到src / paks / psad中,并相应地进行自定义。
再次运行build命令来编译PSAD的源代码。
./make build
如下所示,PSAD插件( psad-2.4.1-2.ipfire )在IPFire环境中成功编译并放置在packages目录中。
PSAD安装在IPFire上
现在,PSAD包将被安装在IPFire上。 如下所示,已编译的包被复制到已安装的IPFire上。
确保编译的包必须位于/ opt / pakfire / tmp路径下。
使用以下命令提取包装以进行安装。
tar -xvf psad-2.4.1-2.ipfire
PSAD插件文件列表如下所示。
以下窗口显示在IPFire上安装PSAD插件。
./install.sh
下图显示了PSF工具对IPFire环境的帮助。
在本文中,新功能或插件包含着名的基于Linux的防火墙“IPFire”。 PSAD工具用于使用IPtables自动阻止恶意流量。 为IPFire环境编制PSAD是我们的贡献。