mac80211内核模块实现了对802.11协议的处理过程。其中mlme.c文件中的内容实现了对Deauth管理帧的处理。考虑到Deauth攻击至今仍没有好的防御方法(据说有802.11w,可是我一直没见到应用他的设备,为什么?求解),aireplay-ng工具仍然可以很轻松的Deauth客户下线,所以想修改客户端的内核源码来防止对客户端的Deauth。(针对AP则需要对AP进行修改)
方法简记如下:
1. 要编译内核模块,需要下载操作系统源码并编译make;
2. 找到/net/mac80211/mlme.c 修改处理Deauth的部分如下图:
这里修改的可能会有问题,cfg80211_rx_mlme_mgmt这个函数没仔细看。
2.回到内核源码主目录,make modules , make modules_install
3.reboot
注意:
这里主要记录修改方法,修改内核要慎重。
内核编译make menuconfig时要注意选择需要的驱动安装。编译方法参考文献1,内核源码下载参考文献2.
参考文献:
1.《Linux驱动开发入门与实战》