Có tường lửa cấp ứng dụng nào cho Ubuntu 16.04 không? (với GUI)


20

Tôi phải thú nhận rằng tôi rất mới đối với thế giới Linux và có những khái niệm dường như rất xa lạ với tôi.

Một điều tôi nhớ nhất là một tường lửa cấp ứng dụng tốt nhưng đơn giản. Cho đến bây giờ, với tất cả các kết nối xâm nhập và vĩnh viễn phổ biến này với internet, bạn phải biết chính xác máy tính của bạn đang làm gì, tại sao và với ai. Một bộ phân tích giao thức là ok nhưng quá thân thiện và tốn thời gian để "phân tích" mà thực tế là vô dụng đối với người dùng gia đình.

Tôi đã phát hiện ra rất nhiều chương trình trong môi trường Windows không nên kết nối với internet nhưng chúng có (và với tường lửa miễn phí ZoneAlarm của tôi, tôi có thể ngăn chặn chúng).

Với Gufw (và một số ứng dụng khác), bạn phải biết những ứng dụng nào bạn đã cài đặt (và chúng tôi biết rằng điều này gần như là không thể với hệ điều hành OS hiện đại này với hàng tỷ dòng mã).

Thứ tôi đang tìm kiếm là một tường lửa giám sát kết nối NIC / WAN và phát hiện bất kỳ chương trình / ứng dụng nào hoặc bất cứ điều gì cố gắng "nói chuyện" thông qua nó một cách chủ động, bất kể cổng nào đang cố sử dụng (phải là các ứng dụng tôi đã đề cập trước đó cố gắng kết nối sử dụng các cổng TCP: 80, 443, 8080). Điều này có tồn tại? (Nếu không, thì làm sao tôi biết chắc chắn máy tính của mình đang làm gì?)


1
Chỉ tò mò: Gần đây dầu rắn này đã ngăn chặn bất kỳ vấn đề nghiêm trọng nào (như wannacry) chưa?
Phục hồi Monica - M. Schröder

Câu trả lời:


12

Douane

Douane là một tường lửa cá nhân bảo vệ quyền riêng tư của người dùng bằng cách cho phép người dùng kiểm soát những ứng dụng nào có thể kết nối với internet từ máy tính GNU / Linux của họ.


Cài đặt

Cho đến bây giờ (2017/05/22) không có gói Ubuntu nào khả dụng. Bạn phải xây dựng nó từ nguồn.

Các hướng dẫn cài đặt này dựa trên thông tin từ Douane Wiki và được thử nghiệm trên Ubuntu 16.04.2 64-bit.

Mở một terminal ( Ctrl+ Alt+ T) để chạy các lệnh.

Chuẩn bị

Cập nhật hệ thống của bạn:

sudo apt update
sudo apt full-upgrade

Nếu bạn nhận được thông báo yêu cầu khởi động lại máy tính của mình, thì hãy khởi động lại nó.

Cài đặt các phụ thuộc

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

Tạo một thư mục để biên dịch

cd
mkdir Douane
cd Douane

Xây dựng mô-đun hạt nhân

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

Kiểm tra xem mô-đun đã được xây dựng và cài đặt đúng chưa:

lsmod | grep douane

Bạn sẽ thấy một cái gì đó như:

douane                 20480  0

Xây dựng daemon

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

Xây dựng quy trình hộp thoại

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

Bắt đầu quá trình hộp thoại:

/opt/douane/bin/douane-dialog &

Sau đó kiểm tra xem nó có đang chạy không:

pgrep -a douane-dialog

Bạn sẽ thấy một cái gì đó như:

21621 /opt/douane/bin/douane-dialog

Xây dựng cấu hình

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

Bắt đầu trình nền và thiết lập tự động bắt đầu

Tôi đã phải chèn văn bản sau vào tệp /etc/init.d/douaneđể kích hoạt tự động bắt đầu của daemon:

### 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

Mở tệp để chỉnh sửa:

sudo nano /etc/init.d/douane

Sau đó dán văn bản trên sau khi mô tả chương trình. Nhấn Ctrl+ O, Enterđể lưu, sau đó Ctrl+ Xđể thoát trình chỉnh sửa.

Đây là 21 dòng đầu tiên của tệp sau khi tôi chèn văn bản:

#!/bin/bash
#
# douane      This shell script takes care of starting and stopping
#             douane daemon (A modern firewall at application layer)
#
# Author: Guillaume Hain zedtux@zedroot.org
#
# 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

Bây giờ bạn có thể thiết lập tự động bắt đầu và bắt đầu trình nền:

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

Kích hoạt bộ lọc và tự động khởi động hộp thoại

Khởi động cấu hình:

douane-configurator

Sau đó, đảm bảo các công tắc Sử dụng Douane để lọc lưu lượng mạng của tôiTự động khởi động Douane khi khởi động đều được bật.

Bạn có thể xem lại các quy tắc lọc trong Rules tab. Nhấp chuột phải vào một quy tắc bạn nhận được một tùy chọn để xóa nó.

Kiểm tra

Nếu mọi thứ đều ổn, bạn sẽ thấy cửa sổ Douane xin phép khi bạn mở các ứng dụng sử dụng kết nối mạng.


1
Xin chào Eric, cảm ơn bạn rất nhiều vì câu trả lời kịp thời của bạn. Như đã đề cập, tôi khá mới với Linux. Tôi đã tìm thấy điều Douane này trước khi đăng câu hỏi của mình, tôi đã xem trên trang Douane và không có "gói" nào cho Ubuntu, chỉ dành cho một thứ gọi là "Archlinux" (tôi đoán là một bản phân phối khác của linux) ... Tôi cũng đã tìm thấy rằng người ta có thể thích ứng điều này với bất kỳ bản phân phối nào thực hiện việc biên dịch lại và cài đặt thủ công ... tôi có đúng không? ... không ai có bản này đã được biên dịch và đóng gói cho ubfox?
jonabrv1965

1
Trước hết xin cảm ơn một lần nữa Eric đã hỗ trợ..Uhm ... hơn 30 bước để thiết lập và chạy một ứng dụng trong linux ... không thân thiện với người dùng lắm phải không? ... Tôi bắt đầu hãy xem tại sao Linux có sự tiếp nhận rất thấp bên ngoài dân công nghệ ... Tôi sẽ dùng thử (chủ yếu vì tôi phải tách ra khỏi M $ Windoze bằng bất cứ giá nào)
jonabrv1965

Không có PPA để cung cấp nhị phân? Google đã tìm thấy launchpad.net/~enedtux/+archive/ubfox/douane (nhưng tôi chưa thử nghiệm nó).
Melebius

4

Có một dự án mới gọi là OpenSnitch được mô tả tại

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

Trang dự án là https://www.opensnitch.io/

Tại thời điểm này, nó được coi là phần mềm alpha, và kỳ lạ là nó được viết bằng Python, nhưng ít nhất nó là một nỗ lực mới, trong khi Douane là một chương trình rất cũ mà tôi nghĩ là khó cài đặt hơn nhiều.

Tuyên bố miễn trừ trách nhiệm: Tôi chưa từng thử nghiệm cá nhân một chương trình nào, tôi chỉ cố gắng tìm xem có lựa chọn nào khác không và nhận thấy rằng chưa có ai đề cập đến OpenSnitch ở đây.


> "Thật kỳ lạ, nó được viết bằng Python" - không, không có gì lạ, thực sự nên sử dụng một ngôn ngữ cấp cao cho mọi thứ trừ những phần "nóng" để tiết kiệm thời gian và ít mắc lỗi hơn.
Sange Borsch

3

Đây là một câu hỏi thực sự tốt, nhưng tôi ghét những câu hỏi như thế này bởi vì chúng thực sự khó trả lời mà không tắt như nói bảo mật không quan trọng.

Vì vậy, trước tiên, hãy để tôi nói rằng bảo mật là quan trọng, nhưng Linux xử lý nó rất khác thì Windows cũng vậy.

Vì vậy, hãy giải quyết câu hỏi của bạn.

Đầu tiên, sẽ không có một tường lửa gửi đi hoạt động giống như báo động khu vực. Linux đơn giản là không có nhu cầu lớn đối với một. Nhiều ứng dụng hoạt động trong kiến ​​trúc máy khách / máy chủ mặc dù bạn đang sử dụng chúng trên cùng một máy. Xorg là một ví dụ tuyệt vời. Trước tiên, bạn có một máy chủ (trong trường hợp này là phần vẽ trên màn hình) và một máy khách (gedit) nói chuyện với máy chủ về việc vẽ các nút của nó, đặt văn bản và cứ thế. Ngay cả một cái gì đó đơn giản như một con chuột có kiến ​​trúc tương tự (hoặc có thể có). Một chương trình hoạt động như một máy chủ lắng nghe thông tin và gửi dữ liệu khi nhận được nó, sau đó máy khách "kết nối" với "máy chủ chuột" đó và chờ thông tin.

Điều này phổ biến trong Linux đến nỗi nếu bạn tạo một "tường lửa" yêu cầu sự cho phép đối với mọi kết nối mạng thì có lẽ bạn sẽ không thể định cấu hình nó vì nó không thể kết nối với máy chủ của chính nó.

Đây là tất cả một ví dụ rất thô sơ, một số trong đó là sai lệch vì nó rất cao. Nhưng nó vẫn rất đúng.

Để bảo vệ người dùng Linux của chúng tôi chống lại điều này, chúng tôi có một bộ hai quy tắc rất cơ bản thực hiện công việc "cơ bản" rất tốt.

Thứ nhất, không người dùng nào ngoại trừ root có thể mở bất kỳ cổng nào dưới 1024. (một lần nữa mức rất cao). Điều này có nghĩa là thậm chí chạy một máy chủ FTP (trên một cổng tiêu chuẩn) bạn cần có quyền truy cập root. Bạn với tư cách là người dùng thường có thể mở "cổng cao" (những cổng trên 1024). Nhưng xem quy tắc hai.

lần 2. không có quá trình nào có thể truy cập bất kỳ tệp nào mà người dùng bắt đầu quá trình không thể truy cập. (một lần nữa ở mức rất cao) Vì vậy, nếu "coteyr" khởi động máy chủ FTP, thì máy chủ FTP đó ở trường hợp xấu hơn (cấp độ cao) sẽ chỉ có quyền truy cập chính xác như người dùng coteyr đã khởi động nó.

Do sự kết hợp của hai quy tắc này, một "phần mềm" yêu cầu mỗi khi có thứ gì đó cố gắng kết nối tường lửa gây cản trở và không có nhiều nhu cầu cho nó.

Điều đó nói rằng bạn luôn có thể tạo một quy tắc tường lửa đi, và trong nhiều trường hợp, đây có lẽ không phải là một ý tưởng tồi. Nhiều dịch vụ có thể được (và theo mặc định) được định cấu hình để sử dụng ổ cắm dựa trên tệp (hoặc dựa trên bộ nhớ) và không phải ổ cắm dựa trên mạng.

Quy tắc tường lửa trong nước thường đóng bất kỳ hình ảnh kỳ lạ nào còn sót lại của quy tắc 1 hoặc 2.

Quan điểm của tôi là thế này. Bảo mật rất quan trọng và tôi không cố nói rằng không phải vậy, chỉ ở đây trên đất Linux chúng ta có những công cụ và mục tiêu khác nhau. Tôi khuyên bạn nên xem xét các quyền của người dùng và nhóm Linux và sau đó sử dụng một công cụ như gfw và IPTABLES để điền vào bất kỳ khoảng trống nào.


3
> không có quá trình nào có thể truy cập bất kỳ tệp nào mà người dùng bắt đầu quá trình không thể truy cập - không khác gì với Windows, vì dường như bạn đang ám chỉ. Đó không phải là một sự khác biệt về hệ điều hành. Tuy nhiên, thành thực mà nói, nếu bạn chỉ cho phép tất cả các kết nối loopback thì tường lửa như vậy sẽ không can thiệp vào bất kỳ ứng dụng máy khách / máy chủ TCP nào trên cùng một máy - hoàn toàn có thể thiết lập một điều khiển chỉ truy cập mạng. (Ngoài ra, trừ khi bạn đang chạy Windows 9x, Windows ACL, nếu có, mạnh hơn so với các quyền Unix truyền thống. Điều này lại ít liên quan đến việc hạn chế mạng.)
Bob

1
Trên thực tế, đọc lại câu trả lời ... Tôi không chắc làm thế nào để không thể sử dụng các cổng nổi tiếng có liên quan - điều đó chỉ hữu ích để ngăn chặn việc che giấu các dịch vụ hệ thống (ví dụ như giả vờ sshdvào ngày 22), nhưng câu hỏi dường như để được hỏi thêm về exfiltration dữ liệu. Các kết nối gần như hoàn toàn ra ngoài và ít liên quan đến cổng nào bạn được phép liên kết.
Bob

1
Đầu tiên, sẽ không có một tường lửa gửi đi hoạt động giống như báo động khu vực. Linux đơn giản là không có nhu cầu lớn đối với một - các bảng IP sẽ kiểm soát việc gửi đi cũng như sắp tới, xin đừng nói những điều bạn không thực sự biết.
djsmiley2k - CoW

Xin chào Honza, trong chuyến đi "bài tập về nhà" của tôi, tôi đã thấy nhiều lần câu trả lời giống như của bạn. Và tôi phần nào hiểu được nó, nhưng ... và là một "nhưng" ... không phải là thứ tôi đang tìm kiếm ... Tôi hiểu cổng, độ phơi sáng thấp (do mức độ phổ biến thấp của nền tảng) và tất cả các khái niệm khác mà bạn đã đề cập ... nhưng điều tôi chỉ tìm hiểu là hiểu một cách dễ dàng (ví dụ zonealarm) máy tính của tôi đang làm gì bên ngoài máy tính .. (là Xorg / gedit, để làm theo ví dụ của bạn, trong ví dụ của bạn cần phải lên internet để làm bất cứ điều gì? nếu vậy tôi muốn / cần biết tại sao / khi nào / ở đâu ...
jonabrv1965

Sau đó, bạn sẽ đào sâu hơn một chút. thử netstatNgay bây giờ hộp của tôi có 1354 kết nối mở. 65 trong số đó là kết nối mạng. Đó là một con số khá thấp đối với tôi (không nói nó dành cho tất cả mọi người) nhưng sau đó bạn sẽ bắt đầu cố gắng tìm hiểu xem mỗi một trong những kết nối đó làm gì. Như tôi đã nói, không phải bảo mật không quan trọng, nó chỉ là một môi trường rất khác.
coteyr
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.