每日签到奶昔超市点数市场奶昔访达
返回列表 发布新帖
查看: 434|回复: 0

阿里云卸载 “安全守护”及善后方案

发表于 2025-9-1 18:06:37 | 查看全部 |阅读模式

欢迎注册论坛,享受更多奶昔会员权益!

您需要 登录 才可以下载或查看,没有账号?注册

×
现在阿里云的安全守护需要去控制台关,具体是打开云安全中心控制台-->主机资产-基本信息-防御状态 将防御全部关闭。
fakename.png
你以为这就完了吗,我不明白为啥国内厂商内置的镜像就存在那么多条条框框,甚至是得浪费自己的流量(轻量)去dd。
总之要想接着用这个系统,还是得做一些善后
首先需要使用ssh访问服务器,如果是轻量请用
  1. wget “http://update.aegis.aliyun.com/download/uninstall.sh” && chmod +x uninstall.sh && ./uninstall.sh
复制代码
ECS服务器执行
  1. wget “http://update2.aegis.aliyun.com/download/uninstall.sh” && chmod +x uninstall.sh && ./uninstall.sh
复制代码
之后我们新建一个脚本
  1. nano /root/aegis_all_in_one.sh
复制代码
输入以下内容
  1. #!/usr/bin/env bash
  2. # Alibaba Cloud Aegis / Aliyun Assist 一键卸载 + 强力清理 + 验收检测
  3. # 适配 Debian/Ubuntu;需 root
  4. set -euo pipefail

  5. LOG="/root/aegis-all-in-one-$(date +%Y%m%d-%H%M%S).log"
  6. exec > >(tee -a "$LOG") 2>&1

  7. # ---------- UI ----------
  8. if [[ -t 1 ]] && command -v tput >/dev/null 2>&1; then
  9.   GREEN=$(tput setaf 2); RED=$(tput setaf 1); YEL=$(tput setaf 3); BLUE=$(tput setaf 4)
  10.   BOLD=$(tput bold); RESET=$(tput sgr0)
  11. else
  12.   GREEN=""; RED=""; YEL=""; BLUE=""; BOLD=""; RESET=""
  13. fi
  14. step(){ echo -e "${BOLD}${BLUE}==> $*${RESET}"; }
  15. pass(){ echo -e "${GREEN}[PASS]${RESET} $*"; }
  16. warn(){ echo -e "${YEL}[WARN]${RESET} $*"; }
  17. fail(){ echo -e "${RED}[FAIL]${RESET} $*"; }
  18. try(){ "$@" 2>/dev/null || true; }

  19. AEGIS_DIR="/usr/local/aegis"

  20. # ---------- 验收函数(集成自我们 v1.2 的校验逻辑) ----------
  21. verify_all(){
  22.   local failed=0
  23.   step "进程检查"
  24.   if pgrep -fa 'AliYunDun|/usr/local/aegis' >/dev/null; then
  25.     pgrep -fa 'AliYunDun|/usr/local/aegis' | sed 's/^/  /'
  26.     fail "仍有 Aegis 相关进程在运行"
  27.     failed=1
  28.   else
  29.     pass "未发现 Aegis 相关进程"
  30.   fi
  31.   echo

  32.   step "systemd 单元与软链"
  33.   local wants="/etc/systemd/system/multi-user.target.wants/aegis.service"
  34.   local unit="/etc/systemd/system/aegis.service"
  35.   if [[ -L "$wants" || -e "$wants" ]]; then
  36.     ls -l "$wants"; fail "存在 wants 软链(应删除)"; failed=1
  37.   else
  38.     pass "无 wants 软链"
  39.   fi
  40.   if [[ -L "$unit" ]]; then
  41.     local tgt; tgt=$(realpath "$unit" || echo "")
  42.     if [[ "$tgt" == "/dev/null" ]]; then
  43.       pass "aegis.service 已 mask(指向 /dev/null)"
  44.     else
  45.       ls -l "$unit"; fail "aegis.service 存在且未 mask(建议删除或 mask)"; failed=1
  46.     fi
  47.   elif [[ -e "$unit" ]]; then
  48.     ls -l "$unit"; fail "aegis.service 存在且未 mask(建议删除或 mask)"; failed=1
  49.   else
  50.     pass "未发现 aegis.service"
  51.   fi
  52.   echo

  53.   step "目录与文件"
  54.   local left=0
  55.   for d in /usr/local/aegis /etc/aegis /var/log/aegis; do
  56.     if [[ -e "$d" ]]; then
  57.       if find "$d" -mindepth 1 -print -quit 2>/dev/null | grep -q .; then
  58.         echo "  $d 存在且非空"; left=1
  59.       else
  60.         echo "  $d 存在但为空"; left=1
  61.       fi
  62.     fi
  63.   done
  64.   if [[ "$left" -eq 0 ]]; then pass "未发现 Aegis 残留目录"; else fail "存在 Aegis 残留目录"; failed=1; fi
  65.   echo

  66.   step "网络连接"
  67.   if command -v ss >/dev/null 2>&1 && ss -tpna | grep -qi 'AliYunDun'; then
  68.     ss -tpna | grep -i 'AliYunDun' | sed 's/^/  /'
  69.     fail "仍有 AliYunDun 相关网络连接"; failed=1
  70.   else
  71.     pass "未发现 AliYunDun 相关网络连接"
  72.   fi
  73.   echo

  74.   step "dpkg 包(通常无)"
  75.   if dpkg -l 2>/dev/null | awk '$1=="ii"{print $2}' | grep -qiE '(aegis|aliyun|aliyundun)'; then
  76.     dpkg -l | grep -iE '(aegis|aliyun|aliyundun)'
  77.     warn "检测到相关包(考虑 apt purge)"
  78.   else
  79.     pass "未发现相关包"
  80.   fi
  81.   echo

  82.   if [[ "$failed" -eq 0 ]]; then
  83.     echo -e "${GREEN}${BOLD}验收通过:未发现 Aegis 残留。${RESET}"
  84.     return 0
  85.   else
  86.     echo -e "${RED}${BOLD}验收未通过:上方 FAIL 项需处理。${RESET}"
  87.     return 1
  88.   fi
  89. }

  90. # ---------- 准备依赖 ----------
  91. step "安装必要工具(静默失败不影响)"
  92. export DEBIAN_FRONTEND=noninteractive
  93. try apt-get update -y
  94. try apt-get install -y e2fsprogs psmisc wget
  95. echo

  96. # ---------- 0. 优先调用官方卸载脚本 ----------
  97. step "官方卸载脚本(Aegis)"
  98. if wget -O /tmp/aegis_uninstall.sh "http://update.aegis.aliyun.com/download/uninstall.sh"; then
  99.   chmod +x /tmp/aegis_uninstall.sh
  100.   try bash /tmp/aegis_uninstall.sh
  101.   pass "已尝试执行官方卸载脚本"
  102. else
  103.   warn "下载官方卸载脚本失败,跳过此步"
  104. fi
  105. echo

  106. # ---------- 1. 清理 Aliyun Assist 包(如有) ----------
  107. step "清理 aliyun-assist 包(如存在)"
  108. try apt-get purge -y aliyun-assist
  109. try apt-get autoremove -y
  110. echo

  111. # ---------- 2. systemd:停用/删除/屏蔽 ----------
  112. step "处理 systemd 单元与 wants 软链"
  113. try systemctl stop aegis.service
  114. try systemctl disable aegis.service
  115. try chattr -i /etc/systemd/system/multi-user.target.wants/aegis.service
  116. try chattr -i /etc/systemd/system/aegis.service
  117. try rm -f /etc/systemd/system/multi-user.target.wants/aegis.service
  118. try rm -f /etc/systemd/system/aegis.service
  119. try systemctl daemon-reload
  120. try systemctl reset-failed aegis.service
  121. # 屏蔽(mask 到 /dev/null)
  122. try systemctl mask aegis.service
  123. echo

  124. # ---------- 3. 冻结看门狗 ----------
  125. step "冻结 Aegis 看门狗(SIGSTOP)"
  126. try pkill -STOP -f 'AliYunDunMonitor|AliYunDunUpdate|AliYunDun|/usr/local/aegis'
  127. echo

  128. # ---------- 4. 替换关键二进制为 /bin/true(阻断自拉起) ----------
  129. step "替换关键二进制为 /bin/true"
  130. for b in \
  131.   "$AEGIS_DIR/aegis_update/AliYunDunUpdate" \
  132.   "$AEGIS_DIR/aegis_client"/*/AliYunDun \
  133.   "$AEGIS_DIR/aegis_client"/*/AliYunDunMonitor
  134. do
  135.   [[ -f "$b" ]] || continue
  136.   try chattr -i "$b"
  137.   mv "$b" "${b}.disabled" 2>/dev/null || true
  138.   install -m0755 /bin/true "$b" 2>/dev/null || true
  139.   echo "  patched: $b -> /bin/true"
  140. done
  141. echo

  142. # ---------- 5. 强杀直到消失 ----------
  143. step "强杀 Aegis 相关进程"
  144. for i in {1..60}; do
  145.   try pkill -9 -f 'AliYunDunMonitor|AliYunDunUpdate|AliYunDun|/usr/local/aegis'
  146.   sleep 0.2
  147.   if ! pgrep -f 'AliYunDun|/usr/local/aegis' >/dev/null; then
  148.     echo "  processes gone"
  149.     break
  150.   fi
  151.   echo "  still present, retry $i/60"
  152. done
  153. echo

  154. # ---------- 6. 卸载挂在 /usr/local/aegis 下的所有挂载点(cgroup 等) ----------
  155. step "卸载 /usr/local/aegis 下的挂载点(从深到浅)"
  156. awk '$2 ~ "^/usr/local/aegis(/|$)" {print $2}' /proc/self/mounts | sort -r | while read -r m; do
  157.   echo "  umount -l $m"
  158.   umount -l "$m" 2>/dev/null || true
  159. done
  160. # 若曾对根目录 bind 过,再卸一次
  161. if mountpoint -q "$AEGIS_DIR"; then
  162.   echo "  umount -l $AEGIS_DIR"
  163.   umount -l "$AEGIS_DIR" 2>/dev/null || true
  164. fi
  165. echo

  166. # ---------- 7. 去保护位、删目录 ----------
  167. step "去不可变/仅追加属性并删除目录"
  168. try chattr -R -ia "$AEGIS_DIR"
  169. try chmod -R u+rwX "$AEGIS_DIR"
  170. try rm -rf "$AEGIS_DIR" /etc/aegis /var/log/aegis
  171. echo

  172. # ---------- 8. APT Pin(防回装,非破坏性) ----------
  173. step "设置 APT Pin(防止相关包回装)"
  174. cat >/etc/apt/preferences.d/hold-aliyun.pref <<'PREF'
  175. Package: *aliyun* *cloudmonitor* *ilogtail* *aegis* *sas* *yundun*
  176. Pin: release *
  177. Pin-Priority: -1
  178. PREF
  179. echo "  /etc/apt/preferences.d/hold-aliyun.pref 已写入(如需恢复可手动删除)"
  180. echo

  181. # ---------- 9. 最终验收 ----------
  182. if verify_all; then
  183.   exit 0
  184. else
  185.   echo
  186.   warn "如仅剩 /usr/local/aegis 空目录删不掉,复查是否仍有挂载:"
  187.   echo "  awk '\$2 ~ "^/usr/local/aegis(/|$)" {print \$2}' /proc/self/mounts | sort -r"
  188.   exit 1
  189. fi
复制代码
收起
随后Ctrl+O写入nano,在Ctrl+X退出nano。接着赋予权限并执行
  1. chmod +x /root/aegis_all_in_one.sh sudo /root/aegis_all_in_one.sh
复制代码
显示
  1. ==> 进程检查
  2. [PASS] 未发现 Aegis 相关进程

  3. ==> systemd 单元与软链
  4. [PASS] 无 wants 软链
  5. [PASS] aegis.service 已 mask(指向 /dev/null)

  6. ==> 目录与文件
  7. [PASS] 未发现 Aegis 残留目录

  8. ==> 网络连接
  9. [PASS] 未发现 AliYunDun 相关网络连接

  10. ==> dpkg 包(通常无)
  11. [PASS] 未发现相关包

  12. 验收通过:未发现 Aegis 残留。
复制代码
替换阿里云镜像源为官方源(可选,海外机器建议)
  1. sed -i 's#http://mirrors.cloud.aliyuncs.com/debian#http://deb.debian.org/debian#g' /etc/apt/sources.list
  2. sed -i 's#http://mirrors.cloud.aliyuncs.com/debian-security#http://security.debian.org/debian-security#g' /etc/apt/sources.list
  3. apt update
复制代码
引用自:https://cbrblog.eu.org/2025/09/0 ... %E5%AE%88%E6%8A%A4/
爱生活,爱奶昔~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

© 2025 Nyarime 沪ICP备13020230号-1|沪公网安备 31010702007642号手机版小黑屋RSS
返回顶部 关灯 在本版发帖
快速回复 返回顶部 返回列表