มี Application ระดับไฟร์วอลสำหรับ Ubuntu 16.04 หรือไม่? (พร้อม GUI)


20

ฉันต้องสารภาพว่าฉันใหม่สำหรับโลกลินุกซ์และมีแนวคิดที่ฉันไม่คุ้นเคย

สิ่งหนึ่งที่ฉันคิดถึงมากที่สุดคือไฟร์วอลล์ระดับแอพพลิเคชันที่ดี แต่ใช้งานง่าย ณ ตอนนี้ด้วยการเชื่อมต่ออินเทอร์เน็ตที่ล่วงล้ำและต่อเนื่องที่แพร่หลายนี้คุณต้องรู้ว่าคอมพิวเตอร์ของคุณกำลังทำอะไรอยู่ทำไมและกับใคร ตัววิเคราะห์โปรโตคอลนั้นใช้ได้ แต่ไม่เป็นมิตรและเสียเวลาในการ "วิเคราะห์" ที่ไม่เป็นประโยชน์สำหรับผู้ใช้ตามบ้าน

ฉันได้ค้นพบโปรแกรมจำนวนมากในสภาพแวดล้อม Windows ที่ไม่ควรเชื่อมต่ออินเทอร์เน็ต แต่ทำ (และด้วยไฟร์วอลล์ฟรี ZoneAlarm ของฉันฉันสามารถหยุดพวกเขาได้)

ด้วย Gufw (และอื่น ๆ อีกมากมาย) คุณต้องรู้ว่าคุณติดตั้งแอพใดแล้ว (และเรารู้ว่ามันแทบจะเป็นไปไม่ได้ในระบบปฏิบัติการสมัยใหม่นี้พร้อมกับโค้ดบรรทัดนับพันล้าน)

สิ่งที่ฉันกำลังมองหาคือไฟร์วอลล์ที่ตรวจสอบการเชื่อมต่อ NIC / WAN และตรวจพบโปรแกรม / แอพใด ๆ หรือพยายาม "พูดคุย" ผ่านมันในเชิงรุกโดยไม่คำนึงถึงพอร์ตที่พยายามใช้ (ต้องใช้แอพที่ฉันกล่าวถึงก่อนหน้านี้ ใช้พอร์ต TCP: 80, 443, 8080) สิ่งนี้มีอยู่ไหม? (ถ้าไม่เช่นนั้นฉันจะรู้ได้อย่างไรว่าคอมพิวเตอร์ของฉันกำลังทำอะไรอยู่อย่างแน่นอน)


1
เพียงแค่อยากรู้อยากเห็น: น้ำมันงูนี้ป้องกันปัญหาร้ายแรงใด ๆ
Reinstate Monica - M. Schröder

คำตอบ:


12

Douane

Douane เป็นไฟร์วอลล์ส่วนบุคคลที่ปกป้องความเป็นส่วนตัวของผู้ใช้โดยอนุญาตให้ผู้ใช้ควบคุมแอปพลิเคชันที่สามารถเชื่อมต่ออินเทอร์เน็ตจากคอมพิวเตอร์ GNU / Linux


การติดตั้ง

จนถึงตอนนี้ (2017/05/22) ยังไม่มีแพ็คเกจของ Ubuntu คุณต้องสร้างมันจากแหล่งที่มา

คำแนะนำการติดตั้งเหล่านี้อ้างอิงจากข้อมูลจากDouane Wikiและทดสอบบน Ubuntu 16.04.2 64-bit

เปิดเทอร์มินัล ( Ctrl+ Alt+ T) เพื่อเรียกใช้คำสั่ง

การจัดเตรียม

อัปเดตระบบของคุณ:

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

เริ่ม daemon และตั้งค่าเริ่มต้นโดยอัตโนมัติ

ฉันต้องแทรกข้อความต่อไปนี้ในไฟล์/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 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

ตอนนี้คุณสามารถตั้งค่าเริ่มอัตโนมัติและเริ่มภูต:

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

เปิดใช้งานตัวกรองและเริ่มต้นการโต้ตอบโดยอัตโนมัติ

เริ่มตัวกำหนดค่า:

douane-configurator

จากนั้นตรวจสอบให้แน่ใจว่าสวิตช์ใช้ Douane เพื่อกรองทราฟฟิกเครือข่ายของฉันและเปิดอัตโนมัติ Douane เมื่อบู๊ตเปิดอยู่

คุณสามารถตรวจสอบกฎการกรองได้ในแท็บกฎ คลิกขวาที่กฎคุณจะได้รับตัวเลือกให้ลบกฎ

ทดสอบ

หากทุกอย่างเรียบร้อยคุณควรเห็นหน้าต่าง Douane ขออนุญาตเมื่อคุณเปิดแอปพลิเคชันที่ใช้การเชื่อมต่อเครือข่าย


1
สวัสดี Eric ขอบคุณมากสำหรับคำตอบของคุณในทันที ดังที่กล่าวไว้ฉันค่อนข้างเป็นสามเณรกับ Linux ฉันพบสิ่ง Douane นี้ก่อนโพสต์คำถามของฉันฉันดูที่เว็บไซต์ Douane และไม่มี "แพ็คเกจ" สำหรับ Ubuntu เฉพาะบางสิ่งที่เรียกว่า "Archlinux" (ฉันเดาว่า distro ของ linux อีกตัว) ... ฉันก็พบ ที่หนึ่งสามารถปรับให้เข้ากับสิ่งที่ distro ทำ recompilation และการติดตั้งด้วยตนเอง ... ฉันถูกต้องหรือไม่ ... ไม่มีใครรวบรวมและบรรจุสำหรับอูบุนตูแล้วหรือยัง?
jonabrv1965

1
ก่อนอื่นขอขอบคุณ Eric อีกครั้งสำหรับการสนับสนุน .. เอ่อ ... มากกว่า 30 ขั้นตอนในการติดตั้งและใช้งานแอพใน linux ... ไม่ค่อยเป็นมิตรกับผู้ใช้ใช่มั้ย ... ฉันกำลังเริ่ม ดูว่าทำไมลินุกซ์มีแผนกต้อนรับส่วนหน้าว่าคนข้างนอก techie ต่ำมาก ... ฉันจะให้มันลอง (ส่วนใหญ่เพราะผมต้องทำลายนอกเหนือจาก M $ Windoze ที่ค่าใช้จ่ายใด ๆ )
jonabrv1965

ไม่มีPPA ที่จะจัดหาไบนารีหรือไม่ Google พบlaunchpad.net/~zedtux/+archive/ubuntu/douane (แต่ฉันยังไม่ได้ทดสอบ)
Melebius

4

มีโครงการใหม่ชื่อ OpenSnitch อธิบายไว้ที่

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

หน้าโครงการคือhttps://www.opensnitch.io/

ถึงตอนนี้ก็ถือว่าเป็นซอฟต์แวร์อัลฟ่าและเขียนด้วยภาษา Python แต่อย่างน้อยก็เป็นความพยายามครั้งใหม่ในขณะที่ Douane เป็นโปรแกรมที่เก่าแก่มากที่ฉันคิดว่าติดตั้งยากกว่ามาก

คำเตือน: ฉันยังไม่ได้ทดสอบโปรแกรมส่วนตัวฉันแค่พยายามหาว่ามีตัวเลือกอื่นและสังเกตว่ายังไม่มีใครพูดถึง OpenSnitch ที่นี่


> "มันเขียนด้วย Python" ไม่แปลกเลยจริง ๆ แล้วมันเป็นความคิดที่ดีมากที่จะใช้ภาษาระดับสูงสำหรับทุกสิ่งยกเว้นชิ้นส่วน "ร้อน" เพื่อประหยัดเวลาและทำผิดพลาดน้อยลง
Sarge Borsch

3

นี่เป็นคำถามที่ดีจริงๆ แต่ฉันเกลียดคำถามแบบนี้เพราะพวกเขาตอบยากโดยไม่ต้องออกไปพูดว่าความปลอดภัยไม่ใช่เรื่องสำคัญ

ดังนั้นก่อนอื่นให้ฉันบอกว่าความปลอดภัยเป็นสิ่งสำคัญ แต่ลีนุกซ์จัดการกับมันต่างจาก Windows

ดังนั้นช่วยจัดการคำถามของคุณ

ก่อนอื่นจะไม่มีไฟร์วอลล์ขาออกที่ทำงานในลักษณะเดียวกับสัญญาณเตือนโซน ลินุกซ์ไม่จำเป็นต้องมีขนาดใหญ่ แอปพลิเคชันจำนวนมากทำงานในสถาปัตยกรรมไคลเอนต์ / เซิร์ฟเวอร์แม้ว่าคุณจะใช้ในเครื่องเดียวกัน Xorg เป็นตัวอย่างที่ดี ก่อนอื่นคุณมีเซิร์ฟเวอร์ (ในกรณีนี้ส่วนที่วาดบนหน้าจอ) และไคลเอนต์ (gedit) gedit พูดคุยกับเซิร์ฟเวอร์เกี่ยวกับการวาดปุ่มมันวางข้อความและอื่น ๆ แม้กระทั่งบางสิ่งที่เรียบง่ายในระบบปฏิบัติการเม้าส์ก็มีสถาปัตยกรรมเดียวกัน (หรืออาจมี) โปรแกรมทำหน้าที่เสมือนเซิร์ฟเวอร์กำลังรับฟังข้อมูลและส่งข้อมูลเมื่อได้รับจากนั้นไคลเอนต์ "เชื่อมต่อ" กับ "เซิร์ฟเวอร์เมาส์" นั้นและรอข้อมูล

นี่เป็นที่แพร่หลายมากใน Linux หากคุณต้องการสร้าง "ไฟร์วอลล์" ที่ขออนุญาตสำหรับการเชื่อมต่อเครือข่ายทุกครั้งคุณอาจไม่สามารถกำหนดค่าได้เนื่องจากไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ของตัวเองได้

ทั้งหมดนี้เป็นตัวอย่างคร่าวๆบางอย่างมันทำให้เข้าใจผิดเพราะอยู่ในระดับสูงมาก แต่มันก็ยังคงเป็นจริง

เพื่อปกป้องผู้ใช้ Linux กับสิ่งนี้เรามีกฎพื้นฐานสองข้อที่ทำงานได้ดี "พื้นฐาน"

อันดับแรกไม่มีผู้ใช้ยกเว้นรูทสามารถเปิดพอร์ตใดก็ได้ที่ต่ำกว่า 1024 (ระดับสูงมากอีกครั้ง) ซึ่งหมายความว่าแม้จะเรียกใช้เซิร์ฟเวอร์ FTP (บนพอร์ตมาตรฐาน) คุณต้องมีการเข้าถึงรูท คุณในฐานะผู้ใช้สามารถเปิด "พอร์ตสูง" (ที่อยู่เหนือ 1024) แต่ดูกฎข้อที่สอง

ครั้งที่ 2 ไม่มีกระบวนการใดสามารถเข้าถึงไฟล์ใด ๆ ที่ผู้ใช้ที่เริ่มต้นกระบวนการไม่สามารถเข้าถึงได้ (ระดับสูงมากอีกครั้ง) ดังนั้นหาก "coteyr" ต้องเริ่มต้นเซิร์ฟเวอร์ FTP จากนั้นเซิร์ฟเวอร์ FTP ในกรณีที่แย่กว่านั้น (ระดับสูง) จะมีการเข้าถึงที่แน่นอนเหมือนกับผู้ใช้ coteyr ที่เริ่มต้น

เนื่องจากการรวมกันของกฎทั้งสองนี้เป็น "ซอฟต์แวร์" ที่ถามทุกครั้งที่มีอะไรพยายามเชื่อมต่อไฟร์วอลล์เข้ามาขวางทางและไม่มีความต้องการมากนัก

ที่กล่าวว่าคุณสามารถสร้างกฎไฟร์วอลล์ขาออกได้เสมอและในหลายกรณีนี่อาจไม่ใช่แนวคิดที่ไม่ดี บริการจำนวนมากสามารถ (และโดยค่าเริ่มต้น) กำหนดค่าให้ใช้ซ็อกเก็ตที่ใช้ไฟล์ (หรือตามหน่วยความจำ) และไม่ใช่ซ็อกเก็ตที่ใช้เครือข่าย

กฎไฟร์วอลล์ขาเข้ามักจะปิด gapes แปลก ๆ ที่เหลือโดยกฎ 1 หรือ 2

ประเด็นของฉันคือสิ่งนี้ ความปลอดภัยเป็นสิ่งสำคัญและฉันไม่ได้พยายามที่จะบอกว่าไม่ใช่มันเป็นเพียงแค่ใน Linux land เรามีเครื่องมือและเป้าหมายที่แตกต่างกัน ฉันขอแนะนำให้คุณดูสิทธิ์ผู้ใช้และกลุ่มของ Linux จากนั้นใช้เครื่องมือเช่น gfw และ IPTABLES เพื่อเติมเต็มช่องว่างใด ๆ


3
> ไม่มีกระบวนการใดสามารถเข้าถึงไฟล์ใด ๆ ที่ผู้ใช้ที่เริ่มต้นกระบวนการไม่สามารถเข้าถึง - ซึ่งไม่แตกต่างจาก Windows อย่างที่คุณคิด นั่นไม่ใช่ความแตกต่างของระบบปฏิบัติการ อย่างไรก็ตามหากคุณอนุญาตการเชื่อมต่อลูปแบ็คทั้งหมดไฟร์วอลล์ดังกล่าวจะไม่รบกวนการใช้งานไคลเอนต์ TCP / แอปพลิเคชันเซิร์ฟเวอร์ในเครื่องเดียวกัน - เป็นไปได้อย่างสมบูรณ์ที่จะตั้งค่าหนึ่งที่ควบคุมการเข้าถึงเครือข่ายเท่านั้น (นอกจากนี้ยกเว้นว่าคุณกำลังใช้งาน Windows 9x Windows ACL จะมีประสิทธิภาพมากกว่าสิทธิ์ Unix แบบดั้งเดิมซึ่งมีส่วนเกี่ยวข้องกับการ จำกัด เครือข่ายอีกเล็กน้อย)
Bob

1
ที่จริงแล้วการอ่านคำตอบอีกครั้ง ... ฉันไม่แน่ใจว่าจะไม่สามารถใช้พอร์ตที่รู้จักกันดีนั้นมีความเกี่ยวข้องเช่นกัน - เป็นเพียงประโยชน์ในการป้องกันการหลอกลวงของบริการระบบ (เช่นการแกล้งเป็นsshd22) แต่คำถามดูเหมือนว่า เพื่อขอข้อมูลเพิ่มเติมเกี่ยวกับการกรองข้อมูล ซึ่งเป็นการเชื่อมต่อขาออกเกือบทั้งหมดและมีส่วนเกี่ยวข้องกับพอร์ตที่คุณอนุญาตให้เชื่อมต่อได้
บ๊อบ

1
ก่อนอื่นจะไม่มีไฟร์วอลล์ขาออกที่ทำงานในลักษณะเดียวกับสัญญาณเตือนโซน ลีนุกซ์ไม่ต้องการอะไรมาก - ตาราง IP จะควบคุมการส่งออกเช่นเดียวกับการเข้ามาโปรดอย่าพูดในสิ่งที่คุณไม่รู้
djsmiley2k - CoW

สวัสดี Honza ระหว่างทัวร์ "การบ้าน" ของฉันฉันเห็นคำตอบหลาย ๆ ครั้งเช่นคุณ และฉันก็ค่อนข้างเข้าใจ แต่ ... และมันก็ใหญ่ "แต่" ... ไม่ใช่สิ่งที่ฉันกำลังมองหา ... ฉันเข้าใจพอร์ตการเปิดรับแสงต่ำ (เนื่องจากแพลตฟอร์มมีจำนวนน้อยมาก) และ แนวคิดอื่น ๆ ทั้งหมดที่คุณพูดถึง ... แต่สิ่งที่ฉันกำลังมองหาคือการเข้าใจในวิธีที่ง่าย (เช่น zonealarm) คอมพิวเตอร์ของฉันกำลังทำอะไรอยู่นอกคอมพิวเตอร์ตัวเอง .. (คือ Xorg / gedit เพื่อทำตามตัวอย่างของคุณใน ต้องไปอินเทอร์เน็ตเพื่อทำอะไรถ้าฉันต้องการ / ต้องการรู้ว่าทำไม / เมื่อ / ที่ไหน ...
jonabrv1965

จากนั้นคุณจะขุดลึกลงไปอีกเล็กน้อย ลองnetstatตอนนี้กล่องของฉันมีการเชื่อมต่อแบบเปิด 1354 65 รายการเป็นการเชื่อมต่อเครือข่าย นั่นเป็นตัวเลขที่ค่อนข้างต่ำสำหรับฉัน (ไม่ได้บอกว่าเป็นของทุกคน) แต่จากนั้นคุณจะเริ่มพยายามค้นหาว่าแต่ละการเชื่อมต่อเหล่านั้นทำอะไร อย่างที่ฉันบอกว่าไม่ใช่ความปลอดภัยที่ไม่สำคัญมันเป็นแค่สภาพแวดล้อมที่แตกต่างกันมาก
coteyr
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.