OpenSnitch:一個 Linux 上的應用程序防火牆
OpenSnitch 是從 Little Snitch 上移植過來的。而 Little Snitch 是專門為 Mac OS 設計的一款應用程序防火牆。OpenSnitch 是由 Simone Margaritelli 設計,也稱為 evilsocket。
OpenSnitch 所做的主要事情就是跟蹤你機器上安裝的應用程序所發起的互聯網請求。OpenSnitch 允許你去創建規則以同意或阻止那個應用程序發起的互聯網訪問。當一個應用程序嘗試去訪問互聯網而沒有相應的訪問規則存在時,就會出現一個對話框,這個對話框讓你去選擇允許還是阻止那個連接。
你也可以決定這個新規則是應用到進程上、具體的 URL 上、域名上、單個實例上,以及本次會話還是永久有效。
OpenSnatch 規則請求
你創建的所有規則都保存為 JSON 文件,如果以後需要修改它,就可以去修改這個文件。比如說,你錯誤地阻止了一個應用程序。
OpenSnitch 也有一個漂亮的、一目了然的圖形用戶界面:
- 是什麼應用程序訪問 web
- 它們使用哪個 IP 地址
- 屬主用戶是誰
- 使用哪個埠
如果你願意,也可以將這些信息導出到一個 CSV 文件中。
OpenSnitch 遵循 GPL v3 許可證使用。
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
運行在 Manjaro 上的 OpenSnitch
使用體驗
實話實說:我使用 OpenSnitch 的體驗並不好。我開始在 Fedora 上嘗試安裝它。遇到了許多依賴問題。我又轉到 Manjaro 上,在 Arch User Repository 上我很容易地找到了這些依賴。
不幸的是,我安裝之後,不能啟動圖形用戶界面。因此,我手動去運行最後三個步驟。一切似乎很順利。如果我想讓 Firefox 去訪問 Manjaro 的網站,對話框就會彈出來詢問我。
有趣的是,當我運行一個 AUR 工具 yay
去更新我的系統時,彈出對話框要求了 yay
、pacman
、pamac
、和 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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive