problem z uprawnieniami tcpdump


13

Mam problem z uruchomieniem programu tcpdump. Muszę uruchomić tcpdump z użytkownikiem innym niż root. Przeszukałem mój problem w sieci i pomyślałem, że powinienem:

sudo setcap cap_net_admin=eip /usr/sbin/tcpdump

To pozwoliło mi uruchomić tcpdump z moim użytkownikiem, ale potem otrzymałem:

you don't have permission to capture on that device

na dowolnym urządzeniu próbowałem przechwycić.

Przeszedł też trochę brutalnej siły i zrobił:

sudo chmod +s /usr/sbin/tcpdump

To też nie zrobiło tego.


Tcpdump wymaga uprawnień roota, musisz ustawić określone możliwości Linuksa na plik binarny: $ sudo setcap cap_net_raw, cap_net_admin = eip / usr / sbin / tcpdump
— DreamCoder

Zrobiłem to też, ale wciąż otrzymuję:tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
— Sivan Sigal


Jest to również problematyczne, ponieważ nie chcę zmieniać kodu źródłowego, który uruchamiam ... Ponadto, sugerowane przez DreamCoder powinno działać, ale dziwnie, że nie. Czy ktoś ma inną ofertę?
— Sivan Sigal

Odpowiedzi:


28

Jest trochę późno, ale właśnie miałem ten sam problem. Musisz udzielić tcpdumpzezwolenia i możliwości, aby umożliwić przechwytywanie pakietów raw i manipulowanie interfejsem sieciowym .

Dodaj grupę przechwytywania i dodaj się do niej:

sudo groupadd pcap
sudo usermod -a -G pcap $USER

Następnie zmień grupę tcpdumpi ustaw uprawnienia:

sudo chgrp pcap /usr/sbin/tcpdump
sudo chmod 750 /usr/sbin/tcpdump

Na koniec użyj, setcapaby podać tcpdumpniezbędne uprawnienia:

sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump

Uważaj, aby to pozwoliło wszystkim użytkownikom pcap na manipulowanie interfejsami sieciowymi i czytanie nieprzetworzonych pakietów!

Znaleziono to tutaj: Skonfiguruj tcpdump, aby działał jako użytkownik inny niż root


Byłem w stanie trochę to ograniczyć i po prostu użyć cap_net_raw,cap_setpcap=ep. Usunięcie ibyło spowodowane tym, że mój program nie musiał rozwidlać. To jest dla niestandardowego pliku binarnego, więc ymmv.
— Dan

iftop
— Działa

0

Być może to może zadziałać. Podobne do tego, co już zostało opublikowane. Nie został przetestowany na Ubuntu.

(użyj grupy, której członkiem jest użytkownik) chgrp wireshark / usr / sbin / tcpdump

setcap 'CAP_NET_RAW + eip CAP_NET_ADMIN + eip' / usr / sbin / tcpdump

używając getcap / usr / sbin / tcpdump powinieneś zobaczyć / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.