Wireshark работать как пользователь

Knoppix

Модераторы: Warderer, Модераторы разделов

Ответить
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Wireshark работать как пользователь

Сообщение kerogaz »

Когда я ставил Wireshark из пакета, то проблем для пользователя, прописанного по нижеследующей методике не было

Код: Выделить всё

Еnabling Non-root Capture
Step 1: Install setcap
username@Sandbox:~$ sudo apt-get install libcap2-bin

Step 2: Create a Wireshark Group (Optional)
root@Sandbox# groupadd wireshark
root@Sandbox# usermod -a -G wireshark your_name
stretch@Sandbox$ newgrp wireshark
root@Sandbox# chgrp wireshark /usr/bin/dumpcap
root@Sandbox# chmod 750 /usr/bin/dumpcap

Step 3: Grant Capabilities
root@Sandbox# setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

To verify our change, we can use getcap:

root@Sandbox# getcap /usr/bin/dumpcap
/usr/bin/dumpcap = cap_net_admin,cap_net_raw+eip


А когда я собрал Wireshark поновее из тарбола, и запускаю его как пользователь ,то нет прав

Код: Выделить всё

./wireshark-gtk
/usr/bin/ld: cannot open output file /home/debian/wireshark/extcap/.libs/1747-lt-androiddump: Отказано в доступе
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot open output file /home/debian/wireshark/extcap/.libs/1771-lt-randpktdump: Отказано в доступе
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot open output file /home/debian/wireshark/extcap/.libs/1814-lt-androiddump: Отказано в доступе
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot open output file /home/debian/wireshark/extcap/.libs/1838-lt-randpktdump: Отказано в доступе
collect2: error: ld returned 1 exit status


И причем здесь androiddump? Под рутом Wireshark работает без проблем
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

Дайте угадаю. Под рутом собирали?
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Bizdelnick писал(а):
22.09.2016 15:36
Дайте угадаю. Под рутом собирали?

Под рутом и под рутом работает без проблем
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

Ну и зря.
sudo chown -R $UID:$GID /home/debian/wireshark
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Код: Выделить всё

root@debian:/home/debian#  chown -R $UID:$GID /home/debian/wireshark
chown: неверный спецификатор: «0:»

Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

Имя юзера и группу его пропишите.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Так вроде сработало

Код: Выделить всё

chown -R $debian:$wireshark /home/debian/wireshark


В том смысле что отлупа команды не было

А Wireshark так и не запускается от пользователя

Код: Выделить всё

debian@debian:~/wireshark$ ./wireshark-gtk
/usr/bin/ld: cannot open output file /home/debian/wireshark/extcap/.libs/1937-lt-androiddump: Отказано в доступе
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot open output file /home/debian/wireshark/extcap/.libs/1961-lt-randpktdump: Отказано в доступе
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot open output file /home/debian/wireshark/extcap/.libs/2004-lt-androiddump: Отказано в доступе
collect2: error: ld returned 1 exit status
/usr/bin/ld: cannot open output file /home/debian/wireshark/extcap/.libs/2028-lt-randpktdump: Отказано в доступе
collect2: error: ld returned 1 exit status


И почему там дамп какого-то андроида вигурирует? У меня десктоп

А c группой и пользователем вроде всё нормально

Код: Выделить всё

cat /etc/group
debian:x:1000:
wireshark:x:1001:debian
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

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

Код: Выделить всё

ls -la /home/debian/wireshark/extcap
итого 564
drwxr-xr-x  4 1001 wireshark   4096 Сен 22 14:45 .
drwxr-xr-x 34 1001 wireshark  20480 Сен 22 14:47 ..
-rwxr-xr-x  1 root root        8141 Сен 22 14:45 androiddump
-rw-r--r--  1 1001 wireshark 117900 Сен  7 19:59 androiddump.c
-rw-r--r--  1 root root      174928 Сен 22 14:45 androiddump.o
-rw-r--r--  1 1001 wireshark  22368 Сен  7 19:59 ciscodump.c
drwxr-xr-x  2 root root          72 Сен 22 14:45 .deps
-rw-r--r--  1 1001 wireshark    144 Сен  7 19:59 .editorconfig
-rw-r--r--  1 1001 wireshark   7459 Сен  7 19:59 extcap-base.c
-rw-r--r--  1 1001 wireshark   4033 Сен  7 19:59 extcap-base.h
-rw-r--r--  1 root root       16404 Сен 22 14:45 extcap-base.o
drwxr-xr-x  2 root root          16 Сен 22 14:45 .libs
-rw-r--r--  1 root root       34469 Сен 22 13:06 Makefile
-rw-r--r--  1 1001 wireshark   2592 Сен  7 19:59 Makefile.am
-rw-r--r--  1 1001 wireshark  32219 Сен  7 19:59 Makefile.in
-rwxr-xr-x  1 root root        8170 Сен 22 14:45 randpktdump
-rw-r--r--  1 1001 wireshark   9670 Сен  7 19:59 randpktdump.c
-rw-r--r--  1 root root       29624 Сен 22 14:45 randpktdump.o
-rw-r--r--  1 1001 wireshark   5281 Сен  7 19:59 ssh-base.c
-rw-r--r--  1 1001 wireshark   2428 Сен  7 19:59 ssh-base.h
-rw-r--r--  1 1001 wireshark  15859 Сен  7 19:59 sshdump.c

Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Я уже этому дампу андроида разрешил всем всё и uid присваивать- всё равно нет прав доступа кнему. А главное нафиг он нужен если у меня нет андроида
Разобрался с зачем он нужен
https://www.wireshark.org/docs/man-pages/androiddump.html

И там инересная фраза имеется
2. You must have permission to Android devices.

Но кеак это связано с работой Wireshark с правами пользователя? Nj tcnm рут имеет права к девайсам с андроидом а пользователь нет? Понял это Wireshark 2.2.0 а я ставил с пакета wireshark 1.x и работал там от пользоватедя. Наверное для wireshark 2 надо ещё что-то прописывать
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

chown -R debian:debian /home/debian/wireshark
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Bizdelnick писал(а):
22.09.2016 16:54
chown -R debian:debian /home/debian/wireshark

Исчезли сообщения о правах дампов но wireshark всё равно не работает от пользователя
Изображение
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

Ну теперь по пунктам 2-3 Вашей инструкции, с поправкой на путь к dumpcap.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Пробовал и так и так но всё равно прав у юзеря нет

Код: Выделить всё

root@debian:/home/debian#  chgrp wireshark /usr/bin/dumpcap
root@debian:/home/debian# chmod 750 /usr/bin/dumpcap
root@debian:/home/debian# setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
root@debian:/home/debian# exit



Код: Выделить всё

root@debian:/home/debian/wireshark# chgrp debian /usr/bin/dumpcap
root@debian:/home/debian/wireshark#  chmod 750 /usr/bin/dumpcap
root@debian:/home/debian/wireshark#  setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

Bizdelnick писал(а):
22.09.2016 17:15
с поправкой на путь к dumpcap

find /home/debian/wireshark -type f -name dumpcap
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Wireshark работать как пользователь

Сообщение yars »

Код: Выделить всё

chown -R $debian:$wireshark /home/debian/wireshark

Мда. Не вам жаловаться, что у вас что-то не работает. Вам крайне нужно пропустить руки через выпрямитель.
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Bizdelnick писал(а):
22.09.2016 18:05
Bizdelnick писал(а):
22.09.2016 17:15
с поправкой на путь к dumpcap

find /home/debian/wireshark -type f -name dumpcap


Так ведь там два таких файла

Код: Выделить всё

find /home/debian/wireshark -type f -name dumpcap
/home/debian/wireshark/.libs/dumpcap
/home/debian/wireshark/dumpcap

Есть ещё и третий

Код: Выделить всё

/usr/bin/dumpcap

У меня приведеный выше метод работал на wireshark 1.2 (из пакета) а здесь wireshark 2.2.0 (из тарбола). Наверное в этой версии он не работает
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Но судя по хэндбуку Wireshar kможно запускать и от пользователа, хотя он может писался под версию 1.х.х а здесь 2.2.0

Код: Выделить всё

Most UNIXes

Wireshark has implemented Privilege Separation which means that the Wireshark GUI (or the tshark CLI) can run as a normal user while the dumpcap capture utility runs as root. This can be achieved by installing dumpcap setuid root. The advantage of this solution is that while dumpcap is run as root the vast majority of Wireshark's code is run as a normal user (where it can do much less damage).

GNU/Linux distributions, Wireshark is installed using a package manager

GNU/Linux distributions usually provide package managers which handle installation, configuration and removal of software packages. Wireshark is provided by several distributions and some of them help in configuring dumpcap to allow capturing even for non-root users.

Debian, Ubuntu and other Debian derivatives

By installing Wireshark packages non-root users won't gain rights automatically to capture packets. To allow non-root users to capture packets follow the procedure described in /usr/share/doc/wireshark-common/README.Debian

Other Linux based systems or other installation methods

Other Linux distributions may require that you give dumpcap sufficient privileges by hand.

Setting network privileges for dumpcap if your kernel and file system support file capabilities

1. Ensure that you have installed the necessary tools, such as the setcap command.

2. setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' /usr/sbin/dumpcap (NOTE: Replace /usr/sbin with /usr/bin in case you receive an error that indicates that dumpcap isn't in /usr/sbin)

3. Start Wireshark as non-root and ensure you see the list of interfaces and can do live capture.

Setting network privileges for dumpcap if your kernel and file system don't support file capabilities

In this case, you will need to make dumpcap set-UID to root.

1. chown root /usr/sbin/dumpcap (NOTE: Replace /usr/sbin with /usr/bin in this command and the next command in case you receive an error that indicates that dumpcap isn't in /usr/sbin)

2. chmod u+s /usr/bin/dumpcap

Limiting capture permission to only one group

After having set dumpcap's network privileges:

1. Create user "wireshark" in group "wireshark".

2. chgrp wireshark /usr/sbin/dumpcap

3. chmod o-rx /usr/sbin/dumpcap

5. Ensure Wireshark works only from root and from a user in the "wireshark" group

Есть ещё ссылка
https://anonscm.debian.org/viewvc/collab-ma...ian?view=markup
Здесь имеется интересная фраза

Код: Выделить всё

"      Linux kernels provided by Debian support Linux Capabilities, but custom
33           built kernels may lack this support. If the support for Linux
34           Capabilities is not present at the time of installing wireshark-common
35           package, the installer will fall back to set the set-user-id bit to
36           allow non-root users to capture packets.


Я же всё сделал как это рекомендуется
https://blog.wireshark.org/2010/02/running-wireshark-as-you/
Однако не всё при этом прошло гладко

Код: Выделить всё

groupadd -g wireshark
groupadd: неверный ID группы «wireshark»


Проходит только без параметра -g
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

kerogaz писал(а):
23.09.2016 07:47
У меня приведеный выше метод работал на wireshark 1.2 (из пакета) а здесь wireshark 2.2.0 (из тарбола). Наверное в этой версии он не работает

Да причём тут версия? setcap надо делать на тот dumpcap, который используется запускаемым wireshark'ом (применительно к собранному — /home/debian/wireshark/dumpcap), а не какой-то другой. Вы б ещё пустой файл с именем dumpcap куда-нибудь положили, сделали setcap и удивлялись, почему это не помогло.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Bizdelnick писал(а):
23.09.2016 10:50
kerogaz писал(а):
23.09.2016 07:47
У меня приведеный выше метод работал на wireshark 1.2 (из пакета) а здесь wireshark 2.2.0 (из тарбола). Наверное в этой версии он не работает

Да причём тут версия? setcap надо делать на тот dumpcap, который используется запускаемым wireshark'ом (применительно к собранному — /home/debian/wireshark/dumpcap), а не какой-то другой. Вы б ещё пустой файл с именем dumpcap куда-нибудь положили, сделали setcap и удивлялись, почему это не помогло.

Код: Выделить всё

chgrp debian /home/debian/wireshark/dumpcap
chmod 750 /home/debian/wireshark/dumpcap
setcap cap_net_raw,cap_net_admin=eip /home/debian/wireshark/dumpcap

Один хрен под юзерем не пускает
хотя getcap нормальный

Код: Выделить всё

getcap /home/debian/wireshark/dumpcap
/home/debian/wireshark/dumpcap = cap_net_admin,cap_net_raw+eip


Я посмотрел что комментарии всеотносятся к 2010 году, может уже как-то по новому надо прописывать
https://blog.wireshark.org/2010/02/running-wireshark-as-you/

В частности команда типа

Код: Выделить всё

groupadd -g wireshark

не работает:
groupadd: неверный ID группы
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

kerogaz писал(а):
23.09.2016 11:10
groupadd: неверный ID группы

Вы не вбивайте команды не думая, а хотя бы пытайтесь понять, что они делают.

Shell

% whatis groupadd groupadd (8) - создаёт новую группу

У Вас уже есть группа wireshark, зачем Вы её ещё раз пытаетесь создать?
(man groupadd) писал(а):

Код: Выделить всё

       -g, --gid GID
           Числовое значение идентификатора группы (ID). Оно должно быть уникальным,
           если не используется параметр -o. Значение должно быть неотрицательным. По
           умолчанию используется наименьшее значение ID большее или равное GID_MIN и
           большее чем у остальных групп.
Вы задаёте опцию -g, но не указываете её обязательный аргумент (GID), отсюда и процитированная Вами ошибка.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20793
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Bizdelnick »

kerogaz писал(а):
23.09.2016 11:10
под юзерем не пускает

Возможно capabilities файлов, принадлежащих простому юзеру, не работают. Это только предположение, проверять его лень.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Bizdelnick писал(а):
23.09.2016 12:20
kerogaz писал(а):
23.09.2016 11:10
groupadd: неверный ID группы

Вы не вбивайте команды не думая, а хотя бы пытайтесь понять, что они делают.

Shell

% whatis groupadd groupadd (8) - создаёт новую группу

У Вас уже есть группа wireshark, зачем Вы её ещё раз пытаетесь создать?
(man groupadd) писал(а):

Код: Выделить всё

       -g, --gid GID
           Числовое значение идентификатора группы (ID). Оно должно быть уникальным,
           если не используется параметр -o. Значение должно быть неотрицательным. По
           умолчанию используется наименьшее значение ID большее или равное GID_MIN и
           большее чем у остальных групп.
Вы задаёте опцию -g, но не указываете её обязательный аргумент (GID), отсюда и процитированная Вами ошибка.

Что такое GID я прекрасно знаю, на кластере я ввожу пользователй с опцией -o типа

Код: Выделить всё

useradd -o --gid 100 --uid 512 username

Причем gid 100 в Red Hat соответствует встроенной группe users

А если его не задавать явно система сама добавляет начиная с 1000 :rolleyes:
Но не в том дело. В Debian 8.2 я запускал Wireshark 1.x.x , установленный с пакета, от юзеря. Вот я и думаю. Неохота снова старый Wireshark с пакета ставить а новый ещё не собран

Что же касается добавления группы, то по идее ,прописывая

Код: Выделить всё

groupadd -g wireshark

я добавляю группу wireshark а идентификатор группы система должна выставить сама(выбрать любой свободный начиная с 1000)
Спасибо сказали:
Аватара пользователя
kerogaz
Сообщения: 916
ОС: CentOS,FreeBSD 12.1,Arch

Re: Wireshark работать как пользователь

Сообщение kerogaz »

Ссообщение о неверном gid может быть появляется потому, что этот идентификатор создается уже при компилляции, и эта команда лишняя, ибо группа и id уже существуют

Код: Выделить всё

cat /etc/group
.............
debian:x:1000:debian
wireshark:x:1001:debian
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: Wireshark работать как пользователь

Сообщение alv »

yars писал(а):
22.09.2016 23:17
Вам крайне нужно пропустить руки через выпрямитель.

А руки-то тут причём? Они ведь не сами по себе по клавишам лабают, а по сигналам от...
Спасибо сказали:
Аватара пользователя
yars
Сообщения: 1144
Статус: Slacker!
ОС: Slackware64-current

Re: Wireshark работать как пользователь

Сообщение yars »

Точно :) Дурная голова рукам покоя не дает :D
Slackware64-current/Xfce 4.12/Acer TravelMate 5760
-------------
Registered Linux User #557010
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: Wireshark работать как пользователь

Сообщение Rootlexx »

Bizdelnick писал(а):
22.09.2016 15:36
Дайте угадаю. Под рутом собирали?

Это неправильный вопрос. Правильный вопрос: "А нахрена вы собираете Wireshark 2.2.0 из исходников, если он есть в backports?"
Спасибо сказали:
Ответить