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

6.7 KiB
Raw Blame History

Установка и запуск mitmproxy на VPS

1. Установка mitmproxy

Вариант A: pip (рекомендуется)

# Установить pip
apt-get update && apt-get install -y python3-pip

# Установить mitmproxy
pip3 install mitmproxy

# Проверка
mitmdump --version

Вариант B: Docker (если pip не работает)

# Установить Docker
apt-get install -y docker.io

# Запустить в контейнере
docker run --rm -it -p 8080:8080 mitmproxy/mitmproxy \
  mitmdump -p 8080 --mode regular

Вариант C: apt (старая версия)

apt-get install -y mitmproxy

2. Настройка firewall

# Открыть порт 8080
ufw allow 8080/tcp

# Проверить
ufw status

3. Генерация сертификата

# Первый запуск создаст сертификат
mitmproxy --version

# Сертификаты будут в ~/.mitmproxy/
ls -la ~/.mitmproxy/

4. Запуск с авторизацией

Быстрый старт

cd /root/kwork-parser/mitmproxy
chmod +x start.sh
./start.sh

Вручную

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 сервис

# Установить сервис
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. Проверка работы

С телефона

# Открыть браузер на телефоне
# Перейти на http://example.com

На VPS

# Посмотреть логи
tail -f /root/kwork-parser/mitmproxy/mitmproxy.log

# Или через скрипт
python3 /root/kwork-parser/scripts/view_flows.py --last 10

7. Просмотр логов

Последние запросы

python3 /root/kwork-parser/scripts/view_flows.py --last 20

Только Kwork

python3 /root/kwork-parser/scripts/view_flows.py --domain kwork.ru --last 50

Только JSON

python3 /root/kwork-parser/scripts/view_flows.py --json --last 20

Полная информация

python3 /root/kwork-parser/scripts/view_flows.py --domain kwork.ru --full

В реальном времени

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. Смени пароль после первого запуска:

    # В auth.py и start.sh
    auth_pass="НовыйПароль2026!"
    
  2. Ограничь IP (если возможно):

    # В start.sh добавить:
    --set allow_hosts=["твой_домашний_IP"]
    
  3. Используй HTTPS для mitmweb:

    mitmweb --web-port 8081 --ssl-keyfile key.pem --ssl-certfile cert.pem
    
  4. Очищай логи регулярно:

    # Cron: очищать раз в день
    0 0 * * * truncate -s 0 /root/kwork-parser/mitmproxy/flows.mitm
    
  5. Не логируй чувствительные данные:

    # Игнорировать banking сайты
    mitmdump --set 'ignore_hosts=~u (bank|payment|stripe)"'
    

9. Troubleshooting

Ошибка: Address already in use

# Проверить кто использует порт
lsof -i :8080

# Убить процесс
kill -9 <PID>

Ошибка: Certificate not trusted

# Переустановить сертификат на телефоне
# Удалить старый из доверенных
# Скачать заново: http://<VPS_IP>:8080/mitmproxy/mitmproxy-ca.cer

Ошибка: Authentication failed

# Проверить логин/пароль
# Логин: claw
# Пароль: KworkParser2026!

# В настройках прокси телефона включить Authentication

mitmproxy не стартует

# Проверить логи
journalctl -u mitmproxy -n 50

# Проверить конфиг
cat /root/kwork-parser/mitmproxy/mitmproxy.log

10. Команды для Claw (AI)

# Посмотреть последние запросы
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