Apakah ada firewall level Aplikasi untuk Ubuntu 16.04? (dengan GUI)

20

Saya harus mengakui bahwa saya sangat baru di dunia Linux, dan ada konsep-konsep yang terasa asing bagi saya.

Satu hal yang paling saya lewatkan adalah firewall level aplikasi yang bagus namun sederhana. Sampai sekarang, dengan semua konektivitas intrusif dan permanen yang menyebar ke internet ini adalah suatu keharusan untuk mengetahui apa sebenarnya yang dilakukan komputer Anda, mengapa dan dengan siapa. Penganalisa protokol ok tapi terlalu tidak ramah dan memakan waktu untuk "menganalisis" yang praktis tidak berguna bagi pengguna rumahan.

Saya telah menemukan banyak program di lingkungan Windows yang seharusnya tidak terhubung ke internet tetapi mereka melakukannya (dan dengan firewall gratis ZoneAlarm saya, saya dapat menghentikannya).

Dengan Gufw (dan beberapa lainnya) Anda harus tahu aplikasi mana yang sudah Anda instal (dan kami tahu bahwa ini hampir mustahil dengan OS modern ini dengan miliaran baris kode).

Apa yang saya cari adalah firewall yang memantau koneksi NIC / WAN dan mendeteksi program / aplikasi apa pun atau apa pun yang mencoba untuk "berbicara" melalui proaktif, terlepas dari port yang mencoba menggunakan (harus dari aplikasi yang saya sebutkan sebelumnya mencoba untuk menghubungkan menggunakan port TCP yang sudah dikenal: 80, 443, 8080). Apakah ini ada? (Jika tidak, lalu bagaimana saya tahu apa yang dilakukan komputer saya?)

jonabrv1965
sumber
1
Hanya ingin tahu: Apakah minyak ular ini mencegah masalah serius (seperti wannacry) belakangan ini?
Pasang kembali Monica - M. Schröder
Kemungkinan duplikat: Bagaimana non-geek mengatur firewall yang benar?
Jon Bentley

Jawaban:

12

Douane

Douane adalah firewall pribadi yang melindungi privasi pengguna dengan memungkinkan pengguna untuk mengontrol aplikasi mana yang dapat terhubung ke internet dari komputer GNU / Linux mereka.


Instalasi

Sampai sekarang (2017/05/22) tidak ada paket Ubuntu yang tersedia. Anda harus membuatnya dari sumber.

Petunjuk penginstalan ini didasarkan pada informasi dari Douane Wiki dan diuji pada Ubuntu 16.04.2 64-bit.

Buka terminal ( Ctrl+ Alt+ T) untuk menjalankan perintah.

Persiapan

Perbarui sistem Anda:

sudo apt update
sudo apt full-upgrade

Jika Anda mendapatkan pemberitahuan yang meminta untuk me-restart komputer Anda, kemudian restart itu.

Instal dependensi

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

Buat direktori untuk kompilasi

cd
mkdir Douane
cd Douane

Bangun modul kernel

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

Periksa apakah modul dibangun dan diinstal dengan benar:

lsmod | grep douane

Anda harus melihat sesuatu seperti:

douane                 20480  0

Bangun daemon

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

Bangun proses dialog

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

Mulai proses dialog:

/opt/douane/bin/douane-dialog &

Kemudian periksa apakah sudah berjalan:

pgrep -a douane-dialog

Anda harus melihat sesuatu seperti:

21621 /opt/douane/bin/douane-dialog

Bangun konfigurator

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

Mulai daemon dan atur mulai otomatis

Saya harus memasukkan teks berikut ke dalam file /etc/init.d/douaneuntuk mengaktifkan permulaan otomatis 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

Buka file untuk diedit:

sudo nano /etc/init.d/douane

Kemudian tempel teks di atas setelah deskripsi program. Tekan Ctrl+ O, Enteruntuk menyimpan, lalu Ctrl+ Xuntuk keluar dari editor.

Ini adalah 21 baris pertama file setelah saya memasukkan teks:

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

Sekarang Anda dapat mengatur mulai otomatis dan memulai daemon:

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

Aktifkan filter dan mulai dialog secara otomatis

Mulai konfigurator:

douane-configurator

Kemudian pastikan sakelar Gunakan Douane untuk memfilter lalu lintas jaringan saya dan Auto start Douane saat boot dinyalakan.

Anda dapat meninjau aturan penyaringan di tab Aturan . Mengklik kanan aturan, Anda mendapatkan opsi untuk menghapusnya.

Uji

Jika semuanya baik-baik saja, Anda akan melihat jendela Douane yang meminta izin ketika Anda membuka aplikasi yang menggunakan koneksi jaringan.

Eric Carvalho
sumber
1
Halo Eric, terima kasih banyak atas jawaban Anda yang segera. Seperti yang disebutkan saya cukup pemula dengan Linux. Saya menemukan hal Douane ini sebelum memposting pertanyaan saya, saya melihat situs Douane dan tidak ada "paket" untuk Ubuntu, hanya untuk sesuatu yang disebut "Archlinux" (saya kira distro lain dari linux) ... Saya juga menemukan seseorang dapat mengadaptasi ini ke distro apa pun yang membuat kompilasi dan instalasi secara manual ... apakah saya benar? ... tidak ada yang sudah dikompilasi dan dikemas untuk ubuntu?
jonabrv1965
1
Pertama-tama, terima kasih lagi Eric atas dukungannya .. Uhm ... lebih dari 30 langkah untuk memasang dan menjalankan aplikasi di linux ... tidak terlalu ramah pengguna, bukan? ... Saya mulai lihat mengapa Linux memiliki penerimaan yang sangat rendah di luar orang teknisi ... Saya akan mencobanya (terutama karena saya harus memisahkan diri dari M $ Windoze dengan biaya berapa pun)
jonabrv1965
Apakah tidak ada AKP untuk menyediakan binari? Google menemukan launchpad.net/~zedtux/+archive/ubuntu/douane (tapi saya belum mengujinya).
Melebius
4

Ada proyek baru bernama OpenSnitch yang dijelaskan pada

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

Halaman proyek adalah https://www.opensnitch.io/

Pada titik ini dianggap perangkat lunak alfa, dan anehnya itu ditulis dalam Python, tetapi setidaknya ini merupakan upaya baru, sedangkan Douane adalah program yang sangat lama yang (saya pikir) jauh lebih sulit untuk diinstal.

Penafian: Saya belum secara pribadi menguji salah satu program, saya hanya mencoba mencari apakah ada opsi lain dan memperhatikan bahwa belum ada yang menyebutkan OpenSnitch di sini.

pengguna736189
sumber
> "anehnya itu ditulis dalam Python" - tidak itu tidak aneh, itu sebenarnya ide yang sangat bagus untuk menggunakan bahasa tingkat tinggi untuk semuanya kecuali bagian "panas" untuk menghemat waktu dan membuat lebih sedikit kesalahan.
Sarge Borsch
3

Ini adalah pertanyaan yang sangat bagus, tapi saya benci pertanyaan seperti ini karena mereka benar-benar sulit dijawab tanpa keluar seperti mengatakan keamanan tidak penting.

Jadi pertama, izinkan saya mengatakan bahwa keamanan itu penting, tetapi Linux menanganinya dengan sangat berbeda daripada Windows.

Jadi mari kita tangani pertanyaan Anda.

Pertama tidak akan ada firewall keluar yang bekerja dengan cara yang sama seperti alarm zona. Linux tidak memiliki kebutuhan yang besar. Banyak aplikasi bekerja dalam arsitektur klien / server meskipun Anda menggunakannya di mesin yang sama. Xorg adalah contoh yang bagus. Pertama-tama Anda memiliki server (dalam hal ini bagian yang menarik pada layar) dan klien (gedit) berbicara ke server tentang menggambar tombol itu, menempatkan teks itu dan sebagainya. Bahkan sesuatu yang sederhana seperti mouse memiliki arsitektur yang sama (atau bisa saja) Suatu program bertindak sebagai server yang mendengarkan informasi dan mengirimkan data ketika mendapatkannya, maka klien "menghubungkan" ke "server mouse" itu dan menunggu informasi.

Ini sangat lazim di Linux sehingga jika Anda membuat "firewall" yang meminta izin untuk setiap koneksi jaringan maka Anda mungkin tidak akan dapat mengkonfigurasinya karena tidak dapat terhubung ke server itu sendiri.

Ini semua adalah contoh yang sangat kasar, beberapa di antaranya menyesatkan karena tingkatannya sangat tinggi. Tapi itu masih sangat benar.

Untuk melindungi kami pengguna Linux dari ini, kami memiliki satu set dua aturan yang sangat mendasar yang melakukan pekerjaan "dasar" yang sangat baik.

Pertama, tidak ada pengguna kecuali root dapat membuka port apa pun di bawah 1024. (lagi-lagi level sangat tinggi). Ini berarti bahkan menjalankan server FTP (pada port standar) Anda harus memiliki akses root. Anda sebagai pengguna biasanya dapat membuka "port tinggi" (yang di atas 1024). Tapi lihat aturan dua.

Ke-2 tidak ada proses yang dapat mengakses file apa pun yang tidak dapat diakses oleh pengguna yang memulai proses. (lagi-lagi level yang sangat tinggi) Jadi jika "coteyr" memulai server FTP, maka server FTP yang lebih buruk (level tinggi) hanya akan memiliki akses yang sama persis dengan coteyr pengguna yang memulainya.

Karena kombinasi dari dua aturan ini, "perangkat lunak" yang meminta setiap kali sesuatu mencoba untuk menghubungkan firewall baru saja menghalangi, dan tidak ada banyak permintaan untuk itu.

Yang mengatakan Anda selalu dapat membuat aturan firewall keluar, dan dalam banyak kasus ini mungkin bukan ide yang buruk. Banyak layanan dapat (dan secara default) dikonfigurasikan untuk menggunakan soket berbasis file (atau berbasis memori) dan bukan soket berbasis jaringan.

Aturan firewall masuk biasanya menutup setiap celah aneh yang tersisa oleh aturan 1 atau 2.

Maksud saya adalah ini. Keamanan penting dan saya tidak berusaha mengatakan itu tidak, hanya di sini di tanah Linux kami memiliki alat dan tujuan yang berbeda. Saya akan merekomendasikan agar Anda melihat ke pengguna Linux dan izin grup dan kemudian menggunakan alat seperti gfw dan IPTABLES untuk mengisi celah.

kapas
sumber
3
> tidak ada proses yang dapat mengakses file apa pun yang tidak dapat diakses oleh pengguna yang memulai proses - yang tidak berbeda dari Windows, seperti yang tampaknya Anda maksudkan. Itu bukan perbedaan OS. Jujur saja, jika Anda hanya mengizinkan semua koneksi loopback maka firewall seperti itu tidak akan mengganggu aplikasi klien / server TCP pada mesin yang sama - sangat mungkin untuk mengatur satu yang hanya mengontrol akses jaringan. (Juga. Kecuali jika Anda menjalankan Windows 9x, Windows ACL, jika ada, lebih kuat dari izin Unix tradisional. Yang lagi-lagi tidak ada hubungannya dengan membatasi jaringan.)
Bob
1
Sebenarnya, membaca jawabannya lagi ... Saya tidak yakin bagaimana tidak dapat menggunakan port yang terkenal juga relevan - itu hanya berguna untuk mencegah penyembunyian layanan sistem (misalnya berpura-pura menjadi sshd22), tetapi pertanyaannya tampaknya untuk bertanya lebih lanjut tentang pengelupasan data. Yang hampir seluruhnya koneksi keluar dan tidak ada hubungannya dengan port mana Anda diizinkan untuk mengikat.
Bob
1
Pertama tidak akan ada firewall keluar yang bekerja dengan cara yang sama seperti alarm zona. Linux tidak memiliki kebutuhan besar untuk itu - tabel IP akan mengontrol keluar sama baiknya dengan yang akan datang, tolong jangan katakan hal-hal yang Anda tidak benar-benar tahu.
djsmiley2k - Kontrak Karya
Hai Honza, selama tur "pekerjaan rumah" saya, saya melihat beberapa kali jawaban seperti milik Anda. Dan saya agak memahaminya, tapi ... dan merupakan "tapi" besar ... bukan itu yang saya cari ... Saya mengerti port, paparan rendah (karena penyebaran platform yang rendah) dan semua konsep lain yang Anda sebutkan ... tetapi yang saya cari adalah untuk memahami dengan cara yang mudah (misalnya zonealarm) apa yang dilakukan komputer saya di luar komputer itu sendiri .. (adalah Xorg / gedit, untuk mengikuti contoh Anda, dalam perlu pergi ke internet untuk melakukan sesuatu? jika begitu saya ingin / perlu tahu mengapa / kapan / di mana ...
jonabrv1965
Maka Anda akan menggali sedikit lebih dalam. coba netstatSekarang kotak saya memiliki 1354 koneksi terbuka. 65 di antaranya adalah koneksi jaringan. Itu angka yang cukup rendah bagi saya (tidak mengatakan itu untuk semua orang) tetapi kemudian Anda akan mulai mencoba mencari tahu apa yang masing-masing dari koneksi itu lakukan. Seperti yang saya katakan, bukan itu keamanan tidak penting, itu hanya lingkungan yang sangat berbeda.
coteyr