Linux下Wireshark的Lua: Error during loading 和 couldn't run /usr/bin/dumpcap in child process 的解决方案

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 其他并不推荐的解决方案

  1. 关掉提示4
    /usr/share/wireshark/init.lua 中注释掉倒数第二行,

– dofile(DATA_DIR..”console.lua”)

  1. 停用lua 脚本5
    /usr/share/wireshark/init.lua 中把 disable_lua=false 该为 disable_lua=true

  1. https://wiki.wireshark.org/CaptureSetup/CapturePrivileges ↩︎

  2. https://code.wireshark.org/review/gitweb?p=wireshark.git;a=blob_plain;f=debian/README.Debian;hb=HEAD ↩︎

  3. https://askubuntu.com/questions/458762/how-to-enable-wireshark-without-running-as-root-in-trusty-14-04 ↩︎

  4. https://blog.csdn.net/c08762/article/details/53528705?utm_source=itdadao&utm_medium=referral ↩︎

  5. https://askubuntu.com/questions/454734/running-wireshark-lua-error-during-loading ↩︎

你可能感兴趣的:(网络,网络分析,wireshark,配置)