masalah izin tcpdump


13

Saya mengalami kesulitan menjalankan tcpdump. Saya harus menjalankan tcpdump dengan pengguna non-root. Mencari di web untuk masalah saya dan menemukan bahwa saya harus:

sudo setcap cap_net_admin=eip /usr/sbin/tcpdump

Itu memungkinkan saya untuk menjalankan tcpdump dengan pengguna saya, tetapi kemudian saya dapat:

you don't have permission to capture on that device

pada perangkat apa pun yang saya coba ambil.

Juga pergi sedikit kekuatan kasar dan melakukan:

sudo chmod +s /usr/sbin/tcpdump

Itu juga tidak berhasil.


Tcpdump membutuhkan hak akses root, Anda harus mengatur kemampuan Linux spesifik ke biner: $ sudo setcap cap_net_raw, cap_net_admin = eip / usr / sbin / tcpdump
— DreamCoder

Apakah itu juga tetapi saya terus mendapatkan:tcpdump: eth0: You don't have permission to capture on that device (socket: Operation not permitted
— Sivan Sigal


Ini juga bermasalah karena tidak ingin mengubah kode sumber yang saya jalankan ... Juga, apa yang disarankan DreamCoder harus berfungsi tetapi anehnya tidak. Adakah yang punya penawaran lain?
— Sivan Sigal

Jawaban:


28

Ini sedikit terlambat, tetapi saya hanya memiliki masalah yang sama. Anda perlu memberikan tcpdumpizin dan kemampuan untuk memungkinkan penangkapan paket mentah dan manipulasi antarmuka jaringan .

Tambahkan grup tangkap dan tambahkan diri Anda ke dalamnya:

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

Selanjutnya, ubah grup tcpdumpdan atur izin:

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

Akhirnya, gunakan setcapuntuk memberikan tcpdumpizin yang diperlukan:

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

Hati-hati, ini akan memungkinkan semua orang dari pcap grup untuk memanipulasi antarmuka jaringan dan membaca paket mentah!

Ditemukan di sini: Konfigurasikan tcpdump agar berfungsi sebagai non-root


Saya bisa membatasi ini sedikit dan hanya menggunakan cap_net_raw,cap_setpcap=ep. Penghapusan iitu karena program saya tidak perlu melakukan fork. Ini untuk biner khusus, jadi ymmv.
— Dan

Ini juga berfungsi untuk iftopprogram yang menunjukkan pemanfaatan jaringan berdasarkan alamat IP / nama DNS
— HeatfanJohn

0

Mungkin ini bisa berhasil. Mirip dengan apa yang sudah diposting. Itu belum diuji di ubuntu.

(gunakan grup yang anggotanya adalah anggota Anda) chgrp wireshark / usr / sbin / tcpdump

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

menggunakan getcap / usr / sbin / tcpdump Anda akan melihat / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.