Ubuntu 16.04用のアプリケーションレベルのファイアウォールはありますか?(GUIを使用)


20

私は、Linuxの世界に非常に慣れていないことを告白しなければなりません。また、私にはあまり馴染みのない概念があります。

私が最も見逃していることの1つは、優れたシンプルなアプリケーションレベルのファイアウォールです。現在、インターネットへのこのような侵入的で永続的な接続はすべて、お使いのコンピューターが正確に何を、なぜ、誰とやっているのかを知る必要があります。プロトコルアナライザーは大丈夫ですが、使い勝手が悪く、「分析」するには時間がかかりすぎて、ホームユーザーにとっては実用的ではありません。

私は、インターネットに接続すべきではないが、Windows環境で多くのプログラムを発見しましたが、それらは接続します(そして、ZoneAlarmの無料ファイアウォールで、それらを停止できます)。

Gufw(および他のいくつか)では、どのアプリを既にインストールしているのかを知る必要があります(そして、これは数十億のコード行を持つこの最新のOSではほとんど不可能であることを知っています)。

私が探しているのは、NIC / WAN接続を監視し、使用しようとしているポートに関係なく、プログラム/アプリまたはそれを「トーク」しようとするものを検出するファイアウォールです(前述のアプリのよく知られているTCPポートを使用:80、443、8080)。これは存在しますか?(もしそうでなければ、どうやって自分のコンピューターが何をしているのかをどうやって知るのか?)


1
ちょうど好奇心が強い:このヘビ油は最近深刻な問題(欲望のような)を防いだでしょうか?
モニカの復活-M.シュレーダー

回答:


12

ドゥアン

Douaneは、GNU / Linuxコンピューターからインターネットに接続できるアプリケーションをユーザーが制御できるようにすることで、ユーザーのプライバシーを保護するパーソナルファイアウォールです。


設置

これまで(2017/05/22)Ubuntuパッケージは利用できません。ソースからビルドする必要があります。

これらのインストール手順は、Douane Wikiの情報に基づいており、Ubuntu 16.04.2 64ビットでテストされています。

ターミナル(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

デーモンを起動し、自動起動を設定します

/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+ OEnterその後、保存するための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
こんにちはエリック、迅速な回答をありがとうございます。前述のように、私はLinuxを初めて使用します。質問を投稿する前にこのDouaneを見つけました。Douaneのサイトを見てみると、Ubuntu用の「パッケージ」はなく、「Archlinux」(Linuxの別のディストリビューションだと思います)だけがあります。手動で再コンパイルとインストールを行うディストリビューションにこれを適応させることができます...私は正しいですか?...これはすでにubuntu用にコンパイルおよびパッケージ化されていますか?
jonabrv1965

1
まず最初に、サポートをありがとう、エリック。Linuxでアプリを立ち上げて実行するための30以上のステップ...あまりユーザーフレンドリーではありませんか?...私は始めていますLinuxが技術者の外で非常に低いレセプションを持っている理由を参照してください...私はそれを試してみます(主にM $ Windozeから離れる必要があるためです)
jonabrv1965

バイナリを提供するPPAはありませんか?Googleはlaunchpad.net/~zedtux/+archive/ubuntu/douaneを見つけました(しかし、テストしていません)。
メレビウス

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で書かれています」-奇妙なことではありません。実際、「ホット」な部分を除くすべてに高レベル言語を使用して、時間を節約し、ミスを少なくすることをお勧めします。
セージボルシュ

3

これは本当に良い質問ですが、このような質問は嫌いです。セキュリティは重要ではないと言って抜けることなく答えるのが本当に難しいからです。

まず最初に、セキュリティは重要ですが、LinuxはWindowsとはまったく異なる方法で処理することをお伝えします。

だからあなたの質問に取り組むことができます。

まず、ゾーンアラームと同じように機能する発信ファイアウォールは存在しません。Linuxは単純にそれを必要としません。同じマシンで使用している場合でも、多くのアプリケーションはクライアント/サーバーアーキテクチャで動作します。Xorgは素晴らしい例です。まず、サーバー(この場合は画面に描画する部分)があり、クライアント(gedit)geditはサーバーにボタンの描画、テキストの配置などについて話します。マウスのような単純なOSでも、この同じアーキテクチャを持っています(または持つことができます)。プログラムは、情報を受信し、データを取得するとデータを送信するサーバーとして機能し、クライアントはその「マウスサーバー」に「接続」して情報を待ちます。

これはLinuxで非常に一般的であるため、すべてのネットワーク接続に許可を求める「ファイアウォール」を作成すると、独自のサーバーに接続できなかったため、おそらく構成できません。

これはすべて非常に大まかな例であり、その一部は非常に高レベルであるため誤解を招く可能性があります。しかし、それはまだ非常に真実です。

これに対してLinuxユーザーを保護するために、非常に優れた「基本」ジョブを実行する2つの非常に基本的なルールのセットがあります。

1つ目は、ルート以外のユーザーは1024未満のポートを開くことはできません(これも非常に高いレベルです)。これは、(標準ポートで)FTPサーバーを実行する場合でも、rootアクセスが必要であることを意味します。ユーザーとしてのあなたは通常「ハイポート」(1024以上)を開くことができます。ただし、ルール2を参照してください。

2番目。プロセスを開始するユーザーがアクセスできなかったファイルにアクセスできるプロセスはありません。(再び非常に高いレベル)したがって、「coteyr」がFTPサーバーを起動する場合、最悪の場合(高レベル)のFTPサーバーは、それを起動したユーザーcoteyrとまったく同じアクセス権しか持ちません。

これら2つのルールの組み合わせにより、ファイアウォールに接続しようとするたびに尋ねる「ソフトウェア」が邪魔になり、あまり需要がありません。

つまり、いつでもアウトバウンドファイアウォールルールを作成できます。多くの場合、これはおそらく悪い考えではありません。多くのサービスは、ネットワークベースのソケットではなく、ファイルベースのソケット(またはメモリベース)を使用するように構成できます(デフォルトで構成されています)。

通常、インバウンドファイアウォールルールは、ルール1または2によって残された奇数のギャップを埋めます。

私のポイントはこれです。セキュリティは重要であり、そうではないと言っているわけではありません。Linuxランドでは、さまざまなツールと目標があります。Linuxのユーザーとグループの許可を調べ、gfwやIPTABLESなどのツールを使用してギャップを埋めることをお勧めします。


3
>プロセスは、プロセスを開始するユーザーがアクセスできなかったファイルにアクセスできません。これは、Windowsの場合と同じです。OSの違いではありません。正直なところ、すべてのループバック接続を許可した場合、そのようなファイアウォールは同じマシン上のTCPクライアント/サーバーアプリケーションと干渉しません。ネットワークアクセスのみを制御するものを設定することは完全に可能です。(。あなたはWindows9x系を実行している場合を除きまた、WindowsのACLがあり、伝統的なUnixの権限よりも何も、より強力な再びネットワークを制限するとはほとんどを持っている場合。。)
ボブ・

1
実際には、答えをもう一度読んでいます...よく知られているポートを使用できないことが関連するのかわかりません-それはシステムサービスのマスキングを防ぐのに役立つだけです(たとえばsshd、22になりすます)が、質問はデータの流出についてさらに質問する。これはほぼ完全に発信接続であり、バインドが許可されているポートとはほとんど関係ありません。
ボブ

1
まず、ゾーンアラームと同じように機能する発信ファイアウォールは存在しません。Linuxは単にそれを必要としないだけです。IPテーブルは出て行くだけでなく出て行くことも制御します。実際に知らないことは言わないでください。
djsmiley2k-CoW

こんにちはHonza、私の「宿題」ツアー中に、あなたのような答えを何度か見ました。そして、私はそれをいくらか理解していますが、...そして大きな「しかし」です...私が探しているものではありません...ポート、低露出(プラットフォームの低普及による)を理解していますあなたが言及した他のすべての概念...しかし、私が探しているのは、コンピュータ自体の外で私のコンピュータが何をしているのかを簡単な方法で理解することです(例:zonealarm)。(Xorg / gedit、何をするためにインターネットに行く必要がありますか?もしそうなら、なぜ/いつ/どこで知りたいですか?
-jonabrv1965

その後、もう少し掘り下げます。してみてくださいnetstat今私のボックスには、1354のオープン接続を持っています。それらの65はネットワーク接続です。それは私にとっては非常に低い数字です(誰もがそうだとは言いません)が、それらの接続のそれぞれが何をするのかを見つけようとするでしょう。先ほど言ったように、セキュリティが重要ではないということではなく、まったく異なる環境です。
coteyr
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.