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"