kwork-api/mitmproxy/INSTALL.md
Claw 27ff64e02e Add mitmproxy VPS deployment with auth
- mitmproxy/auth.py: Basic Auth addon
- mitmproxy/start.sh: Startup script
- mitmproxy/mitmproxy.conf: Configuration
- mitmproxy.service: systemd service
- scripts/view_flows.py: Log viewer for Claw
- mitmproxy/INSTALL.md: Full installation guide

Features:
- HTTP Basic Auth (claw / KworkParser2026!)
- Captures traffic from phone
- Logs saved to flows.mitm
- Easy log viewing for AI analysis
2026-03-22 23:04:27 +00:00

313 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Установка и запуск mitmproxy на VPS
## 1. Установка mitmproxy
### Вариант A: pip (рекомендуется)
```bash
# Установить pip
apt-get update && apt-get install -y python3-pip
# Установить mitmproxy
pip3 install mitmproxy
# Проверка
mitmdump --version
```
### Вариант B: Docker (если pip не работает)
```bash
# Установить Docker
apt-get install -y docker.io
# Запустить в контейнере
docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy \
mitmdump -p 8080 --mode regular
```
### Вариант C: apt (старая версия)
```bash
apt-get install -y mitmproxy
```
---
## 2. Настройка firewall
```bash
# Открыть порт 8080
ufw allow 8080/tcp
# Проверить
ufw status
```
---
## 3. Генерация сертификата
```bash
# Первый запуск создаст сертификат
mitmproxy --version
# Сертификаты будут в ~/.mitmproxy/
ls -la ~/.mitmproxy/
```
---
## 4. Запуск с авторизацией
### Быстрый старт
```bash
cd /root/kwork-parser/mitmproxy
chmod +x start.sh
./start.sh
```
### Вручную
```bash
mitmdump \
-s /root/kwork-parser/mitmproxy/auth.py \
--set auth_user=claw \
--set auth_pass="KworkParser2026!" \
-p 8080 \
--mode regular \
-w /root/kwork-parser/mitmproxy/flows.mitm
```
### Как systemd сервис
```bash
# Установить сервис
cp /root/kwork-parser/mitmproxy/mitmproxy.service /etc/systemd/system/
# Запустить
systemctl daemon-reload
systemctl enable mitmproxy
systemctl start mitmproxy
# Проверить статус
systemctl status mitmproxy
# Логи
journalctl -u mitmproxy -f
```
---
## 5. Настройка телефона
### Android
1. Настройки → Wi-Fi
2. Долгое нажатие на сеть → Modify network
3. Advanced → Proxy: Manual
4. Proxy hostname: `<VPS_IP>`
5. Proxy port: `8080`
6. Сохранить
### iPhone
1. Настройки → Wi-Fi
2. Нажать на ⓘ рядом с сетью
3. Configure Proxy: Manual
4. Server: `<VPS_IP>`
5. Port: `8080`
6. Authentication: ON
- Username: `claw`
- Password: `KworkParser2026!`
7. Save
### Установка сертификата (Android)
1. Открыть браузер на телефоне
2. Перейти: `http://<VPS_IP>:8080/mitmproxy/mitmproxy-ca.cer`
3. Скачать сертификат
4. Настройки → Security → Install certificate
5. Выбрать файл: `mitmproxy-ca.cer`
6. Name: `mitmproxy`
7. OK
### Установка сертификата (iPhone)
1. Safari: `http://<VPS_IP>:8080/mitmproxy/mitmproxy-ca.cer`
2. Allow → Profile downloaded
3. Настройки → Profile downloaded → Install
4. Настройки → General → About → Certificate Trust Settings
5. Включить доверие для mitmproxy
---
## 6. Проверка работы
### С телефона
```bash
# Открыть браузер на телефоне
# Перейти на http://example.com
```
### На VPS
```bash
# Посмотреть логи
tail -f /root/kwork-parser/mitmproxy/mitmproxy.log
# Или через скрипт
python3 /root/kwork-parser/scripts/view_flows.py --last 10
```
---
## 7. Просмотр логов
### Последние запросы
```bash
python3 /root/kwork-parser/scripts/view_flows.py --last 20
```
### Только Kwork
```bash
python3 /root/kwork-parser/scripts/view_flows.py --domain kwork.ru --last 50
```
### Только JSON
```bash
python3 /root/kwork-parser/scripts/view_flows.py --json --last 20
```
### Полная информация
```bash
python3 /root/kwork-parser/scripts/view_flows.py --domain kwork.ru --full
```
### В реальном времени
```bash
tail -f /root/kwork-parser/mitmproxy/flows.mitm | \
python3 -c "
import sys
from mitmproxy import io
for flow in io.FlowReader(sys.stdin.buffer).read():
if hasattr(flow, 'request'):
print(f'{flow.request.method} {flow.request.url}')
"
```
---
## 8. Безопасность
### Что защищено
**Авторизация** — Basic Auth (логин/пароль)
**Firewall** — только порт 8080 открыт
**Изоляция** — mitmproxy работает от root (для systemd)
### Рекомендации
1. **Смени пароль** после первого запуска:
```bash
# В auth.py и start.sh
auth_pass="НовыйПароль2026!"
```
2. **Ограничь IP** (если возможно):
```bash
# В start.sh добавить:
--set allow_hosts=["твой_домашний_IP"]
```
3. **Используй HTTPS** для mitmweb:
```bash
mitmweb --web-port 8081 --ssl-keyfile key.pem --ssl-certfile cert.pem
```
4. **Очищай логи** регулярно:
```bash
# Cron: очищать раз в день
0 0 * * * truncate -s 0 /root/kwork-parser/mitmproxy/flows.mitm
```
5. **Не логируй чувствительные данные**:
```bash
# Игнорировать banking сайты
mitmdump --set 'ignore_hosts=~u (bank|payment|stripe)"'
```
---
## 9. Troubleshooting
### Ошибка: Address already in use
```bash
# Проверить кто использует порт
lsof -i :8080
# Убить процесс
kill -9 <PID>
```
### Ошибка: Certificate not trusted
```bash
# Переустановить сертификат на телефоне
# Удалить старый из доверенных
# Скачать заново: http://<VPS_IP>:8080/mitmproxy/mitmproxy-ca.cer
```
### Ошибка: Authentication failed
```bash
# Проверить логин/пароль
# Логин: claw
# Пароль: KworkParser2026!
# В настройках прокси телефона включить Authentication
```
### mitmproxy не стартует
```bash
# Проверить логи
journalctl -u mitmproxy -n 50
# Проверить конфиг
cat /root/kwork-parser/mitmproxy/mitmproxy.log
```
---
## 10. Команды для Claw (AI)
```bash
# Посмотреть последние запросы
python3 /root/kwork-parser/scripts/view_flows.py --last 20
# Найти API эндпоинты
python3 /root/kwork-parser/scripts/view_flows.py --json --domain kwork.ru
# Экспортировать в HAR
python3 /root/kwork-parser/scripts/mitmproxy-to-har.py \
/root/kwork-parser/mitmproxy/flows.mitm \
/root/kwork-parser/mitmproxy/export.har
# Анализ HAR
jq '[.log.entries[] | select(.request.url | contains("kwork"))] | length' \
/root/kwork-parser/mitmproxy/export.har
```
---
_Updated: 2026-03-22_