这种内核级DNS监控是对抗现代隐藏挖矿病毒最有效的方法之一,因为无论病毒如何隐藏进程和网络连接,它们都无法绕过内核网络栈的DNS解析过程!
#对于 CentOS/RHEL 7
sudo yum install kernel-devel kernel-headers
sudo yum install kernel-devel-$(uname -r)
#检查安装是否成功
ls -la /lib/modules/$(uname -r)/build
dns_monitor.c:TCP DNS和UDP DNS内核监控模块代码
dns_manager:DNS内核监控模块管理工具
使用步骤:
DNS监控模块管理工具
选项:
install 编译并安装模块
uninstall 卸载模块
status 显示模块状态
show 显示DNS记录
clear 清空DNS记录
monitor 实时监控DNS请求
test 运行功能测试
logs 显示内核日志
stats 显示统计信息
help 显示此帮助信息
示例:
$0 install # 安装模块
$0 show # 查看记录
$0 monitor # 实时监控
$0 test # 运行测试
高级用法:
#查看特定进程的DNS查询
cat /proc/dns_monitor | grep "chrome"
#查看最近的DNS查询
cat /proc/dns_monitor | tail -10
#统计查询最多的域名
awk 'NR>2 {print $1}' /proc/dns_monitor | sort | uniq -c | sort -nr | head -10