天天看點

基于netfilter截取核心網絡資料包

Netfilter結構就是在整個網絡處理流程中放置了一些檢測點,每個檢測點都可以對網絡資料包進行操作,IP層的五個hook點如圖:

基于netfilter截取核心網絡資料包

如何使用?

1,實作nf_hook_ops結構體

static struct nf_hook_ops hook_out = {
    .hook = (nf_hookfn *)hook _out_process, //hook函數
    .pf = NFPROTO_IPV4,
    .hooknum = NF_INET_LOCAL_OUT, //hook位置
    .priority = NF_IP_PRI_FIRST, //執行優先級
    .owner = THIS_MODULE,
};
           

2,實作hook函數

unsigned int hook_out_process(unsigned int hooknum, struct sk_buff *skb, const struct net_device *in, const struct net_device *out, int (*okfn)(struct sk_buff *))

{

//處理資料包

}
           

3,核心的注冊和解除安裝

繼續閱讀