为了对抗僵尸网络攻击,我试图分析一个nginx access.log文件来查找哪些用户代理是最常见的,以便我可以找到罪犯并拒绝它们。我怎样才能做到这一点?
答案 0 :(得分:6)
在您的访问日志中尝试这样的操作,替换访问日志的路径,同时请记住,某些日志文件会被压缩并且会创建一个新文件
sudo awk -F" " '{print $1}' /var/log/nginx/access.log | sort | uniq -dc
修改强>:
抱歉,我刚注意到您需要用户代理而不是IP
sudo awk -F"\"" '{print $6}' /var/log/nginx/access.log | sort | uniq -dc
要对升序追加| sort -nr
进行排序,并限制为10追加| head -10
所以最后的总行数是
sudo awk -F"\"" '{print $6}' /var/log/nginx/access.log | sort | uniq -dc | sort -nr | head -10
答案 1 :(得分:1)
获取用户代理
sudo awk -F'"' '/GET/ {print $6}' /var/log/nginx-access.log | cut -d' ' -f1 | sort | uniq -c | sort -rn
awk(1) - selecting full User-Agent string of GET requests
cut(1) - using first word from it
sort(1) - sorting
uniq(1) - count
sort(1) - sorting by count, reversed