在完成移动互联网安全第二次实验中,遇到了很多之前没有见过的问题,特此记录
实验环境
- 路由器型号:Xiaomi R3G(mt7621)
- Openwrt: 基于L大源码(R22.3.13)
- 内核版本:5.4.175
- Kali:21.04
准备工作
下载SDK环境
由于实验所用的auditord为源码,因此需要自行编译生成对应ipk包,再进行安装
SDK环境:是一个仿照真实Openwrt的完整编译环境
加入环境变量
在编译过程中我们需要使用交叉编译环境,才能在Kali中编译出可在Openwrt中运行的程序
vim $HOME/.bashrc
# 将SDK中staging_dir/toolchain/bin添加进环境变量中
# 保存环境变量并使其生效
source $HOME/.bashrc
# 确定环境变量生效
echo $PATH
mispel-openwrt-linux-gcc -v #有正常输出即为生效
安装libubox和libuci库
在auditord中用到了libubox和libuci库,需要进行安装
export CC=mispel-openwrt-linux-gcc
libubox库依赖json-c库,所以需要先安装:
$ git clone https://github.com/json-c/json-c.git
$ cd json-c/
$ ./autogen.sh
$ make
$ make install
安装libubox:
$ git clone http://git.openwrt.org/project/libubox.git
$ cd libubox
$ cmake -DBUILD_LUA=off
$ cmake CMakeLists.txt
$ make
$ make install
安装libuci:
git clone https://git.openwrt.org/project/uci.git uci
cd uci
cmake -DBUILD_LUA=off
cmake CMakeLists.txt
make
将生成的libubox.so libubox.a和libuci.so libuci.a拷贝到toolchain/lib中备用 **注意:**一定要保证库所用的编译器与路由器的编译器相同,可以用file xxx.so 查看该库的编译环境
编译auditord
将auditord文件夹复制到sdk/package中,返回sdk路径下。
make package/auditord/compile V=99
进行编译,编译结果auditord.ipk在sdk/bin/packages/misple/base
安装auditord
将ipk包发送到路由器中
scp auditord.ipk root@192.168.1.1:/tmp
cd /tmp
opkg install audit
opkg install auditord.ipk
参考链接
|