Skip to content
有问题可以在公众号反馈 ✨
微信二维码

扫码留言

1. 1.安装rkhunter 并且执行检查

提示

rkhunter 一款病毒查杀软件,之前怀疑有病毒运行了下,但是没发现
个人理解这个就是检测下文件有没有篡改

请复制下面这条命令重新下载:

bash

cd /opt
curl -L https://sourceforge.net/projects/rkhunter/files/latest/download -o rkhunter.tar.gz

# 解压
tar -zxvf rkhunter.tar.gz

# 进入解压后的目录
cd rkhunter-*

# 安装
./installer.sh --layout default --install

# 更新病毒库
rkhunter --update

# 初始化可信文件(第一次运行必须)
rkhunter --propupd

# 扫描
rkhunter --check

直接脚本检测

bash
#!/usr/bin/env bash

LOGFILE="/var/log/security_check.log"
TMPDIR="/tmp/rkhunter_install"
RKURL="https://sourceforge.net/projects/rkhunter/files/latest/download"

echo "=== 安全检查开始: $(date) ===" | tee "$LOGFILE"

# 1. 安装 rkhunter(如果未安装)
if ! command -v rkhunter >/dev/null 2>&1; then
  echo "[*] 检测到 rkhunter 未安装,开始下载安装…" | tee -a "$LOGFILE"
  mkdir -p "$TMPDIR" && cd "$TMPDIR"
  curl -L "$RKURL" -o rkhunter.tar.gz
  tar -zxvf rkhunter.tar.gz
  cd rkhunter-*
  ./installer.sh --layout default --install | tee -a "$LOGFILE"
  cd /
  rm -rf "$TMPDIR"
else
  echo "[*] rkhunter 已安装" | tee -a "$LOGFILE"
fi

# 2. 更新 rkhunter 数据库 & 初始化信任基准
echo "[*] 更新 rkhunter 数据库…" | tee -a "$LOGFILE"
rkhunter --update | tee -a "$LOGFILE"
echo "[*] 初始化排除首次误报…" | tee -a "$LOGFILE"
rkhunter --propupd | tee -a "$LOGFILE"

# 3. 执行 rkhunter 检查
echo "[*] 运行 rkhunter 检查…" | tee -a "$LOGFILE"
rkhunter --check --skip-keypress | tee -a "$LOGFILE"

# 4. chkrootkit(如果存在)
if command -v chkrootkit >/dev/null 2>&1; then
  echo "[*] 运行 chkrootkit…" | tee -a "$LOGFILE"
  chkrootkit | tee -a "$LOGFILE"
else
  echo "[*] chkrootkit 未安装,跳过此项" | tee -a "$LOGFILE"
fi

# 5. 网络监听端口检查
echo "[*] 检查监听端口…" | tee -a "$LOGFILE"
ss -tulnp | tee -a "$LOGFILE"

# 6. 启动服务检查
echo "[*] 列出已启用服务…" | tee -a "$LOGFILE"
systemctl list-unit-files --state=enabled | tee -a "$LOGFILE"

# 7. 定时任务检查
echo "[*] 列出 root 定时任务…" | tee -a "$LOGFILE"
crontab -l | tee -a "$LOGFILE"
echo "[*] /etc/cron* 目录下任务…" | tee -a "$LOGFILE"
ls -l /etc/cron* /var/spool/cron* 2>/dev/null | tee -a "$LOGFILE"

# 8. SUID 文件检查
echo "[*] 查找 SUID 可执行文件…" | tee -a "$LOGFILE"
find / -type f -perm -4000 -exec ls -l {} \; 2>/dev/null | tee -a "$LOGFILE"

echo "=== 安全检查结束: $(date) ===" | tee -a "$LOGFILE"

echo "日志已保存到 $LOGFILE"