作为IT工程师,我将为您提供一套全面的Linux服务器安全检测方法,帮助您通过命令行识别潜在的恶意活动和入侵迹象。
# 查看所有用户账户
cat /etc/passwd
# 检查UID为0的账户(root权限)
awk -F: '($3 == "0") {print}' /etc/passwd
# 检查最近创建的用户
ls -lt /home
# 查看当前登录用户
w
# 检查登录历史
last
# 检查失败的登录尝试
lastb
# 检查SSH登录记录
grep "Failed password" /var/log/auth.log
# 查看所有运行中的进程
ps aux
# 查看CPU/内存占用高的进程
top
# 检查隐藏进程
ps -ef | awk '{print $2}' | sort -n | uniq -c | awk '$1 > 1'
# 检查网络连接的进程
netstat -tulnp
lsof -i
# 查看所有网络连接
ss -tulnp
# 检查外连IP
netstat -anp | grep ESTABLISHED
# 检查DNS查询
tcpdump -i any -n port 53
# 查看iptables规则
iptables -L -n -v
# 检查异常端口开放
netstat -tuln
# 查找最近修改的文件
find / -mtime -7 -type f -exec ls -l {} \;
# 查找隐藏文件
find / -name ".*" -ls
# 查找SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -l {} \;
# 检查/tmp目录异常
ls -la /tmp
# 使用rpm/deb验证系统文件完整性
rpm -Va # RedHat/CentOS
dpkg -V # Debian/Ubuntu
# 查找未授权的.conf或.ini文件
find / -name "*.conf" -o -name "*.ini" | grep -v "/etc/"
# 检查系统cron任务
ls -la /etc/cron*
cat /etc/crontab
ls -la /var/spool/cron/
# 检查用户cron任务
for user in $(cut -f1 -d: /etc/passwd); do crontab -u $user -l; done
# 检查加载的内核模块
lsmod
# 检查可疑内核模块
find /lib/modules/$(uname -r) -type f -name "*.ko"
# 检查系统日志中的异常
journalctl -xe
grep -i "error\|fail\|warning" /var/log/syslog
# 检查SSH暴力破解尝试
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
# 检查sudo滥用
grep sudo /var/log/auth.log
# 使用chkrootkit检查rootkit
sudo chkrootkit
# 使用rkhunter检查rootkit
sudo rkhunter --check
# 使用Lynis进行安全审计
sudo lynis audit system
# 检查异常shell配置文件
ls -la ~/.bash* ~/.profile ~/.ssh/
# 检查LD_PRELOAD滥用
env | grep LD_PRELOAD
strings /etc/ld.so.preload
bash
tar czvf evidence_$(date +%Y%m%d).tar.gz /var/log /etc/passwd /etc/shadow /etc/group
bash
apt update && apt upgrade # Debian/Ubuntu
yum update # RHEL/CentOS
通过定期执行这些检查,您可以大大提高Linux服务器的安全性,及时发现并应对潜在的安全威胁。建议将关键检查脚本化并设置定期自动执行。