Вопрос или проблема
Я хотел бы использовать прозрачный режим mitm с wireguard
Поэтому я попробовал это
mitmweb --mode wireguard 0 (3.656s) < 19:02:30
[19:02:32.784] ------------------------------------------------------------
[Interface]
PrivateKey = 3EehrmHii+iVTKubcsUX0JTxUAWH+td4dxHPiQ3knKw=
Address = 10.0.0.1/32
DNS = 10.0.0.53
[Peer]
PublicKey = OgxYi/SqMutxOc5/0JH/KhaORA/TA1fpSfQupST0yxs=
AllowedIPs = 0.0.0.0/0
Endpoint = 192.168.1.215:51820
Я затем попытался включить конфигурацию wireguard, данную командой mitmweb --mode wireguard
выше:
wg-quick up ./mitmweb.conf
Предупреждение: `/home/rosemaryoannah/mitmweb.conf' доступен всем
[#] ip link add mitmweb type wireguard
[#] wg setconf mitmweb /dev/fd/63
[#] ip -4 address add 10.0.0.1/32 dev mitmweb
[#] ip link set mtu 65456 up dev mitmweb
[#] resolvconf -a mitmweb -m 0 -x
[#] wg set mitmweb fwmark 51820
[#] ip -4 route add 0.0.0.0/0 dev mitmweb table 51820
[#] ip -4 rule add not fwmark 51820 table 51820
[#] ip -4 rule add table main suppress_prefixlength 0
[#] sysctl -q net.ipv4.conf.all.src_valid_mark=1
[#] nft -f /dev/fd/63
Но затем, когда я посмотрел в http://127.0.0.1:8081/#/flows
, похоже, что все заканчивается с SERVFAIL
Рекурсивный запрос.
Что мне делать?
Ответ или решение
Чтобы настроить прозрачный прокси mitmproxy с использованием WireGuard на вашей системе Arch Linux и устранить проблему с ошибкой SERVFAIL, важно следовать правильно подобранной последовательности шагов и проверок. В этом ответе я подробно расскажу о необходимых действиях.
Шаг 1: Установка необходимого ПО
Убедитесь, что у вас установлены необходимые пакеты. Запустите в терминале:
sudo pacman -Syu mitmproxy wireguard-tools
Шаг 2: Настройка конфигурации WireGuard
Ваш файл конфигурации mitmweb.conf
выглядит корректно. Однако убедитесь, что конфигурация WireGuard не имеет ошибок, и параметры соответствуют вашей сети. Вот пример, как может выглядеть файл:
[Interface]
PrivateKey = 3EehrmHii+iVTKubcsUX0JTxUAWH+td4dxHPiQ3knKw=
Address = 10.0.0.1/32
DNS = 10.0.0.53
[Peer]
PublicKey = OgxYi/SqMutxOc5/0JH/KhaORA/TA1fpSfQupST0yxs=
AllowedIPs = 0.0.0.0/0
Endpoint = 192.168.1.215:51820
Убедитесь, что DNS-сервер, указанный в конфиге (10.0.0.53), доступен и работает корректно. Возникающие ошибки SERVFAIL часто связаны с проблемами разрешения DNS.
Шаг 3: Запуск WireGuard
Запустите WireGuard с помощью команды:
wg-quick up ./mitmweb.conf
Убедитесь, что команда выполняется без ошибок. Проверьте статус интерфейса:
ip a show mitmweb
Шаг 4: Проверка DNS
Проблемы с разрешением DNS могут вызывать ошибки SERVFAIL. Запустите ping на DNS:
ping 10.0.0.53
Если DNS не отвечает, попробуйте сменить его на другой (например, 1.1.1.1
или 8.8.8.8
) и проверьте конфигурацию.
Шаг 5: Запуск mitmproxy
Запустите mitmproxy в режиме WireGuard:
mitmweb --mode wireguard
Следите за тем, что он не выдает ошибок при запуске и отображает информацию о статусе.
Шаг 6: Проверка правил маршрутизации
Убедитесь, что маршруты устанавливаются правильно. Для этого проверьте маршруты с помощью команды:
ip route show table 51820
Должны быть маршруты, направляющие трафик через интерфейс mitmweb.
Кроме того, выполните:
ip rule show
Убедитесь, что правила перенаправления активны и работают корректно.
Шаг 7: Проверка соединения
В браузере, открыв http://127.0.0.1:8081/#/flows
, удостоверитесь, что приложение захватывает трафик. Если трафик не отображается, проверьте настройки браузера и убедитесь, что он использует прокси mitmproxy. Попробуйте выполнить curl-запрос из терминала:
curl -x http://127.0.0.1:8081 http://example.com
Шаг 8: Устранение ошибок
Если по-прежнему наблюдаются ошибки SERVFAIL, выполните следующий список действий:
- Проверьте логи mitmproxy для выявления возможных проблем.
- Убедитесь, что никакие файрволы или другие сетевые настройки не блокируют трафик.
- Проверьте настройки DNS на вашей системе и в файле
/etc/resolv.conf
.
Заключение
Следуйте вышеизложенным шагам, чтобы успешно настроить mitmproxy в режиме WireGuard на Arch Linux и устранить ошибку SERVFAIL. Если проблемы продолжаются, рассмотрите возможность обратиться к сообществу mitmproxy или специализированным форумам для получения дополнительной помощи.