version 0.3.1 Добавлено полное удаление панели, warp, mita сервера и самой утилиты mita-cli в mita-cli
This commit is contained in:
Executable → Regular
+141
@@ -74,6 +74,7 @@ main_menu() {
|
|||||||
echo -e " ${BOLD}6.${NC} Изменить данные администратора панели"
|
echo -e " ${BOLD}6.${NC} Изменить данные администратора панели"
|
||||||
echo -e " ${BOLD}7.${NC} Настройка fail2ban"
|
echo -e " ${BOLD}7.${NC} Настройка fail2ban"
|
||||||
echo -e " ${BOLD}8.${NC} Рекомендации по безопасности VPS"
|
echo -e " ${BOLD}8.${NC} Рекомендации по безопасности VPS"
|
||||||
|
echo -e " ${RED}${BOLD}9.${NC} ${RED}Полное удаление mita, панели и WARP${NC}"
|
||||||
echo -e " ${BOLD}0.${NC} Выход"
|
echo -e " ${BOLD}0.${NC} Выход"
|
||||||
echo ""
|
echo ""
|
||||||
read -r -p " Выберите пункт: " choice
|
read -r -p " Выберите пункт: " choice
|
||||||
@@ -86,6 +87,7 @@ main_menu() {
|
|||||||
6) menu_change_admin ;;
|
6) menu_change_admin ;;
|
||||||
7) menu_fail2ban ;;
|
7) menu_fail2ban ;;
|
||||||
8) menu_security ;;
|
8) menu_security ;;
|
||||||
|
9) menu_uninstall ;;
|
||||||
0) exit 0 ;;
|
0) exit 0 ;;
|
||||||
*) warn "Неверный выбор" ;;
|
*) warn "Неверный выбор" ;;
|
||||||
esac
|
esac
|
||||||
@@ -829,6 +831,145 @@ EOF
|
|||||||
ok "Настройки применены. Попыток: $max_retry, бан: ${ban_time}с"
|
ok "Настройки применены. Попыток: $max_retry, бан: ${ban_time}с"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# ════════════════════════════════════════════════════════════════════════════
|
||||||
|
# 9. ПОЛНОЕ УДАЛЕНИЕ
|
||||||
|
# ════════════════════════════════════════════════════════════════════════════
|
||||||
|
menu_uninstall() {
|
||||||
|
clear
|
||||||
|
echo -e "${RED}"
|
||||||
|
echo " ╔══════════════════════════════════════════════════════════════╗"
|
||||||
|
echo " ║ ⚠ ПОЛНОЕ УДАЛЕНИЕ ⚠ ║"
|
||||||
|
echo " ╚══════════════════════════════════════════════════════════════╝"
|
||||||
|
echo -e "${NC}"
|
||||||
|
echo " Эта операция безвозвратно удалит:"
|
||||||
|
echo ""
|
||||||
|
echo -e " ${YELLOW}•${NC} mita сервер (бинарник, systemd unit, конфиги)"
|
||||||
|
echo -e " ${YELLOW}•${NC} Веб-панель (/opt/mita-panel, systemd unit)"
|
||||||
|
echo -e " ${YELLOW}•${NC} Cloudflare WARP (Docker-контейнер)"
|
||||||
|
echo -e " ${YELLOW}•${NC} Все пользователи и пароли (/etc/mita/)"
|
||||||
|
echo -e " ${YELLOW}•${NC} SSL-сертификаты, выпущенные для панели"
|
||||||
|
echo -e " ${YELLOW}•${NC} Правила fail2ban для панели"
|
||||||
|
echo -e " ${YELLOW}•${NC} Cron-задачи обновления списков доменов"
|
||||||
|
echo -e " ${YELLOW}•${NC} Сама утилита mita-ctl (/usr/local/bin/mita-ctl)"
|
||||||
|
echo ""
|
||||||
|
echo -e " ${RED}${BOLD}Это действие необратимо. Все данные будут потеряны.${NC}"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
read -r -p " Введите слово УДАЛИТЬ для подтверждения: " confirm1
|
||||||
|
if [[ "$confirm1" != "УДАЛИТЬ" ]]; then
|
||||||
|
warn "Отменено — слово не совпадает"
|
||||||
|
pause
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
read -r -p " Вы точно уверены? Введите 'да' ещё раз: " confirm2
|
||||||
|
if [[ "${confirm2,,}" != "да" ]]; then
|
||||||
|
warn "Отменено"
|
||||||
|
pause
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
section "Удаление в процессе..."
|
||||||
|
|
||||||
|
# ── 1. Остановить и удалить веб-панель ─────────────────────────
|
||||||
|
info "Остановка mita-panel..."
|
||||||
|
systemctl stop mita-panel 2>/dev/null || true
|
||||||
|
systemctl disable mita-panel 2>/dev/null || true
|
||||||
|
rm -f /etc/systemd/system/mita-panel.service
|
||||||
|
rm -rf /opt/mita-panel
|
||||||
|
ok "Веб-панель удалена"
|
||||||
|
|
||||||
|
# ── 2. Остановить и удалить mita сервер ────────────────────────
|
||||||
|
info "Остановка mita..."
|
||||||
|
systemctl stop mita 2>/dev/null || true
|
||||||
|
systemctl disable mita 2>/dev/null || true
|
||||||
|
rm -f /usr/lib/systemd/system/mita.service
|
||||||
|
rm -f /etc/systemd/system/mita.service
|
||||||
|
command -v mita &>/dev/null && {
|
||||||
|
DEB_PKG=$(dpkg -l 2>/dev/null | grep -i mita | awk '{print $2}' | head -1)
|
||||||
|
[[ -n "$DEB_PKG" ]] && apt-get remove -y -qq "$DEB_PKG" 2>/dev/null
|
||||||
|
}
|
||||||
|
rm -f /usr/bin/mita
|
||||||
|
ok "mita сервер удалён"
|
||||||
|
|
||||||
|
# ── 3. Удалить WARP (Docker) ───────────────────────────────────
|
||||||
|
if command -v docker &>/dev/null; then
|
||||||
|
info "Удаление WARP контейнера..."
|
||||||
|
docker rm -f cloudflare-warp 2>/dev/null || true
|
||||||
|
docker rmi seiry/cloudflare-warp-proxy 2>/dev/null || true
|
||||||
|
ok "WARP контейнер удалён"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── 4. Удалить конфиги и данные ────────────────────────────────
|
||||||
|
info "Удаление конфигов и пользователей..."
|
||||||
|
rm -rf /etc/mita
|
||||||
|
rm -rf /var/lib/mita
|
||||||
|
rm -rf /var/run/mita
|
||||||
|
rm -f /var/log/mita-panel*.log
|
||||||
|
rm -f /var/log/mita-update.log
|
||||||
|
ok "Конфиги и данные удалены"
|
||||||
|
|
||||||
|
# ── 5. Удалить SSL-сертификаты Let's Encrypt (если выпускались) ─
|
||||||
|
if command -v certbot &>/dev/null; then
|
||||||
|
local domains
|
||||||
|
domains=$(certbot certificates 2>/dev/null | grep "Domains:" | awk '{print $2}')
|
||||||
|
if [[ -n "$domains" ]]; then
|
||||||
|
info "Найдены сертификаты Let's Encrypt: $domains"
|
||||||
|
read -r -p " Удалить их тоже? [y/N]: " del_certs
|
||||||
|
if [[ "${del_certs,,}" == "y" ]]; then
|
||||||
|
for d in $domains; do
|
||||||
|
certbot delete --cert-name "$d" --non-interactive 2>/dev/null || true
|
||||||
|
done
|
||||||
|
ok "Сертификаты удалены"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# ── 6. Удалить правила fail2ban ────────────────────────────────
|
||||||
|
info "Удаление правил fail2ban для панели..."
|
||||||
|
rm -f /etc/fail2ban/filter.d/mita-panel.conf
|
||||||
|
rm -f /etc/fail2ban/jail.d/mita-panel.conf
|
||||||
|
systemctl restart fail2ban 2>/dev/null || true
|
||||||
|
ok "Правила fail2ban удалены (сам fail2ban не тронут — может использоваться для SSH)"
|
||||||
|
|
||||||
|
# ── 7. Удалить cron-задачи ──────────────────────────────────────
|
||||||
|
info "Удаление cron-задач..."
|
||||||
|
crontab -l 2>/dev/null | grep -v "mita-update-lists" | grep -v "certbot renew --quiet && systemctl restart mita-panel" | crontab - 2>/dev/null || true
|
||||||
|
rm -f /etc/cron.d/mita-update
|
||||||
|
rm -f /usr/local/bin/mita-update-lists
|
||||||
|
ok "Cron-задачи удалены"
|
||||||
|
|
||||||
|
# ── 8. Закрыть порты в firewall (best-effort) ──────────────────
|
||||||
|
info "Откат правил firewall (порты mita/панели)..."
|
||||||
|
if command -v ufw &>/dev/null; then
|
||||||
|
ufw status numbered 2>/dev/null | grep -iE "mita|panel" | awk -F'[][]' '{print $2}' | sort -rn | while read -r num; do
|
||||||
|
[[ -n "$num" ]] && yes | ufw delete "$num" 2>/dev/null || true
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
ok "Правила firewall обработаны (проверьте 'ufw status' вручную при необходимости)"
|
||||||
|
|
||||||
|
systemctl daemon-reload 2>/dev/null || true
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo -e "${GREEN}╔══════════════════════════════════════════════════════════════╗${NC}"
|
||||||
|
echo -e "${GREEN}║ УДАЛЕНИЕ ЗАВЕРШЕНО ║${NC}"
|
||||||
|
echo -e "${GREEN}╚══════════════════════════════════════════════════════════════╝${NC}"
|
||||||
|
echo ""
|
||||||
|
echo " mita, веб-панель, WARP и связанные данные удалены."
|
||||||
|
echo " fail2ban, certbot, docker и системные пакеты оставлены —"
|
||||||
|
echo " они могут использоваться другими сервисами на этом VPS."
|
||||||
|
echo ""
|
||||||
|
echo -e " ${YELLOW}Эта утилита (mita-ctl) удалит себя после выхода.${NC}"
|
||||||
|
echo ""
|
||||||
|
read -r -p "Нажмите Enter для выхода..." _
|
||||||
|
|
||||||
|
# Удаляем сам себя последним действием
|
||||||
|
rm -f /usr/local/bin/mita-ctl
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
# ── Точка входа ───────────────────────────────────────────────────────────
|
# ── Точка входа ───────────────────────────────────────────────────────────
|
||||||
main_menu
|
main_menu
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user