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}7.${NC} Настройка fail2ban"
|
||||
echo -e " ${BOLD}8.${NC} Рекомендации по безопасности VPS"
|
||||
echo -e " ${RED}${BOLD}9.${NC} ${RED}Полное удаление mita, панели и WARP${NC}"
|
||||
echo -e " ${BOLD}0.${NC} Выход"
|
||||
echo ""
|
||||
read -r -p " Выберите пункт: " choice
|
||||
@@ -86,6 +87,7 @@ main_menu() {
|
||||
6) menu_change_admin ;;
|
||||
7) menu_fail2ban ;;
|
||||
8) menu_security ;;
|
||||
9) menu_uninstall ;;
|
||||
0) exit 0 ;;
|
||||
*) warn "Неверный выбор" ;;
|
||||
esac
|
||||
@@ -829,6 +831,145 @@ EOF
|
||||
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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user