
我必須承認,我對 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.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。
來源。