-
-
Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy pathforwarding_delete.sh
More file actions
91 lines (76 loc) · 2.83 KB
/
forwarding_delete.sh
File metadata and controls
91 lines (76 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/usr/bin/env bash
set -euo pipefail
#################################
# TRAP
#################################
trap 'echo -e "\033[1;31m[ERROR]\033[0m Ошибка в строке $LINENO"; exit 1' ERR
#################################
# HELPERS
#################################
log() { echo -e "\033[1;32m[INFO]\033[0m $1"; }
warn() { echo -e "\033[1;33m[WARN]\033[0m $1"; }
[[ $EUID -eq 0 ]] || { echo "Запускать нужно от root"; exit 1; }
read -r -p "Вы уверены, что хотите удалить? (y/n): " answer
case "$answer" in
y|Y)
echo "Начинаю удаление..."
;;
*)
echo "Удаление отменено"
exit 1
;;
esac
#################################
# PATHS
#################################
BASE_DIR="/opt/3dp-manager"
UFW_BEFORE="/etc/ufw/before.rules"
UFW_NAT_MARKER="3dp-manager NAT"
NGINX_PORT=$(cd "$BASE_DIR" && docker compose exec -T node printenv ORIGIN_PORT | tr -d '\r')
#################################
# DOCKER CLEAN
#################################
if [[ -d "$BASE_DIR" ]]; then
log "Остановка Docker"
cd "$BASE_DIR"
docker compose down --remove-orphans || true
else
warn "Каталог проекта не найден"
fi
#################################
# REMOVE FILES
#################################
log "Удаление файлов проекта"
rm -rf "$BASE_DIR"
#################################
# UFW NAT CLEAN
#################################
echo "--- Удаление перенаправления ---"
rm -f /etc/sysctl.d/99-relay-optimization.conf
sysctl net.ipv4.ip_forward=0
echo "--- Восстановление правил UFW из бэкапа ---"
if [ -f /etc/ufw/before.rules.bak ]; then
mv /etc/ufw/before.rules.bak /etc/ufw/before.rules
echo "Файл before.rules восстановлен из бэкапа."
else
echo "ВНИМАНИЕ: Бэкап before.rules.bak не найден. Правила NAT придется удалять вручную."
fi
echo "--- Удаление разрешающих правил портов ---"
ufw delete allow 443/tcp
ufw delete allow 443/udp
ufw delete allow 8443/tcp
ufw delete allow 8443/udp
ufw delete allow "$NGINX_PORT"/tcp
ufw delete allow 10000:60000/tcp
ufw delete allow 10000:60000/udp
echo "--- Возврат политики FORWARD по умолчанию (DROP) ---"
sed -i 's/DEFAULT_FORWARD_POLICY="ACCEPT"/DEFAULT_FORWARD_POLICY="DROP"/' /etc/default/ufw
echo "--- Перезапуск фаервола ---"
ufw reload
#################################
# RESULT
#################################
echo "Docker контейнеры удалены"
echo "UFW NAT очищен"
echo "ip_forward отключён"
log "Откат завершён. Для окончательного применения изменений перезагрузите систему!"