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