以普通用户身份运行wireshark
在MacBook Pro上安装Fedora作为工作平台,开发HTTP客户端时,需要通过wireshark来分析通讯过程。
默认情况下wireshark需要root权限才能对网卡进行混杂模式嗅探,而平时都是采用普通用户身份来运行桌面,使用sudo
在终端中切换身份运行总觉得非常麻烦。
权限分离运行Wireshark
Wireshark支持权限分离模式运行,即Wireshark GUI(或者tshark CLI)运行在普通用户权限,而dumpcap
包捕捉工具作为root权限运行。这是通过安装dumpcap setuid root
来实现的。
GNU/Linux发行版通常提供了包管理器来处理安装、 配置和删除软件包。Wireshark通过不同的发行版可以帮助配置dumpcap允许非root用户使用。
Debian, Ubuntu安装Wireshark包需要参考
/usr/share/doc/wireshark-common/README.Debian
设置权限
手工设置dumpcap权限
如果内核和文件系统支持文件权限(file capabilities)
在Fedora 27上没有实现
首先确保已经安装了必要的工具,例如
setcap
命令检查dumpcap
使用以下命令设置dumcap网络权限
这里
/usr/bin/dumpcap
需要体换成发行版的dumpcap
实际安装位置。这里的案例是在Fedora上执行的。
以non-root身份启动Wireshark,检查是否可以看到所有网络接口并且可以动态抓包
如果内核和文件系统不支持文件权限(file capabilities)
如果呢和和文件系统不支持文件权限,就需要确保
dumcap
使用了set-UID
成root的功能
将
dumpcap
的属主设置成root
- 这步也可以忽略,在CentOS/Fedora中,默认dumpcap
的属主就是root,即如下
如果需要,执行以下命令
设置
dumpcap
SUID (设置了s
之后,执行该程序就自动以程序所有者的身份运行,也就是前面设置的root
属主身份运行,这样普通用户运行dumpcap
时候就会以root身份运行。警告
:这是一个安全漏洞,仅可以用在有安全保障的系统中)
限制
dumcap
只允许一个组用户可以运行(wireshark
组),其他用户去除执行权限 - 这步在Fedora中可以忽略,系统默认创建了wireshark
组,并且也限制了其他组用户使用
完成后检查dumpcap
文件权限应该如下:
将需要执行wireshark的用户添加到
wireshark
用户组
需要退出当前登陆,重新登陆后验证普通用户身份运行wireshark
参考
Last updated