如何修复 Mac OS 上的 BPF 设备权限以使用 tcpdump

ZJa*_*Jam 5 macos wireless tcpdump wireshark bpf

我可能已经做了一些更改我的设备权限的操作,因为我收到错误:"tcpdump: en0: You don't have permission to capture on that device"。TCP 部分无关紧要,因为我在使用设备时遇到问题bpf。我尝试将权限恢复为默认值,并将它们设置为如下所示,但我仍然遇到问题sudo

我已重置权限并重新启动多次。另外,我的笔记本电脑被更换了,硬盘是唯一被转移的东西。

zjam@ZimSec:~$ tcpdump -i en0

tcpdump: en0: You don't have permission to capture on that device
((cannot open BPF device) /dev/bpf0: Permission denied
)
zjam@ZimSec:~$ sudo tcpdump -i en0

tcpdump: en0: You don't have permission to capture on that device
((cannot open BPF device) /dev/bpf0: Permission denied)

0 crw-rw----   1 root  access_bpf      23,   0 Aug 22 13:27 bpf0

0 crw-rw----   1 root  access_bpf      23,   1 Aug 22 13:22 bpf1

0 crw-rw----   1 root  access_bpf      23,   2 Aug 22 13:22 bpf2

0 crw-rw----   1 root  access_bpf      23,   3 Aug 22 13:22 bpf3

Mac Version 10.14.6
Run Code Online (Sandbox Code Playgroud)

Gas*_*sol 2

我的同事也有同样的问题,我们通过以下检查清单解决了这个问题。

  1. 看起来你的mac上已经安装了wireshark,所以/dev/bpf0也有group ,它是通过ChmodBPFaccess_bpf更改的,所以你必须确保你在group中。bpf_access

    $ id
    uid=501(gasolwu) gid=20(staff) groups=20(staff),501(access_bpf),12(everyone),61(localaccounts),79(_appserverusr),80(admin),81(_appserveradm),98(_lpadmin),33(_appstore),100(_lpoperator),204(_developer),250(_analyticsusers),395(com.apple.access_ftp),398(com.apple.access_screensharing),399(com.apple.access_ssh),701(com.apple.sharepoint.group.1)
    
    Run Code Online (Sandbox Code Playgroud)
  2. 确保系统上启用了系统集成保护,如果没有,请将系统重新启动到恢复模式,并使用命令启用 SIP csrutil enable,然后再次重新启动。

    $ csrutil status
    System Integrity Protection status: enabled.
    
    Run Code Online (Sandbox Code Playgroud)
  3. 如果您安装了第三方防火墙应用程序,例如Little Snitch,您必须关闭网络过滤或重新启用它,然后重试。

我们在第三步解决了这个问题,希望它有帮助。