安裝

安裝

我必須承認,我對 Linux 世界還很陌生,有些概念對我來說似乎很陌生。

我最懷念的一件事是一個很好但簡單的應用程式級防火牆。到目前為止,隨著互聯網的侵入性和永久連接的普遍存在,我們必須知道您的電腦到底在做什麼、為什麼做以及與誰做。協議分析器還可以,但「分析」起來太不友善且耗時,這對家庭用戶來說幾乎毫無用處。

我發現 Windows 環境中的許多程式不應該連接到互聯網,但它們卻連接了(使用我的 ZoneAlarm 免費防火牆我可以阻止它們)。

使用 Gufw(以及其他幾個),您必須知道您已經安裝了哪些應用程式(我們知道,對於這種擁有數十億程式碼行的現代作業系統來說,這幾乎是不可能的)。

我正在尋找的是一個防火牆,它可以監視NIC/WAN 連接並檢測任何程式/應用程式或任何嘗試主動通過它進行“對話”的內容,無論嘗試使用哪個連接埠(我之前提到的應用程式必須嘗試連線)使用眾所周知的 TCP 連接埠:80、443、8080)。這存在嗎? (如果沒有,那我怎麼知道我的電腦在做什麼?)

答案1

杜安

Douane 是一款個人防火牆,可讓使用者控制哪些應用程式可以從其 GNU/Linux 電腦連接到互聯網,從而保護使用者的隱私。


安裝

到目前為止(2017/05/22)還沒有可用的 Ubuntu 軟體包。您必須從原始程式碼建置它。

這些安裝說明基於以下信息杜安維基並在 Ubuntu 16.04.2 64 位元上進行了測試。

開啟終端機 ( ++ Ctrl)來執行命令。AltT

準備

更新您的系統:

sudo apt update
sudo apt full-upgrade

如果您收到要求重新啟動電腦的通知,請重新啟動它。

安裝依賴項

sudo apt install git build-essential dkms libboost-filesystem-dev libboost-regex-dev libboost-signals-dev policykit-1 libdbus-c++-dev libdbus-1-dev liblog4cxx10-dev libssl-dev libgtkmm-3.0-dev python3 python3-gi python3-dbus

建立編譯目錄

cd
mkdir Douane
cd Douane

建構內核模組

git clone https://github.com/Douane/douane-dkms
cd douane-dkms
sudo make dkms

檢查模組是否正確建置和安裝:

lsmod | grep douane

您應該會看到類似以下內容:

douane                 20480  0

建構守護程式

cd ~/Douane
git clone --recursive https://github.com/Douane/douane-daemon
cd douane-daemon
make
sudo make install

建構對話流程

cd ~/Douane
git clone --recursive https://github.com/Douane/douane-dialog
cd douane-dialog
make
sudo make install

啟動對話過程:

/opt/douane/bin/douane-dialog &

然後檢查它是否正在運行:

pgrep -a douane-dialog

您應該會看到類似以下內容:

21621 /opt/douane/bin/douane-dialog

建置配置器

cd ~/Douane
git clone https://github.com/Douane/douane-configurator
cd douane-configurator
sudo python3 setup.py install

啟動守護程式並設定自動啟動

我必須在文件中插入以下文字/etc/init.d/douane才能啟用守護程序的自動啟動:

### BEGIN INIT INFO
# Provides:          douane
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Douane firewall
### END INIT INFO

開啟文件進行編輯:

sudo nano /etc/init.d/douane

然後將上述文字貼到程式描述之後。按Ctrl+ O,Enter儲存,然後按Ctrl+X退出編輯器。

這是我插入文字後文件的前 21 行:

#!/bin/bash
#
# douane      This shell script takes care of starting and stopping
#             douane daemon (A modern firewall at application layer)
#
# Author: Guillaume Hain [email protected]
#
# description: douane is the daemon process of the Douane firewall application. \
# This firewall is limiting access to the internet on application bases.

### BEGIN INIT INFO
# Provides:          douane
# Required-Start:
# Required-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Douane firewall
### END INIT INFO

# Source function library.
. /lib/lsb/init-functions

現在您可以設定自動啟動並啟動守護程式:

sudo systemctl daemon-reload
sudo systemctl enable douane
sudo systemctl start douane

啟動過濾器並自動啟動對話框

啟動配置器:

douane-configurator

然後確保開關使用 Douane 過濾我的網路流量開機自動啟動 Douane均已開啟。

您可以查看過濾規則規則標籤。右鍵單擊規則,您可以選擇刪除它。

測試

如果一切正常,當您開啟使用網路連線的應用程式時,您應該會看到請求許可的 Douane 視窗。

答案2

有一個名為 OpenSnitch 的新項目,描述於

https://www.cyberciti.biz/python-tutorials/opensnitch-the-little-snitch-application-like-firewall-tool-for-linux/

項目頁面是https://www.opensnitch.io/

目前它被認為是 alpha 軟體,奇怪的是它是用 Python 編寫的,但至少它是一個新的嘗試,而 Douane 是一個非常古老的程序,(我認為)更難安裝。

免責聲明:我沒有親自測試過這兩個程序,我只是想看看是否還有其他選項,並注意到還沒有人在這裡提到 OpenSnitch。

答案3

這是一個非常好的問題,但我討厭這樣的問題,因為它們真的很難回答,而不像是在說安全並不重要。

首先,我要說的是,安全性很重要,但 Linux 處理安全性的方式與 Windows 非常不同。

那麼讓我們來解決你的問題。

首先,不會有一個與區域警報的工作方式相同的傳出防火牆。 Linux 根本沒有太大的需求。許多應用程式都在客戶端/伺服器體系結構中運作,即使您在同一台電腦上使用它們也是如此。 Xorg 就是一個很好的例子。首先,您有一個伺服器(在本例中是在螢幕上繪製的部分)和一個客戶端(gedit),gedit 與伺服器對話以繪製按鈕、放置文字等。即使像滑鼠這樣簡單的作業系統也具有相同的架構(或可能具有)。程式充當伺服器,監聽資訊並在獲取數據時發送數據,然後客戶端「連接」到該「滑鼠伺服器」並等待資訊。

這種情況在 Linux 中非常普遍,如果您要建立一個“防火牆”,要求每個網路連線都獲得許可,那麼您可能無法設定它,因為它無法連接到自己的伺服器。

這都是一個非常粗略的例子,其中一些內容具有誤導性,因為它的水平太高了。但這仍然是非常正確的。

為了保護我們的 Linux 用戶免受這種情況的影響,我們有一組非常基本的規則,可以很好地完成「基本」工作。

第一,除了 root 之外的任何使用者都無法開啟 1024 以下的任何連接埠。這意味著即使要執行 FTP 伺服器(在標準連接埠上),您也需要具有 root 存取權限。作為用戶,您通常可以開啟「高連接埠」(高於 1024 的連接埠)。但請參閱第二條規則。

第二。沒有任何進程可以存取啟動該進程的使用者無法存取的檔案。 (同樣非常高的等級)因此,如果「coteyr」要啟動 FTP 伺服器,那麼在最壞的情況(高等級)下,該 FTP 伺服器將僅具有與啟動它的使用者 coteyr 完全相同的存取權。

由於這兩個規則的結合,每次嘗試連接防火牆時都會詢問的「軟體」只會造成阻礙,並且對它的需求並不多。

也就是說,您始終可以建立出站防火牆規則,並且在許多情況下這可能不是一個壞主意。許多服務可以(並且預設)配置為使用基於檔案的套接字(或基於記憶體)而不是基於網路的套接字。

入站防火牆規則通常會消除規則 1 或 2 留下的任何奇怪間隙。

我的觀點是這樣的。安全性很重要,我並不是想說它不重要,只是在 Linux 領域我們有不同的工具和目標。我建議您研究 Linux 使用者和群組權限,然後使用 gfw 和 IPTABLES 等工具來填補任何空白。

答案4

OpenSnitch,在此處的答案中提到,不再積極開發。有一把叉子儘管開發仍在繼續,但與現在無人維護的 OpenSnitch 相比,它在許多方面都有了改進。

與原始專案一樣,OpenSnitch fork 是一個免費的 Linux 開源應用程式等級防火牆,由守護程式(以 Go 編寫)和 GUI (PyQt5) 組成。與原始專案一樣,這個分叉正在進行中,其專案頁面上有一條訊息說「不要指望它沒有錯誤,也不要依賴它來實現任何類型的安全」。

該應用程式監視您的應用程式嘗試建立的出站連接,根據一組規則封鎖或允許其連接(當未找到現有規則時,系統會提示使用者允許或拒絕存取)。該應用程式的靈感來自 Little Snitch,這是一款適用於 macOS 的基於主機的商業應用程式防火牆。

對於 Ubuntu,專案上有可供下載的 DEB 軟體包GitHub

來源

相關內容