Linux中國

OpenSnitch:一個 Linux 上的應用程序防火牆

OpenSnitch 是從 Little Snitch 上移植過來的。而 Little Snitch 是專門為 Mac OS 設計的一款應用程序防火牆。OpenSnitch 是由 Simone Margaritelli 設計,也稱為 evilsocket

OpenSnitch 所做的主要事情就是跟蹤你機器上安裝的應用程序所發起的互聯網請求。OpenSnitch 允許你去創建規則以同意或阻止那個應用程序發起的互聯網訪問。當一個應用程序嘗試去訪問互聯網而沒有相應的訪問規則存在時,就會出現一個對話框,這個對話框讓你去選擇允許還是阻止那個連接。

你也可以決定這個新規則是應用到進程上、具體的 URL 上、域名上、單個實例上,以及本次會話還是永久有效。

OpenSnitch firewall app in Linux

OpenSnatch 規則請求

你創建的所有規則都保存為 JSON 文件,如果以後需要修改它,就可以去修改這個文件。比如說,你錯誤地阻止了一個應用程序。

OpenSnitch 也有一個漂亮的、一目了然的圖形用戶界面:

  • 是什麼應用程序訪問 web
  • 它們使用哪個 IP 地址
  • 屬主用戶是誰
  • 使用哪個埠

如果你願意,也可以將這些信息導出到一個 CSV 文件中。

OpenSnitch 遵循 GPL v3 許可證使用。

OpenSnitch firewall interface

OpenSnitch 進程標籤頁

在 Linux 中安裝 OpenSnitch

OpenSnitch GitHub 頁面 上的安裝介紹是針對 Ubuntu 用戶的。如果你使用的是其它發行版,你需要調整一下相關的命令。據我所知,這個應用程序僅在 Arch User Repository 中打包了。

在你開始之前,你必須正確安裝了 Go,並且已經定義好了 $GOPATH 環境變數。

首先,安裝必需的依賴。

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 倉庫。這裡可能會出現一個沒有 Go 文件的信息,不用理它。如果出現 git 沒有找到的信息,那麼你需要首先去安裝 Git。

go get github.com/evilsocket/opensnitch

cd $GOPATH/src/github.com/evilsocket/opensnitch

如果沒有正確設置 $GOPATH 環境變數,運行上面的命令時將會出現一個 「no such folder found」 的錯誤信息。只需要進入到你剛才克隆倉庫位置的 evilsocket/opensnitch 文件夾中即可。

現在,我們構建並安裝它。

make

sudo make install

如果出現 「dep command could not be found」 的錯誤信息,在 $PATH 中添加 $GOPATH/bin 即可。

安裝完成後,我們將要啟動它的守護程序和圖形用戶界面。

sudo systemctl enable opensnitchd

sudo service opensnitchd start

opensnitch-ui

OpenSnitch firewall interface

運行在 Manjaro 上的 OpenSnitch

使用體驗

實話實說:我使用 OpenSnitch 的體驗並不好。我開始在 Fedora 上嘗試安裝它。遇到了許多依賴問題。我又轉到 Manjaro 上,在 Arch User Repository 上我很容易地找到了這些依賴。

不幸的是,我安裝之後,不能啟動圖形用戶界面。因此,我手動去運行最後三個步驟。一切似乎很順利。如果我想讓 Firefox 去訪問 Manjaro 的網站,對話框就會彈出來詢問我。

有趣的是,當我運行一個 AUR 工具 yay 去更新我的系統時,彈出對話框要求了 yaypacmanpamac、和 git 的訪問規則。後來,我關閉並重啟動 GUI,因為它當前是激活的。當我重啟動它時,它不再要求我去創建規則了。我安裝了 Falkon,而 OpenSnitch 並沒有詢問我去授予它任何許可權。它甚至在 OpenSnitch 的 GUI 中沒有列出 Falkon。我重新安裝了 OpenSnitch 後,這個問題依舊存在。

然後,我轉到 Ubuntu Mate 上安裝 OpenSnitch,因為安裝介紹就是針對 Ubuntu 所寫的,進展很順利。但是,我遇到了幾個問題。我調整了一下上面介紹的安裝過程以解決我遇到的問題。

安裝的問題並不是我遇到的唯一問題。每次一個新的應用程序創建一個連接時彈出的對話框僅存在 10 秒鐘。這麼短的時間根本不夠去瀏覽所有的可用選項。大多數情況下,這點時間只夠我去永久允許一個(我信任的)應用程序訪問 web。

GUI 也有一點需要去改進。由於某些原因,每次窗口都被放在頂部。而且不能通過設置來修改這個問題。如果能夠從 GUI 中改變規則將是一個不錯的選擇。

OpenSnitch 的 hosts 標籤

對 OpenSnitch 的最後意見

我很喜歡 OpenSnitch 的目標:用任何簡單的方式控制離開你的計算機的信息。但是,它還很粗糙,我不能將它推薦給普通或業餘用戶。如果你是一個高級用戶,很樂意去擺弄或挖掘這些問題,那麼它可能很適合你。

這有點令人失望。我希望即將到來的 1.0 版本能夠做的更好。

你以前用過 OpenSnitch 嗎?如果沒有,你最喜歡的防火牆應用是什麼?你是如何保護你的 Linux 系統的?在下面的評論區告訴我們吧。

如果你對本文感興趣,請花一點時間將它分享到社交媒體上吧,Hacker News 或 Reddit 都行。

via: https://itsfoss.com/opensnitch-firewall-linux/

作者:John Paul 選題:lujun9972 譯者:qhwdw 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國