FastNetMon

Friday 5 February 2016

Запуск tshark без root привилегий

Почти каждый, кто пользовался tshark сталкивался со следующей штукой при запуске:
tshark: Lua: Error during loading:
 [string "/usr/share/wireshark/init.lua"]:46: dofile has been disabled due to running Wireshark as superuser. See http://wiki.wireshark.org/CaptureSetup/CapturePrivileges for help in running Wireshark as an unprivileged user.
Running as user "root" and group "root". This could be dangerous.
Почти всегда можно было обойтись без этой lua обвязки, но не тогда, когда Вам нужно сделать нечто поистине необычное с трафиком!

Но тут есть фишка, Wireshark (и tshark) используют отдельную программу для запуска захвата трафика и особые capabilities нужно навешивать не на /usr/bin/tshark, а на /usr/bin/dumpcap.

Итак, попробуем научить tshark работать не от root:
sudo groupadd wireshark
sudo usermod -a -G wireshark имя_вашего_юзера
# This command should be called without sudo!
newgrp wireshark
Выставляем заданные права на спец файл, используемый для запуск захвата трафика:
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod 750   /usr/bin/dumpcap
Наконец, выставляем полномочия для использования фичи захвата трафика:
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
Запускаемся:
tshark -i sflow1 -n  -c 1 Capturing on 'sflow1'  1   0.000000 xxx -> yyy TCP 64 34426 > 80 [ACK] Seq=1 Ack=1 Win=8712 Len=0


No comments :

Post a Comment

Note: only a member of this blog may post a comment.