作为IT工程师,确保Linux服务器安全至关重要。以下是一套全面的命令集,用于检测服务器上的潜在恶意行为和安全威胁。
# 查看所有用户
cat /etc/passwd
# 检查UID为0的用户(除root外)
awk -F: '($3 == "0") {print}' /etc/passwd
# 查看最近创建的用户
awk -F: '{print $1}' /etc/passwd | tail -n 5
# 查看成功登录记录
last
# 查看失败登录尝试
lastb
# 查看当前登录用户
w
who
# 查看所有运行中的进程
ps aux
# 查看CPU/内存占用高的进程
top -b -n 1 | head -n 20
# 检查隐藏进程
ps -ef | awk '{print $2}' | sort -n | uniq > /tmp/ps_list.txt
ls /proc | sort -n | uniq > /tmp/proc_list.txt
diff /tmp/ps_list.txt /tmp/proc_list.txt
# 查看所有网络连接
netstat -tulnp
ss -tulnp
# 检查异常外连
lsof -i
netstat -anp | grep ESTABLISHED
# 查找最近修改的文件
find / -type f -mtime -7 -print
# 查找SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -la {} \;
# 查找可写文件
find / -type f -perm -o=w -exec ls -la {} \;
# 查找隐藏文件和目录
find / -name ".*" -print
# 使用AIDE检查文件完整性(需预先配置)
aide --check
# 使用rpm验证系统文件(适用于RHEL/CentOS)
rpm -Va
# 查看所有用户的cron任务
ls -la /etc/cron*
cat /etc/crontab
ls -la /var/spool/cron
# 查看加载的内核模块
lsmod
# 检查可疑模块
cat /proc/modules
# 查看系统日志
tail -n 100 /var/log/messages
tail -n 100 /var/log/syslog
# 查看认证日志
tail -n 100 /var/log/auth.log
tail -n 100 /var/log/secure
# 查看SSH日志
tail -n 100 /var/log/secure | grep sshd
# 检查防火墙规则
iptables -L -n
firewall-cmd --list-all
# 检查SSH配置
cat /etc/ssh/sshd_config | grep -v "^#" | grep -v "^$"
# 检查sudo权限
cat /etc/sudoers
# 使用rkhunter检测rootkit(需安装)
rkhunter --check
# 使用chkrootkit检测rootkit(需安装)
chkrootkit
通过定期执行这些检查,您可以及时发现服务器上的潜在安全问题并采取相应措施。