Как запустить wireshark с правами root?

95

Стандартная установка Wireshark не дает программе разрешение на доступ к сетевому интерфейсу.

Я предполагаю, что мне нужно запустить программу sudo, но я не знаю, как добавить ее к значку - если это способ сделать это.

Свен А.А.
источник
Вы говорите о WireShark? Если нет, можете ли вы перейти на домашнюю страницу приложения, чтобы мы могли видеть, о чем вы говорите. Благодарю.
Оли
На самом деле, он, вероятно, говорит о Wireshark, а не о WireShark. :-)
Вы можете попробовать tcpdumpинструмент в Linux, если wiresharkон доставляет вам слишком много хлопот.
warfreak92

Ответы:

149

Для WireShark есть лучший способ. Бит , который обычно требуется корень является приложением для сбора пакетов и это может быть настроено так, чтобы некоторые люди , чтобы использовать его без sudo, gksu, etc.

В терминале (очень важно, чтобы вы были в терминале, а не только в диалоге Alt + F2) запустите это:

sudo dpkg-reconfigure wireshark-common

Это спросит вас, хотите ли вы позволить пользователю без полномочий root быть в состоянии прослушивать. Это то, к чему мы стремимся, поэтому выберите Yesи нажмите Return.

Переконфигурирование wireshark-common

Это добавляет wiresharkгруппу. Любой в этой группе сможет прослушивать, не будучи root. Это, очевидно, более безопасно, чем просто дать кому-нибудь понюхать, но это означает, что нет проверки пароля. Технически любой человек, имеющий доступ к компьютеру, вошедшему в систему с wiresharkучетной записью, сможет прослушать. Если это приемлемо для вас, продолжайте.

Если нет, запустите это снова и выберите нет.

Тогда вам просто нужно добавить пользователя в эту группу. Запустите это:

sudo adduser $USER wireshark

И перезагрузите или выйдите из системы. Когда вы вернетесь в него, вы должны начать нюхать без суеты о том, что вы root.

Оли
источник
2
Любой способ пропустить шаг перезагрузки / выхода?
Таха Джахангир
4
Это решение перестало работать в 14.04
Janghou
9
И, да, это определенно намного лучший способ, чем запуск Wireshark от имени root. Файл README.packaging в источнике Wireshark гласит: «WIRESHARK СОДЕРЖИТ ДВА МИЛЛИОНА ЛИНИЙ КОДА ИСТОЧНИКА. НЕ ИСПОЛЬЗУЙТЕ ИХ КАК КОРНИ».
3
@TahaJahangir Если перезапуск / выход из системы неудобен, вы можете использовать newgrp wiresharkкоманду для временного входа в группу после того, как вы стали участником wiresharkгруппы.
Лекенштейн
3
@TahaJahangir и Oli: гораздо удобнее, чем выходить из системы - использовать, su - $USERкак описано в
разделе
3

Вы также можете запустить Wireshark с правами root, запустив его gksu wiresharkиз терминала.

Обратите внимание, что при использовании Wireshark в этом режиме существуют проблемы с безопасностью, а именно то, что любой эксплойт, скомпрометирующий Wireshark, теперь имеет привилегии root, а не привилегии пользователя. Это больше относится к Wireshark, чем к другим приложениям, потому что по своей природе (захват и обработка произвольного ввода) Wireshark более уязвима для эксплойтов, чем обычные настольные приложения. Вы, вероятно, в безопасности в сети SOHO, но вы должны знать об этой проблеме, прежде чем продолжить.

Цитирование:

инакомыслящий
источник
Я только что настроил его с флагом --enable-setcap-install, тогда я не могу этого сделать.
Smile.Hunter
Это гораздо более опасно и более проблематично, поскольку при работе с полным графическим интерфейсом пользователя root могут возникать ошибки, которые можно было бы использовать более эффективно, а проблемы с конфигурацией могут возникать, когда программа графического интерфейса пользователя запускается от имени пользователя root. Посмотрите решение dpkg -configure выше для гораздо лучшего варианта.
nealmcb
Для пользователей настольных компьютеров я считаю, что это обходной путь. Когда вы запускаете приложение, все файлы, которые оно создает, имеют полномочия root, и вам нужно постоянно менять разрешения для файлов, чтобы сделать их доступными для вашего текущего пользователя в вашем домашнем каталоге. Для сервера и системных администраторов в общем случае sudo - лучший подход.
JulioHM
@JulioHM Запуск Wireshark от имени root опасен для всех, включая сервер и системных администраторов.
Краксор
1
Примерно в строке 40 файла Wireshark doc / README.packaging говорится: «WIRESHARK СОДЕРЖИТ ДВА МИЛЛИОНА ЛИНИЙ КОДА ИСТОЧНИКА. Примите это заявление очень серьезно.
3

На самом деле вам не нужно запускать WireShark от имени пользователя root. Пожалуйста, прочитайте официальную страницу . Вкратце вы должны сделать:

sudo groupadd wireshark
sudo usermod -a -G wireshark $USER
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod o-rx /usr/bin/dumpcap
sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap
sudo getcap /usr/bin/dumpcap

Затем выйдите и войдите снова.

Примечание: этот метод был протестирован 16.04 LTS, 17.10 и 18.04 LTS.

pyprism
источник
1
Это останется интерфейсом от загрузки, если не будет изменено. sudo chgrp USER_NAME / usr / bin / dumpcap
amrx
1

Вы также можете попробовать это, открыть терминал, запустить эту команду

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

запустить wireshark от имени пользователя, не являющегося пользователем root

вики
источник