方便使用 四个模块: 网站:前端输入服务器检测规则,黑白名单,代理监控文件,审核规则到mongodb;响应代理定时获取在线服务器列表 服务器:提供代理rpc服务器调用,从mongodb中获取代理监控配置,保存服务器在线信息到mongodb,发送日志到进行可视化 代理:netlink家族的NETLINK_AUDIT协议监听SYSCALL时间,规则可以动态配置;读取/ proc文件系统需要管理员权限运行 守护程序:响应服务器指令下发(socket) 系统采用netlink_audit协议检测进程执行,连接系统调用,仅依赖内核kauditd,这个在内核2.6集成;对于安装第三方auditd用户程序服务需要停止,否则代理接收不到系统通过netlink传递的事件信息,通过libpcap抓取网络连接五元组信息,在/ proc补全进程argv,comm,path等信息,对与短暂进程,网络连接建立LRU
2021-12-22 16:14:32 11.64MB 系统开源
1
详细解释了libnetlink的通信机制,数据结构,从netlink的起源开始,一直到libnl,目前市面上没有相关的书籍。
2021-12-03 10:50:39 254KB netlink linux libnl
1
Linux 用户态与内核态的交互 ---netlink篇的源码
2021-11-25 14:59:20 2KB linux
1
linux内核版本2.6以上的使用netlink在内核态与用户态之间传递信息的小范例。 内核每次升级netlink都有很大变化,郁闷无比。 这个是根据2.6改的一个版本,希望对大家有用
2021-11-19 14:40:40 267KB 内核态 用户态 netlink 范例
1
一、imp2源码 整个源码包含三个文件:imp2_k.c, imp2_u.c和imp2.h. 其中imp2_k.c为内核模块的源代码,imp2_u.c为应用程序,即测试代码,imp2.h为两个源文件都需要引用的头文件。其整体的功能是:注册一种新的netlink协议,并注册一个新的NF hook函数。当有ping包发往当前主机或者经过当前主机转发时,内核向用户发送ping包的源IP和目的IP。各个文件的简单分析见下文。 1. imp2.h 该文件主要是定义了一种新的Netlink协议类型NL_IMP2(31)。新的协议类型的选值不能和当前内核中已经定义的netlink协议类型重复。定义了基于该协议类型的消息类型,内核根据接收到消息的不同类型,进行不同的处理:IMP2_U_PID和IMP2_CLOSE分别为请求和关闭。IMP2_K_MSG代表内核空间发送的消息。 该头文件的源码如下: 2. imp2_k.c 该程序为内核模块程序。其完成的功能如下: (1)创建一种新的Netlink协议NL_IMP2,并注册该协议的回调函数kernel_receive。但用户空间通过建立且协议类型为NL_IMP2的socket套接字并调用sendto,sendmsg函数发送数据时,传送到内核空间的数据由kernel_receive进行处理。该函数主要是记录用户进程的ID,用于随后发送数据的时候指定目的。 (2)在Netfilter的hook点NF_IP_PRE_ROUTING注册hook函数get_icmp,对经过该hook点的ping包进行处理。get_icmp首先判断是否是ping包,如果不是,直接Accept。如果是,则记录该包的源IP和目的IP,然后调用send_to_user,将记录的信息发送给kernel_recieve函数中记录的用户进程ID。 该文件的源码如下: 3. imp2_u.c 该程序为用户空间的测试程序。该程序包括以下功能: (1)生成NL_IMP2协议的socket.然后通过调用sendto发送IMP2_U_PID类型的请求信息给内核。然后等待接受内核发回的信息。记住:仅当有ping包经过内核的NF时,内核才会向用户进程发送信息。 (2)当用户进程通过Ctrl+C来结束该程序时,调用信号处理函数sig_int,向内核发送IMP2_CLOSE的消息,结束socket。 该文件的源码如下: 二、编译和测试 1. 整个源文件编译的Makefile如下: all: gcc -O2 -DMODULE -D__KERNEL__ -W -Wstrict-prototypes -Wmissing-prototypes -isystem /lib/modules/`uname -r`/build/include -c -o imp2_k.o imp2_k.c gcc imp2_u.c -o imp2_u install: insmod imp2_k.o uninstall: rmmod imp2_k clean: rm -f imp2_k.o imp2_u 2. 加载内核模块,并执行测试程序。 #make install #./imp2_u 当没有ping包时,终端一直处于等待输出状态。通过另一台主机(192.168.1.100)向当前主机(192.168.1.101)发送ping包,则终端已经有输出: #./imp2_u [root@localhost imp2]# ./imp2_u src: 192.168.1.100, dest: 192.168.1.101 src: 192.168.1.100, dest: 192.168.1.101 src: 192.168.1.100, dest: 192.168.1.101 src: 192.168.1.100, dest: 192.168.1.101
2021-11-19 14:31:24 34KB netlink
1
主要介绍了linux下用户程序同内核通信详解(netlink机制),涉及netlink,内核模块,用户程序的介绍等相关内容,小编觉得还是挺不错的,这里分享给大家,需要的朋友可以参考下
2021-11-19 14:21:34 80KB linux 内核 netlink linux内核程序
1
重点针对跨三层转发交换路由的情况下,如何通过netlink获取gateway的二层地址,将netlink的使用接口话,C语言编写
2021-11-19 14:16:30 7KB netlink gateway mac
1
关于网络设备中netlink通信机制详解,主要为代码主题的实现
2021-11-19 14:13:10 1.28MB Linux设备
1
内核态与用户态通信---netlink通信的一些实例!!!
2021-11-19 14:09:34 13KB 用户态 内核态 netlink
1
eunetlink.c -用户程序源码 eknetlink.c -内核程序源码 netlink提供了一种很好很强大的的用户与内核之间的通讯机制,本文通过静态的新增一个netlink协议类型,并使用这个新的netlink类型实现用户态和内核态的双向通讯,对linux的netlink通讯方式有了一个初步的认识。 说明:本文所含代码的运行环境为 android提供的 goldfish 模拟器平台, Linux 内核版本为 2.6.29
2021-11-19 13:53:08 8KB linux netlin 数据通讯
1