本文主要是介绍Linux服务器安全基础 - 查看入侵痕迹,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. 常见系统日志
/var/log/cron 记录了系统定时任务相关的日志
/var/log/dmesg 记录了系统在开机时内核自检的信息,也可以使用dmesg命令直接查看内核自检信息
/var/log/secure:记录登录系统存取数据的文件;例如:pop3,ssh,telnet,ftp等都会记录在此.
/var/log/btmp:记录登录这的信息记录,被编码过,所以必须以last解析;
例如:lastb | awk '{ print $3}' | sort | uniq -c | sort -nr
/var/log/message:几乎所有的开机系统发生的错误都会在此记录;
/var/log/boot.log:记录一些开机或者关机启动的
/var/log/lastlog 记录每一个用户最后的登陆信息
2. 常用脚本
1) 查询特权用户特权用户(uid 为0)
awk -F: '$3==0{print $1}' /etc/passwd
如果发现除了 root 外还有别的账号,就要小心了。
2) 查询可以远程登录的帐号信息
awk '/\$1|\$6/{print $1}' /etc/shadow
3) 除root帐号外,其他帐号是否存在sudo权限。
more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"
4) 查询登录账号的历史命令
cat ~用户名/.bash_history | more
此命令可看到操作命令和操作时间
5) 检查异常端口和unix sockets
netstat -ln
6) 使用 ps 命令,分析进程
ps aux
7) 检查开机启动配置文件
cat /etc/rc.local
重点关注以下目录中是否存在恶意脚本
/var/spool/cron/*
/etc/crontab
/etc/cron.d/*
/etc/cron.daily/*
/etc/cron.hourly/*
/etc/cron.monthly/*
/etc/cron.weekly/
/etc/anacrontab
/var/spool/anacron/*
8) 列出某个用户cron服务的详细内容
crontab -l
9) 禁用或删除多余及可疑的帐号
usermod -L user # 禁用帐号,帐号无法登录,/etc/shadow 第二栏为 ! 开头
userdel user # 删除 user 用户
userdel -r user # 将删除 user 用户,并且将 /home 目录下的 user 目录一并删除
10) 查看可疑IP登录记录
last -f /var/log/wtmp
该日志文件永久记录每个用户登录、注销及系统的启动、停机的事件。因此随着系统正常运行时间的增加,该文件的大小也会越来越大,
增加的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录,last命令就通过访问这个文件获得这些信息,并以反序从后向前显示用户的登录记录,last也能根据用户、终端tty或时间显示相应的记录。
11) 查看连接失败次数并按次数排序,显示前20行
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | sort -nr | awk '{print $2" = "$1;}' | more
12) 定位有多少IP在爆破主机的root帐号
grep "Failed password for root" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | awk '{print $2" = "$1;}'
13) 爆破用户名字典
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
14) 登录成功的IP有哪些
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
15) 登录成功的日期、用户名、IP
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
这篇关于Linux服务器安全基础 - 查看入侵痕迹的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!