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