基于netfilter的url-filter开源代码

 

url过滤功能,找到一个基于linux netfilter框架的开源代码,开源代码路径:

git clone https://gitee.com/yuewguo/url_filter.git

致敬作者,对linux内核使用炉火纯青,也学习到了很多

由于源码对编译和启动环境说明比较少,所以把自己的琢磨的编译和启动过程下载下面。

linux 版本:3.10.0-1160.el7.x86_64  centos7上。

编译步骤:

1. make

  //编译中遇到因查找linux头文件的错误,修改为正常的路径

   因内核升级函数定义不匹配的修改为与内核匹配的函数
2. 第一次启动url-rule之后发现,textsearch_prepare函数处理错误,搜网上资料也是少之又少,没办法下载了内核15版本的源码,读源码的解释。

    感觉代码没有问题,想着是不是因为相关的ko没有加载,所以试了如下的步骤果然这次成功了。

    安装urlrule依赖的库  ts_kmp.ko (路径:)
   cd /usr/lib/modules/3.10.0-1160.el7.x86_64/kernel/lib
   xz -d ts_kmp.ko.xz
   insmod ts_kmp.ko
   lsmod |grep ts_kmp  查看是否安装成功
3. 进入开源代码kernel目录,查看make后编译出的ko文件。

   执行命令 insmod urlrule.ko  安装urlrule模块  ,

   lsmod查看安装的模块

   rmmod <module-name>卸载驱动模块  /*重新编译升级的时候需要先卸载再执行insmod urlrule.ko*/
4. 在开源代码sbin目录下,执行./url-rule,启动urlrule模块
5. 配置 url https://www.baidu.com drop
   action drop

   show   //查看配置情况是否成功
6. 测试开源代码。

  再连接一台虚拟机,经过安装了url-rule的设备,curl https://www.baidu.com  验证结果是curl不通,

  或者使用科来给网卡灌http的包,验证代码,验证结果是报文无法通过。

7. 网络拓扑(该拓扑遇到了问题,A始终无法ping通外网,由于时间关系采用了灌包的方式。该问题后续专门出一篇文件总结)

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值