-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfix.sh
More file actions
executable file
·147 lines (127 loc) · 3.6 KB
/
Copy pathfix.sh
File metadata and controls
executable file
·147 lines (127 loc) · 3.6 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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
#!/bin/bash
# Kolory dla lepszej czytelności
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
echo -e "${YELLOW}Naprawa uprawnień i portów dla Caddy...${NC}"
# 1. Zatrzymanie wszystkich usług używających portu 443
echo "1. Szukanie i zatrzymywanie procesów na porcie 443..."
sudo lsof -i :443
sudo fuser -k 443/tcp
sleep 2
# 2. Naprawa uprawnień dla katalogów Caddy
echo "2. Naprawa uprawnień..."
sudo mkdir -p /var/log/caddy
sudo mkdir -p /var/lib/caddy/.local/share/caddy
sudo mkdir -p /var/lib/caddy/.config/caddy
sudo chown -R caddy:caddy /var/log/caddy
sudo chown -R caddy:caddy /var/lib/caddy
sudo chown -R caddy:caddy /etc/caddy
sudo chmod 755 /var/log/caddy
sudo chmod 755 /var/lib/caddy
sudo chmod 755 /etc/caddy
sudo chmod 644 /etc/caddy/Caddyfile
# 3. Formatowanie Caddyfile
echo "3. Formatowanie Caddyfile..."
sudo caddy fmt --overwrite /etc/caddy/Caddyfile
# 4. Aktualizacja konfiguracji Caddy
echo "4. Aktualizacja konfiguracji..."
cat > /etc/caddy/Caddyfile << 'EOF'
{
admin off
log {
output file /var/log/caddy/access.log
format json
}
servers {
protocols h1 h2 h2c
}
}
reactjs.dynapsys.com {
reverse_proxy localhost:8000 {
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto {scheme}
}
log {
output file /var/log/caddy/reactjs.dynapsys.com.log {
roll_size 10mb
roll_keep 5
}
format json
}
encode gzip
tls {
protocols tls1.2 tls1.3
}
}
EOF
# 5. Sprawdzenie konfiguracji systemd
echo "5. Aktualizacja konfiguracji systemd..."
cat > /etc/systemd/system/caddy.service << 'EOF'
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile
TimeoutStopSec=5s
LimitNOFILE=1048576
LimitNPROC=512
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
NoNewPrivileges=true
ReadWritePaths=/var/log/caddy /var/lib/caddy /etc/caddy
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
RestrictNamespaces=true
RestrictRealtime=true
RestrictSUIDSGID=true
ProtectClock=true
ProtectHostname=true
ProtectKernelLogs=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectControlGroups=true
PrivateDevices=true
LockPersonality=true
MemoryDenyWriteExecute=true
[Install]
WantedBy=multi-user.target
EOF
# 6. Resetowanie i restart usług
echo "6. Resetowanie i restart usług..."
sudo systemctl daemon-reload
sudo systemctl stop caddy
sudo systemctl stop apache2 2>/dev/null
sudo systemctl stop nginx 2>/dev/null
# 7. Sprawdzenie czy porty są wolne
echo "7. Sprawdzanie portów..."
if sudo lsof -i :443 >/dev/null; then
echo -e "${RED}Port 443 wciąż jest zajęty! Próba wymuszenia zamknięcia...${NC}"
sudo fuser -k 443/tcp
sleep 2
fi
# 8. Start Caddy z debugowaniem
echo "8. Uruchamianie Caddy..."
sudo systemctl start caddy
sleep 2
# 9. Sprawdzenie statusu
echo "9. Sprawdzanie statusu..."
sudo systemctl status caddy --no-pager
echo -e "\nSprawdzanie portów:"
sudo netstat -tuln | grep -E ':80|:443'
echo -e "\nSprawdzanie logów:"
sudo tail -n 5 /var/log/caddy/access.log 2>/dev/null
# 10. Test połączenia
echo -e "\n10. Test połączenia..."
curl -v https://reactjs.dynapsys.com 2>&1
echo -e "\n${GREEN}Zakończono naprawę. Sprawdź logi powyżej.${NC}"