Нет интерфейсов, на которых можно сделать захват

24

Я использую Ubuntu 13.04.

Wireshark не будет показывать мне никаких журналов, вообще не будет работать. Я подключен к своему WiFi, роутеру Belkin.

Майк Вентворт
источник
Быстрый обходной путь, а не решение: Вы можете запустить Wireshark в качестве корня: gksudo wireshark.
soulsource

Ответы:

45

Откройте терминал, нажав Ctrl+ Alt+, Tи введите следующие команды:

sudo dpkg-reconfigure wireshark-common

нажмите стрелку вправо и введите для да

sudo chmod +x /usr/bin/dumpcap

Теперь вы сможете запустить его без рута, и вы сможете захватывать.

M.Tarun
источник
4
+1. Работает и 14.04 тоже. Примечание: в документах говорится : «Захват пакетов USB не разрешен для пользователей без полномочий root с использованием возможностей Linux. Вам необходимо захватывать пакеты, используя метод, описанный в I./a., Для постоянной установки set-user-id с помощью dpkg -statoverride или запуск Wireshark от имени root. "
JFS
Было бы очень полезно для новичков, если бы вы также могли описать, что делается с помощью приведенных выше команд, которые заставляют его работать
Ахмед
1
ЭТО РАБОТАЕТ на LTS 14.04 .... Большое вам спасибо.
августа
chmod +xделает dumpcap исполняемым для всех. Альтернативой может быть добавление пользователей, которым вы хотите разрешить захват, в группу wireshark.
Домен
2

Сообщение «Нет интерфейса для захвата в этой системе с текущей конфигурацией» обычно появляется, когда у вас нет прав доступа к сетевым интерфейсам для мониторинга. Попробуйте открыть терминал и запустить gksudo wireshark. Если появляется несколько сетевых интерфейсов, это потому, что когда вы запускаете wireshark без прав root, у вас нет прав для мониторинга.

Чтобы это исправить, запустите следующую команду в терминале:

sudo setcap CAP_NET_RAW,CAP_NET_ADMIN,CAP_DAC_OVERRIDE+eip /usr/bin/dumpcap
Vis
источник
«Попробуйте открыть терминал и запустить gksudo wireshark». Обратите внимание, что в этом документе говорится: «WIRESHARK СОДЕРЖИТ ДВУХ МИЛЛИОНОВ ЛИНИЙ КОДА ИСТОЧНИКА. НЕ ИСПОЛЬЗУЙТЕ ИХ КАК КОРНИ». прежде чем сделать это. Выполните sudo setcapкоманду вместо - или использовать , sudo dpkg-reconfigure wireshark-commonчтобы иметь пакет набор возможностей для вас.
0

Когда я попытался запустить wireshark, я получил эту ошибку:

Couldn't run /usr/bin/dumpcap in child process: Permission denied

поэтому я использовал его как root, что отключило LUA. Всплывающее окно, информирующее меня о том, что LUA был отключен, было настолько раздражающим, что я попытался это исправить.

во-первых, я проверил привилегии, запустив

ls -l /usr/bin/dumpcap

что привело к:

-rwxr-xr-- 1 root wireshark 96464 Jan 24 10:31 /usr/bin/dumpcap

это было очевидно, это то, что Wireshark говорил мне. Так что я просто сменил владельца с рута на свой акк

sudo chown -R $LOGNAME /usr/bin/dumpcap

Что сработало, теперь я могу запустить wireshark без рута

Адам Вернер
источник
0

Гуглил «не удалось запустить / usr / bin / dumpcap в дочернем процессе» и нашел этот вопрос:

Я не могу использовать wireshark "не удалось запустить / usr / bin / dumpcap в дочернем процессе"

Который помечен как дубликат и привел меня сюда. Предлагаемое решение:

sudo chmod +x /usr/bin/dumpcap

Вышеприведенная команда действительно работает, но я бы хотел добавить ПРЕДУПРЕЖДЕНИЕ по безопасности . Это позволит захватывать пакеты для всех пользователей в системе. Это может быть временное решение, но не желаемое как постоянное решение.

Я следовал инструкциям на странице wireshark о привилегиях захвата:

https://wiki.wireshark.org/CaptureSetup/CapturePrivileges

Они РЕКОМЕНДУЮТ ограничить выполнение dumpcap определенной группой или пользователем.

Я следовал этим инструкциям (с адаптациями):

Установка сетевых привилегий для dumpcap, если ваше ядро ​​и файловая система поддерживают файловые возможности

  • Убедитесь, что вы установили необходимые инструменты, такие как команда setcap.

    sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap

(ПРИМЕЧАНИЕ. Замените / usr / bin на / usr / sbin, если вы получили сообщение об ошибке, указывающее, что dumpcap отсутствует в / usr / bin)

  • Запустите Wireshark от имени пользователя root и убедитесь, что вы видите список интерфейсов и можете выполнять захват в реальном времени. ( Я игнорировал эту инструкцию. НЕ РАБОТАЛ ДЛЯ МЕНЯ )

Установка сетевых привилегий для dumpcap, если ваше ядро ​​и файловая система не поддерживают файловые возможности

В этом случае вам нужно будет сделать dumpcap set-UID для root.

sudo chown root /usr/bin/dumpcap 

(ПРИМЕЧАНИЕ. Замените / usr / bin на / usr / sbin в этой и следующей командах, если вы получите сообщение об ошибке, указывающее, что dumpcap отсутствует в / usr / sbin)

sudo chmod u+s /usr/bin/dumpcap

Ограничение разрешения захвата только одной группой

После установки сетевых привилегий dumpcap:

  • Создайте пользователя "wireshark" в группе "wireshark".

    sudo chgrp wireshark /usr/sbin/dumpcap

    sudo chmod o-rx /usr/sbin/dumpcap

  • Убедитесь, что Wireshark работает только от пользователя root и от пользователя из группы «wireshark» ( ЭТОГО ШАГА Я ТОЛЬКО В КОНЦЕ - НЕ ЗАДЕЕ )

И, наконец, еще два шага:

sudo dpkg-reconfigure wireshark-common

Выберите «да».

Выйдите из ВСЕХ интерфейсов для пользователя (включая ssh, что было моей самой большой ошибкой) и войдите снова.

Надеюсь, вам следует запустить wireshark и увидеть все интерфейсы как обычный пользователь (без использования sudo)

wireshark &

И если вы проверите файл разрешения

ls -la /usr/bin/dumpcap

Это позволяет ТОЛЬКО ПОЛЬЗОВАТЕЛЮ и ГРУППЕ выполнить

-rwxr-xr-- 1 корневой проволочный акул

Марко А. Пиветта
источник