- 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
6.7 KiB
6.7 KiB
Установка и запуск 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
- Настройки → Wi-Fi
- Долгое нажатие на сеть → Modify network
- Advanced → Proxy: Manual
- Proxy hostname:
<VPS_IP> - Proxy port:
8080 - Сохранить
iPhone
- Настройки → Wi-Fi
- Нажать на ⓘ рядом с сетью
- Configure Proxy: Manual
- Server:
<VPS_IP> - Port:
8080 - Authentication: ON
- Username:
claw - Password:
KworkParser2026!
- Username:
- Save
Установка сертификата (Android)
- Открыть браузер на телефоне
- Перейти:
http://<VPS_IP>:8080/mitmproxy/mitmproxy-ca.cer - Скачать сертификат
- Настройки → Security → Install certificate
- Выбрать файл:
mitmproxy-ca.cer - Name:
mitmproxy - OK
Установка сертификата (iPhone)
- Safari:
http://<VPS_IP>:8080/mitmproxy/mitmproxy-ca.cer - Allow → Profile downloaded
- Настройки → Profile downloaded → Install
- Настройки → General → About → Certificate Trust Settings
- Включить доверие для 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)
Рекомендации
-
Смени пароль после первого запуска:
# В auth.py и start.sh auth_pass="НовыйПароль2026!" -
Ограничь IP (если возможно):
# В start.sh добавить: --set allow_hosts=["твой_домашний_IP"] -
Используй HTTPS для mitmweb:
mitmweb --web-port 8081 --ssl-keyfile key.pem --ssl-certfile cert.pem -
Очищай логи регулярно:
# Cron: очищать раз в день 0 0 * * * truncate -s 0 /root/kwork-parser/mitmproxy/flows.mitm -
Не логируй чувствительные данные:
# Игнорировать 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