Когда wireshark запущен от пользователя, нет возможности выбрать нтерфейс и включить захват пакетов. Когда запускаешь его от рута, программа предупреждает, что это неправильно. Решение: в скрипт postinstall нужно вставить строку setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/bin/dumpcap Это даст программе захвата трафика нужные привилегии. Подробности см. в документации к wireshark: https://wiki.wireshark.org/CaptureSetup/CapturePrivileges?highlight=%28permission%29 под заголовком "Setting network privileges for dumpcap if your kernel and file system support file capabilities". Ещё один момент. Параллельно имеет смысл сразу разумно настроить права доступа к файлу. На настоящий момент по умолчанию запуск программы захвата трафика доступен всем. В /etc/control.d/facilities/wireshark-capture имеется четыре варианта установки прав на бинарник /usr/bin/dumpcap: new_fmode public 4711 root root new_fmode relaxed 711 root root new_fmode netadmin 4710 root netadmin new_fmode restricted 700 root root По умолчанию выбран вариант relaxed. Предлагаю следующие: new_fmode public 711 root root new_fmode relaxed 710 root root new_fmode netadmin 710 root netadmin new_fmode restricted 700 root root и выставить по умолчанию третий вариант (запуск доступен руту и группе netadmin) Можно вовсе убрать вариант relaxed.
есть такой инструмент, просто после установки нужно выполнить донастройку системы control wireshark-capture (public relaxed netadmin restricted)
Прошу прощения, я не полностью описал проблему. Надеюсь, никто не будет спорить, что SUID/SGID - дурная практика, когда есть альтернатива. В случае wireshark альтернатива описана в документации - установка file capabilities программой setcap. Касательно существующего положения, когда "после установки нужно выполнить донастройку", где описана эта самая донастройка? IMHO пакет должен работать сразу после установки либо инсталлятор должен сообщить, что необходимо сделать дополнительно.
Настройки безопасности по умолчанию после установки традиционно в ALT Linux отдаются на сторону авторов дистрибутивов. В пакетах по умолчанию политика такова, что привелигерованные приложения устанавливаются и не работают из под рядового пользователя. Инсталятор в нашем случае - это rpm, я могу вывести нужное сообщение в post-скрипте, но вероятность того, что его кто-то прочитает - стремится к нулю, оно потеряется на общем фоне.
> В пакетах по умолчанию политика такова, что привелигерованные приложения > устанавливаются и не работают из под рядового пользователя. Хорошо. Повторяю: давайте сделаем wireshark непривилегированным. Для этого достаточно добавить одну строку в postinstall и убрать установку бита SGID в скрипте /etc/control.d/facilities/wireshark-capture. > Настройки безопасности по умолчанию после установки традиционно в ALT Linux > отдаются на сторону авторов дистрибутивов. Знают ли об обсуждаемых настройках wireshark-base авторы дистрибутива Altlinux P7 и готовящегося P8? Я этого не заметил. В любом случае нужно как-то задокументировать особенности пакета. Например, можно добавить файл с описанием настроек безопасности в /usr/share/doc/wireshark-base-1.12.1/ALTLINUX-README Как его назвать - вопрос открытый, я предложил так, чтобы он не терялся в множестве тамошних README.*.
Хорошо, Readme я напишу. Насколько я помню - Wireshark не устанавливается ни в одном из дистрибутивов по умолчанию.
README - это хорошо и правильно. Умеющий читать не будет задавать дурацкие вопросы на форуме :) Непонятно, как связаны эти две фразы (они из разных сообщений): > Настройки безопасности по умолчанию после установки традиционно в ALT Linux > отдаются на сторону авторов дистрибутивов. > Насколько я помню - Wireshark не устанавливается ни в одном из дистрибутивов по > умолчанию.
Всё же, давайте сделаем wireshark непривилегированным и отберём права на запуск. Если после первичной установки разрешён запуск только от рута и выставлены file capabilities, тогда пользователь увидит ошибку "Couldn't run /usr/bin/dumpcap in child process: access denied" и полезет смотреть причину. При нынешней конфигурации нет никакой диагностики, wireshark просто не обнаруживает интерфейсы.
Я подумаю как это сделать более дистрибутивно. Идея установки capabilities в POST-скрипте мне не нравится. Что касается вопроса с дистрибутивами - то если автор дистрибутива сочтёт нужным включить Wireshark в установку по умолчанию - то он предусмотрит все необходимые настройки для его запуска. При нынешней конфигурации wireshark выводит сообщение: Couldn't run /usr/bin/dumpcap in child process - отказано в доступе. Вполне понятное сообщение, если не совсем, то можем его поправить - предлагайте варианты. У меня ровно такая конфигурация и я wireshark использую в этом режиме, для dump'а есть другие инструменты и в другом месте.
(В ответ на комментарий №8) > Я подумаю как это сделать более дистрибутивно. > Идея установки capabilities в POST-скрипте мне не нравится. Самой идее установки capabilities в POST-скрипте у нас нет альтернативы, приходится использовать. Позаимствовав из других RPM, можно было делать это при сборке пакета как-то так %files ... %caps(cap_ipc_lock=ep) %_bindir/prog А в данном случае, видимо, можно и CONTROL(8) задействовать.