sudo proxychains или proxychains sudo: почему важен порядок
Разберитесь, почему proxychains sudo может потерять библиотеку перехвата, а sudo proxychains запускает обёртку в целевом контексте выполнения.
Эти команды имеют разные границы выполнения:
proxychains4 sudo command
sudo proxychains4 command
Proxychains-ng обеспечивает предварительную загрузку библиотеки в целевую программу. В Linux запуск программы с битом set-user-ID, такой как sudo, включает правила безопасности загрузчика, которые удаляют нужные переменные загрузки библиотек до того, как sudo успеет их сохранить.
Следовательно, «сохранить больше переменных окружения» не является надёжным исправлением, позволяющим поместить sudo внутрь обёртки. Руководство sudoers прямо указывает, что переменные вроде LD_* удаляются до запуска sudo.
Если команде действительно нужна целевая учётная запись, запускайте обёртку в этом авторизованном контексте. Затем проверьте, какой конфигурационный файл она читает: sudo может изменить HOME, PATH и соответствующий файл отдельного пользователя. Успешный вызов без привилегий не доказывает, что root выбрал тот же список прокси.
Предпочитайте собственный интерфейс прокси программы, если он есть. Это избавляет от зависимости от перехвата для запроса, который программа уже умеет маршрутизировать.
Также держите в поле зрения пределы охвата proxychains. Его стартовое сообщение доказывает, что обёртка запустилась; оно не доказывает, что необработанные пакеты, неподдерживаемые вызовы или отдельно запущенный уже существующий процесс приложения использовали эту библиотеку. Подтверждайте ту сетевую операцию, которую вы собирались проксировать, а не считайте привилегии root доказательством того, что каждая операция была перехвачена.