插件窝 干货文章 Linux服务器安全性:使用命令行进行入侵检测

Linux服务器安全性:使用命令行进行入侵检测

检查 bash 文件 入侵检测 792    来源:    2025-04-12

Linux服务器入侵检测命令行指南

作为IT工程师,确保Linux服务器的安全性至关重要。以下是一套使用命令行工具进行入侵检测的全面方法:

1. 系统账户检查

# 检查异常用户账户
cat /etc/passwd | grep -v "nologin\|false\|sync\|shutdown\|halt"

# 检查空密码账户
awk -F: '($2 == "") {print $1}' /etc/shadow

# 检查UID为0的账户(除root外)
awk -F: '($3 == 0) {print $1}' /etc/passwd

# 检查最近登录的用户
last -n 10

2. 进程监控

# 查看异常进程
ps aux --sort=-%cpu | head -n 11
ps aux --sort=-%mem | head -n 11

# 检查隐藏进程
ps -ef | awk '{print $2}' | sort -n | uniq -d

# 检查网络连接
netstat -tulnp
ss -tulnp
lsof -i

3. 文件系统完整性检查

# 查找SUID/SGID文件
find / -type f \( -perm -4000 -o -perm -2000 \) -exec ls -la {} \;

# 查找可写文件
find / -xdev -type d \( -perm -0002 -a ! -perm -1000 \) -print

# 查找近期修改的文件
find / -mtime -3 -type f -exec ls -la {} \;

4. 日志分析

# 检查认证日志
grep -i "fail\|invalid\|refused" /var/log/auth.log
journalctl -u sshd --no-pager | grep -i "fail\|invalid"

# 检查暴力破解尝试
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr

# 检查root登录
grep "Accepted password for root" /var/log/auth.log

5. 网络和防火墙检查

# 检查iptables/nftables规则
iptables -L -n -v
nft list ruleset

# 检查异常监听端口
netstat -tulnp | grep -v "127.0.0.1"

# 检查路由表
route -n
ip route show

6. 计划任务检查

# 检查cron任务
ls -la /etc/cron*
cat /etc/crontab
ls -la /var/spool/cron/crontabs/

# 检查systemd定时器
systemctl list-timers --all

7. 内核和模块检查

# 检查加载的内核模块
lsmod

# 检查异常内核模块
find /lib/modules/$(uname -r) -type f -name '*.ko' | xargs ls -la

8. Rootkit检测工具

# 使用rkhunter检查
rkhunter --check --sk

# 使用chkrootkit检查
chkrootkit

# 检查二进制文件完整性
for file in /bin/* /sbin/* /usr/bin/* /usr/sbin/*; do rpm -Vf $file 2>/dev/null; done

9. 自动化检测脚本

#!/bin/bash
# 简易入侵检测脚本

echo "=== 系统用户检查 ==="
awk -F: '($3 == 0) {print $1}' /etc/passwd
echo ""

echo "=== 异常进程检查 ==="
ps aux --sort=-%cpu | head -n 11
echo ""

echo "=== 网络连接检查 ==="
netstat -tulnp
echo ""

echo "=== 最近修改的文件 ==="
find / -mtime -3 -type f -exec ls -la {} \; 2>/dev/null | head -n 20

最佳实践建议

  1. 定期执行检查:设置cron任务定期运行关键检测命令
  2. 基线比较:在系统初始干净状态下创建关键文件和配置的哈希值基准
  3. 集中日志:配置远程日志服务器防止本地日志被篡改
  4. 最小权限原则:严格限制用户和服务的权限
  5. 及时更新:定期应用安全补丁和更新

通过以上命令行工具和技术,您可以有效地监控Linux服务器的安全性,及时发现潜在的入侵行为并采取相应措施。