# Установка и запуск 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: `` 5. Proxy port: `8080` 6. Сохранить ### iPhone 1. Настройки → Wi-Fi 2. Нажать на ⓘ рядом с сетью 3. Configure Proxy: Manual 4. Server: `` 5. Port: `8080` 6. Authentication: ON - Username: `claw` - Password: `KworkParser2026!` 7. Save ### Установка сертификата (Android) 1. Открыть браузер на телефоне 2. Перейти: `http://:8080/mitmproxy/mitmproxy-ca.cer` 3. Скачать сертификат 4. Настройки → Security → Install certificate 5. Выбрать файл: `mitmproxy-ca.cer` 6. Name: `mitmproxy` 7. OK ### Установка сертификата (iPhone) 1. Safari: `http://: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 ``` ### Ошибка: Certificate not trusted ```bash # Переустановить сертификат на телефоне # Удалить старый из доверенных # Скачать заново: http://: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_