chore(public): sanitize repository presentation

This commit is contained in:
igor04091968
2026-06-03 08:02:15 +03:00
parent dd3163624b
commit 9fc218dc49
107 changed files with 829 additions and 139257 deletions
+29 -29
View File
@@ -4,16 +4,16 @@
### Proxmox web gateway
Если на host `10.10.10.2` развёрнут `nginx` gateway, базовые проверки такие:
Если на host `<GATEWAY_HOST>` развёрнут `nginx` gateway, базовые проверки такие:
```sh
systemctl status nginx --no-pager
nginx -t
curl -I -sS -H 'Host: dm.iri1968.dpdns.org' http://127.0.0.1/
curl -k -fsS -H 'Host: dm.iri1968.dpdns.org' https://127.0.0.1/healthz
curl -k -I -sS -H 'Host: dm.iri1968.dpdns.org' https://127.0.0.1/ | head
curl -k -u "$(awk -F= '/^user=/{u=$2}/^password=/{p=$2}END{print u\":\"p}' /root/proxmox-web-gateway.credentials)" \
-H 'Host: dm.iri1968.dpdns.org' -fsS https://127.0.0.1/ | grep -F 'dm.iri1968.dpdns.org'
curl -I -sS -H 'Host: <PUBLIC_GATEWAY_FQDN>' http://127.0.0.1/
curl -k -fsS -H 'Host: <PUBLIC_GATEWAY_FQDN>' https://127.0.0.1/healthz
curl -k -I -sS -H 'Host: <PUBLIC_GATEWAY_FQDN>' https://127.0.0.1/ | head
curl -k -u "$(awk -F= '/^user=/{u=$2}/^password=/{p=$2}END{print u\":\"p}' <GATEWAY_CREDENTIALS_FILE>)" \
-H 'Host: <PUBLIC_GATEWAY_FQDN>' -fsS https://127.0.0.1/ | grep -F '<PUBLIC_GATEWAY_FQDN>'
```
Playbook для повторного rollout:
@@ -28,24 +28,24 @@ ansible-playbook -i ansible/inventory.ini ansible/deploy_proxmox_web_gateway.yml
Публичная схема:
```text
Internet -> dm.iri1968.dpdns.org -> pfSense WAN 178.178.98.83 -> NAT 80/443 -> nginx 10.10.10.2
Internet -> <PUBLIC_GATEWAY_FQDN> -> pfSense WAN <WAN_IP> -> NAT 80/443 -> nginx <GATEWAY_HOST>
```
Нормальное состояние:
- `https://dm.iri1968.dpdns.org/healthz` -> `200 ok` без auth;
- `https://dm.iri1968.dpdns.org/` без auth -> `401`;
- `http://dm.iri1968.dpdns.org/healthz` -> `301` на HTTPS;
- `https://<PUBLIC_GATEWAY_FQDN>/healthz` -> `200 ok` без auth;
- `https://<PUBLIC_GATEWAY_FQDN>/` без auth -> `401`;
- `http://<PUBLIC_GATEWAY_FQDN>/healthz` -> `301` на HTTPS;
- после Basic Auth:
- `/` -> gateway index;
- `/r/file1c/brief` -> 1C brief;
- `/r/grafana/api/health` -> Grafana health;
- `/r/aw/api/0/info` -> AW server info.
Gateway credential хранится только на `10.10.10.2`:
Gateway credential хранится только на `<GATEWAY_HOST>`:
```sh
sudo cat /root/proxmox-web-gateway.credentials
sudo cat <GATEWAY_CREDENTIALS_FILE>
```
pfSense NAT backup перед автоматической правкой:
@@ -58,13 +58,13 @@ ls -1t /opt/infra-admin/backups/pfsense-gateway-nat-*.json | head
```sh
set -a
. /home/igor/.config/tsj-bot/pfsense.env.readonly
. <OPERATOR_HOME>/.config/tsj-bot/pfsense.env.readonly
set +a
curl -ksS -H "X-API-Key: $PFSENSE_API_KEY" "$PFSENSE_URL/api/v2/firewall/apply"
```
NAT должен содержать `WAN tcp 443 -> 10.10.10.2:443` и `WAN tcp 80 -> 10.10.10.2:80`.
WAN rules должны содержать pass на `10.10.10.2:80` и `10.10.10.2:443`.
NAT должен содержать `WAN tcp 443 -> <GATEWAY_HOST>:443` и `WAN tcp 80 -> <GATEWAY_HOST>:80`.
WAN rules должны содержать pass на `<GATEWAY_HOST>:80` и `<GATEWAY_HOST>:443`.
### На Proxmox
@@ -77,7 +77,7 @@ pct exec <CT_ID> -- curl -fsS http://127.0.0.1:5600/api/0/info
### На host-based инсталляции
Для подтвержденного размещения на `10.10.10.2`:
Для подтвержденного размещения на `<GATEWAY_HOST>`:
```sh
ps -ef | grep -E 'aw-server-rust|pfsense-aw-poller' | grep -v grep
@@ -265,7 +265,7 @@ curl -fsS 'http://127.0.0.1:5610/reports/worktime/management?day=today&departmen
powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\AWatch-rus\export-upload-hayabusa-to-aw-server.ps1 -HoursBack 6 -CaseId 30
```
2. Сервер `10.10.10.13` сам:
2. Сервер `<AW_SERVER_HOST>` сам:
- примет `zip` и `.meta.json` в `/opt/activitywatch/aw-rus-ops/drop`;
- запустит `aw-hayabusa`;
@@ -293,7 +293,7 @@ curl -fsS http://127.0.0.1:5602/api/0/dlp/cases/30
Цель: подтвердить один реальный путь
- Windows EVTX export
- перенос пакета на `10.10.10.13`
- перенос пакета на `<AW_SERVER_HOST>`
- intake через `aw-hayabusa`
- генерация отчёта
- привязка bounded metadata к операторскому follow-up
@@ -324,7 +324,7 @@ Get-ChildItem 'C:\ProgramData\AWatch-rus\forensics\evtx-exports' |
- `HOST-YYYYMMDD-HHMMSS.zip`
3. Перенести zip на `10.10.10.13` в операторскую рабочую зону.
3. Перенести zip на `<AW_SERVER_HOST>` в операторскую рабочую зону.
4. На `AW-server` проверить раннер:
@@ -463,7 +463,7 @@ curl -fsS 'http://127.0.0.1:5600/api/0/buckets/aw-dlp-incidents_SHARKON2025/even
Цель: подтвердить, что при недоступности AW API события не теряются, а буферизуются в локальной очереди и автоматически отправляются после восстановления связи.
На RDP-хосте (`192.168.100.18`) в PowerShell под администратором:
На RDP-хосте (`<WINDOWS_HOST>`) в PowerShell под администратором:
1) Проверить/обнулить очереди:
@@ -509,7 +509,7 @@ Get-Item $q1,$q2 | Select Name,Length,LastWriteTime
6) Проверка на AW server:
```sh
curl -fsS 'http://10.10.10.13:5600/api/0/buckets/aw-file-operations_10.10.10.13/events?limit=10' | jq '.[0].data'
curl -fsS 'http://<AW_SERVER_HOST>:5600/api/0/buckets/aw-file-operations_<AW_SERVER_HOST>/events?limit=10' | jq '.[0].data'
```
После теста удалить правило:
@@ -520,12 +520,12 @@ Remove-NetFirewallRule -DisplayName 'AWatch WAL Test Block 5600' -ErrorAction Si
### PowerShell MCP на DetMir Windows host
Для `DetMir` Windows host `192.168.100.18` интерактивный путь из Linux/Codex закреплён через `SSH`, а не через `WSMan`.
Для `DetMir` Windows host `<WINDOWS_HOST>` интерактивный путь из Linux/Codex закреплён через `SSH`, а не через `WSMan`.
Быстрый вход:
```bash
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian
cd <PROJECT_ROOT>
bash scripts/install_detmir_powershell_mcp.sh
```
@@ -592,21 +592,21 @@ chmod 600 /tmp/sharkon_ru.auth
3. Запустить recovery task:
```sh
wmiexec.py -nooutput -A /tmp/sharkon_ru.auth 192.168.100.18 \
wmiexec.py -nooutput -A /tmp/sharkon_ru.auth <WINDOWS_HOST> \
"powershell -NoProfile -Command \"Start-ScheduledTask -TaskName 'ActivityWatch Recovery'\""
```
4. Запустить все launch tasks:
```sh
wmiexec.py -nooutput -A /tmp/sharkon_ru.auth 192.168.100.18 \
wmiexec.py -nooutput -A /tmp/sharkon_ru.auth <WINDOWS_HOST> \
"powershell -NoProfile -Command \"Get-ScheduledTask | Where-Object TaskName -like 'ActivityWatch Launch *' | ForEach-Object { Start-ScheduledTask -TaskName \$_.TaskName }\""
```
5. Подождать 10-20 секунд и проверить API на AW server (`10.10.10.13:5600`):
5. Подождать 10-20 секунд и проверить API на AW server (`<AW_SERVER_HOST>:5600`):
```sh
curl -fsS 'http://10.10.10.13:5600/api/0/buckets/aw-watcher-afk_SHARKON2025/events?limit=30' \
curl -fsS 'http://<AW_SERVER_HOST>:5600/api/0/buckets/aw-watcher-afk_SHARKON2025/events?limit=30' \
| jq '{latest:.[0].timestamp, statuses:(group_by(.data.status)|map({status:.[0].data.status,count:length}))}'
```
@@ -644,7 +644,7 @@ journalctl -xeu activitywatch-server.service --no-pager
Повторное применение:
```sh
bash /root/bootstrap/apply_webui_ru_patch.sh
bash <CT_BOOTSTRAP_DIR>/apply_webui_ru_patch.sh
systemctl restart activitywatch-server.service
```
@@ -675,7 +675,7 @@ systemctl restart activitywatch-server.service
Для повторяемой проверки сертификатов подписантов и встроенных лицензий CryptoPro:
```bash
cd /mnt/usb_hdd2/Projects/ActivityWatch-Russian/ansible
cd <PROJECT_ROOT>/ansible
ansible-playbook -i inventory.ini audit_cryptopro_windows.yml
```