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 ↩︎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章