Pertanyaan masalah tcpdump perizinan


Saya kesulitan menjalankan tcpdump. Saya harus menjalankan tcpdump dengan pengguna non-root. Pencarian web untuk masalah saya dan tahu saya harus:

sudo setcap cap_net_admin=eip /usr/sbin/tcpdump

Itu memungkinkan saya untuk berlari tcpdump dengan pengguna saya tetapi kemudian saya mendapatkan:

you don't have permission to capture on that device

di perangkat apa pun yang saya coba rekam.

Juga pergi sedikit kekuatan kasar dan lakukan:

sudo chmod +s /usr/sbin/tcpdump

Itu tidak melakukannya juga.


11
2017-10-01 08:13


asal


Tcpdump membutuhkan hak akses root, Anda harus mengatur kemampuan Linux khusus 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
Lihat disini.askubuntu.com/questions/39281/… - g_p
Ini juga bermasalah karena tidak ingin mengubah kode sumber yang saya jalankan ... Juga, apa DreamCoder disarankan harus bekerja tetapi anehnya tidak. Ada yang punya penawaran lain? - Sivan Sigal


Jawaban:


Ini sedikit terlambat, tapi saya baru saja mengalami masalah yang sama. Anda harus memberi tcpdump izin dan kemampuan untuk memungkinkan menangkap paket mentah dan manipulasi antarmuka jaringan.

Tambahkan grup tangkapan dan tambahkan diri Anda ke dalamnya:

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

Selanjutnya, ubah grup tcpdump dan mengatur izin:

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

Akhirnya, gunakan setcap memberi tcpdump izin yang diperlukan:

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

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

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


17
2018-06-04 11:42



Saya bisa membatasi ini sedikit dan hanya menggunakan cap_net_raw,cap_setpcap=ep. Penghapusan i karena program saya tidak perlu membayar. Ini untuk biner khusus, jadi ymmv. - Dan


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

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

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

menggunakan getcap / usr / sbin / tcpdump yang harus Anda lihat / usr / sbin / tcpdump = cap_net_admin, cap_net_raw + eip


0
2018-04-08 07:56