OpenSnitch:一個Linux上的應(yīng)用程序防火墻
不能因為 Linux 比 Windows 更安全,就可以在 Linux 上放松警惕。Linux 上可以使用的防火墻很多,它們可以讓你的 Linux 系統(tǒng)更安全。今天,我們將帶你了解一個這樣的防火墻工具,它就是 OpenSnitch。
OpenSnitch 是什么?
OpenSnitch 是從 Little Snitch 上移植過來的。而 Little Snitch 是專門為 Mac OS 設(shè)計的一款應(yīng)用程序防火墻。OpenSnitch 是由 Simone Margaritelli 設(shè)計,也稱為 evilsocket。
OpenSnitch 所做的主要事情就是跟蹤你機器上安裝的應(yīng)用程序所發(fā)起的互聯(lián)網(wǎng)請求。OpenSnitch 允許你去創(chuàng)建規(guī)則以同意或阻止那個應(yīng)用程序發(fā)起的互聯(lián)網(wǎng)訪問。當(dāng)一個應(yīng)用程序嘗試去訪問互聯(lián)網(wǎng)而沒有相應(yīng)的訪問規(guī)則存在時,就會出現(xiàn)一個對話框,這個對話框讓你去選擇允許還是阻止那個連接。
你也可以決定這個新規(guī)則是應(yīng)用到進(jìn)程上、具體的 URL 上、域名上、單個實例上,以及本次會話還是永久有效。
OpenSnatch 規(guī)則請求
你創(chuàng)建的所有規(guī)則都保存為 JSON 文件,如果以后需要修改它,就可以去修改這個文件。比如說,你錯誤地阻止了一個應(yīng)用程序。
OpenSnitch 也有一個漂亮的、一目了然的圖形用戶界面:
- 是什么應(yīng)用程序訪問 web
 - 它們使用哪個 IP 地址
 - 屬主用戶是誰
 - 使用哪個端口
 
如果你愿意,也可以將這些信息導(dǎo)出到一個 CSV 文件中。
OpenSnitch 遵循 GPL v3 許可證使用。
OpenSnitch 進(jìn)程標(biāo)簽頁
在 Linux 中安裝 OpenSnitch
OpenSnitch GitHub 頁面 上的安裝介紹是針對 Ubuntu 用戶的。如果你使用的是其它發(fā)行版,你需要調(diào)整一下相關(guān)的命令。據(jù)我所知,這個應(yīng)用程序僅在 Arch User Repository 中打包了。
在你開始之前,你必須正確安裝了 Go,并且已經(jīng)定義好了 $GOPATH 環(huán)境變量。
首先,安裝必需的依賴。
sudo apt-get install protobuf-compiler libpcap-dev libnetfilter-queue-dev python3-pipgo get github.com/golang/protobuf/protoc-gen-gogo get -u github.com/golang/dep/cmd/deppython3 -m pip install --user grpcio-tools
接下來,克隆 OpenSnitch 倉庫。這里可能會出現(xiàn)一個沒有 Go 文件的信息,不用理它。如果出現(xiàn) git 沒有找到的信息,那么你需要首先去安裝 Git。
go get github.com/evilsocket/opensnitchcd $GOPATH/src/github.com/evilsocket/opensnitch
如果沒有正確設(shè)置 $GOPATH 環(huán)境變量,運行上面的命令時將會出現(xiàn)一個 “no such folder found” 的錯誤信息。只需要進(jìn)入到你剛才克隆倉庫位置的 evilsocket/opensnitch 文件夾中即可。
現(xiàn)在,我們構(gòu)建并安裝它。
makesudo make install
如果出現(xiàn) “dep command could not be found” 的錯誤信息,在 $PATH 中添加 $GOPATH/bin 即可。
安裝完成后,我們將要啟動它的守護(hù)程序和圖形用戶界面。
sudo systemctl enable opensnitchdsudo service opensnitchd startopensnitch-ui
運行在 Manjaro 上的 OpenSnitch
使用體驗
實話實說:我使用 OpenSnitch 的體驗并不好。我開始在 Fedora 上嘗試安裝它。遇到了許多依賴問題。我又轉(zhuǎn)到 Manjaro 上,在 Arch User Repository 上我很容易地找到了這些依賴。
不幸的是,我安裝之后,不能啟動圖形用戶界面。因此,我手動去運行最后三個步驟。一切似乎很順利。如果我想讓 Firefox 去訪問 Manjaro 的網(wǎng)站,對話框就會彈出來詢問我。
有趣的是,當(dāng)我運行一個 AUR 工具 yay 去更新我的系統(tǒng)時,彈出對話框要求了 yay、pacman、pamac、和 git  的訪問規(guī)則。后來,我關(guān)閉并重啟動 GUI,因為它當(dāng)前是激活的。當(dāng)我重啟動它時,它不再要求我去創(chuàng)建規(guī)則了。我安裝了 Falkon,而  OpenSnitch 并沒有詢問我去授予它任何權(quán)限。它甚至在 OpenSnitch 的 GUI 中沒有列出 Falkon。我重新安裝了  OpenSnitch 后,這個問題依舊存在。
然后,我轉(zhuǎn)到 Ubuntu Mate 上安裝 OpenSnitch,因為安裝介紹就是針對 Ubuntu 所寫的,進(jìn)展很順利。但是,我遇到了幾個問題。我調(diào)整了一下上面介紹的安裝過程以解決我遇到的問題。
安裝的問題并不是我遇到的唯一問題。每次一個新的應(yīng)用程序創(chuàng)建一個連接時彈出的對話框僅存在 10 秒鐘。這么短的時間根本不夠去瀏覽所有的可用選項。大多數(shù)情況下,這點時間只夠我去永久允許一個(我信任的)應(yīng)用程序訪問 web。
GUI 也有一點需要去改進(jìn)。由于某些原因,每次窗口都被放在頂部。而且不能通過設(shè)置來修改這個問題。如果能夠從 GUI 中改變規(guī)則將是一個不錯的選擇。
OpenSnitch 的 hosts 標(biāo)簽
對 OpenSnitch 的最后意見
我很喜歡 OpenSnitch 的目標(biāo):用任何簡單的方式控制離開你的計算機的信息。但是,它還很粗糙,我不能將它推薦給普通或業(yè)余用戶。如果你是一個高級用戶,很樂意去擺弄或挖掘這些問題,那么它可能很適合你。
這有點令人失望。我希望即將到來的 1.0 版本能夠做的更好。
你以前用過 OpenSnitch 嗎?如果沒有,你最喜歡的防火墻應(yīng)用是什么?你是如何保護(hù)你的 Linux 系統(tǒng)的?在下面的評論區(qū)告訴我們吧。
如果你對本文感興趣,請花一點時間將它分享到社交媒體上吧,Hacker News 或 Reddit 都行。



















 
 
 
 
 
 
 