1 出错分析
Wireshark 基于 dumpcap, dumpcap 是一个功能强大的网络流分析工具,但是它是命令行的工具,Wireshark 在其基础上添加了一层好用的 GUI 和脚本来简化操作,但是网络流分析是不安全的,如果人人都能获取网络流,这对于多用户操作系统来说的用户来说很不安全,敏感数据很容易就泄漏了。所以 dumpcap 默认是需要root 权限的。在linux 中 dumpcap 位置一般为 /usr/bin/dumpcap 或者 /usr/sbin/dumpcap。
正如上面所说Wireshark 支持脚本来简化操作,其脚本基于Lua语言。此时安全问题就又出来了。脚本可以共享,如果脚本里有一些恶意代码,或者Bugs,如果是在non-root 用户下运行还好危害性小一点,如果在root那危害性就很大了。
针对这个问题,Wireshark 开发者的策略是,dumpcap 运行在root权限下,而 Wireshark 的 GUI 和脚本运行在用户权限下。但我们在non-root 在命令行里输入
marxlp@Zen:~$ wireshark
时,wireshark gui 出现没有问题,但是当我们找包的时候,却出现以下错误
couldn’t run /usr/bin/dumpcap in child process: Permission Denied.
这时试一试用 root 命令运行
marxlp@Zen:~$ sudo wireshark
出现本文讨论的错误
Lua: Error during loading
根据上面分析,好像有解答了,就是把 dumpcap 的权限修改一下,使得 non-root 也可以运行1。
2 解决方案
2.1 解决方案
>> # step 1: add current user to the wireshark group
>> sudo chmod -a -G wireshark $USER
>> # step 2: set the wireshark's dumpcap can be run without non-root privileges
>> sudo dpkg-reconfigure wireshark-common
在出现的界面中选择< Yes >, 然后回车。
操作做完后记得log out 系统,再重新log in 系统 2 3。
2.2 其他并不推荐的解决方案
- 关掉提示4
在/usr/share/wireshark/init.lua中注释掉倒数第二行,
– dofile(DATA_DIR..”console.lua”)
- 停用lua 脚本5
在/usr/share/wireshark/init.lua中把disable_lua=false该为disable_lua=true
https://wiki.wireshark.org/CaptureSetup/CapturePrivileges ↩︎
https://code.wireshark.org/review/gitweb?p=wireshark.git;a=blob_plain;f=debian/README.Debian;hb=HEAD ↩︎
https://askubuntu.com/questions/458762/how-to-enable-wireshark-without-running-as-root-in-trusty-14-04 ↩︎
https://blog.csdn.net/c08762/article/details/53528705?utm_source=itdadao&utm_medium=referral ↩︎
https://askubuntu.com/questions/454734/running-wireshark-lua-error-during-loading ↩︎

本文详细解析了在Linux环境下使用Wireshark时遇到的非root用户权限问题,并提供了具体的解决步骤,包括修改用户组和配置dumpcap权限,确保用户能在非root环境下顺利进行网络流分析。
1209

被折叠的 条评论
为什么被折叠?



