私はLinuxの世界に非常に慣れていないことを告白しなければなりません。また、私にはあまり馴染みのない概念があります。
私が最も見逃しているのは、優れたシンプルなアプリケーションレベルのファイアウォールです。現在、インターネットへのこのような侵入的で永続的な接続がすべてあるので、コンピューターが何を、なぜ、誰と正確に行っているのかを知る必要があります。プロトコルアナライザーは大丈夫ですが、使い勝手が悪く、「分析」するには時間がかかりすぎるため、ホームユーザーにとっては実用的ではありません。
私は、インターネットに接続すべきではないが、Windows環境で多くのプログラムを発見しましたが、それらは接続します(そして、ZoneAlarmの無料ファイアウォールでそれらを停止できます)。
Gufw(および他のいくつか)では、どのアプリを既にインストールしているのかを知る必要があります(そして、これは数十億のコード行を持つこの最新のOSではほとんど不可能であることを知っています)。
私が探しているのは、NIC/WAN接続を監視し、使用しようとしているポートに関係なく、プログラム/アプリまたはそれを「トーク」しようとするものを検出するファイアウォールです(前述のアプリの接続が必要ですよく知られているTCPポートの使用:80、443、8080)。これは存在しますか? (そうでない場合は、コンピューターが何をしているのかを確実に知る方法は?)
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+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ウィンドウに許可を求めるウィンドウが表示されます。
OpenSnitchと呼ばれる新しいプロジェクトがあります。
プロジェクトページは https://www.opensnitch.io/ です
この時点で、それはアルファソフトウェアと見なされ、奇妙なことにPythonで書かれていますが、少なくとも新しい試みですが、Douaneは非常に古いプログラムであり、インストールがはるかに難しいと思います。
免責事項:私はどちらのプログラムも個人的にはテストしていません。他のオプションがあるかどうかを調べようとしており、ここでOpenSnitchについてまだ言及していないことに気付きました。
これは本当に良い質問ですが、このような質問は嫌いです。セキュリティが重要ではないと言って抜けることなく答えるのは本当に難しいからです。
まず最初に、セキュリティは重要ですが、LinuxはWindowsとは非常に異なる方法で処理します。
だからあなたの質問に取り組むことができます。
まず、ゾーンアラームと同じように機能する発信ファイアウォールは存在しません。 Linuxは単純にそれを大いに必要としません。同じマシンで使用している場合でも、多くのアプリケーションはクライアント/サーバーアーキテクチャで動作します。 Xorgは素晴らしい例です。まず、サーバー(この場合は画面に描画する部分)があり、クライアント(gedit)geditはサーバーにボタンの描画、テキストの配置などについて話します。マウスのような単純なOSでも、この同じアーキテクチャを持っています(または持つことができます)。プログラムは、情報をリッスンし、データを取得するとデータを送信するサーバーとして機能し、クライアントはその「マウスサーバー」に「接続」して情報を待ちます。
これはLinuxで非常に普及しているため、すべてのネットワーク接続に許可を求める「ファイアウォール」を作成する場合、独自のサーバーに接続できなかったため、おそらく構成できません。
これはすべて非常に大まかな例であり、その一部は非常に高レベルであるため誤解を招く可能性があります。しかし、それはまだ非常に真実です。
これに対してLinuxユーザーを保護するために、非常に優れた「基本」ジョブを実行する2つの非常に基本的なルールのセットがあります。
まず、root以外のユーザーは1024未満のポートを開くことができません(これも非常に高いレベルです)。これは、(標準ポートで)FTPサーバーを実行する場合でも、rootアクセスが必要であることを意味します。ユーザーとしてのあなたは通常「ハイポート」(1024以上)を開くことができます。ただし、ルール2を参照してください。
2番目。プロセスを開始しているユーザーがアクセスできなかったファイルにアクセスできるプロセスはありません。 (再び非常に高いレベル)したがって、「coteyr」がFTPサーバーを起動する場合、最悪の場合(高レベル)のFTPサーバーは、それを起動したユーザーcoteyrとまったく同じアクセス権しか持ちません。
これら2つのルールの組み合わせにより、ファイアウォールに接続しようとするたびに尋ねる「ソフトウェア」が邪魔になり、あまり需要がありません。
つまり、いつでもアウトバウンドファイアウォールルールを作成できます。多くの場合、これはおそらく悪い考えではありません。多くのサービスは、ネットワークベースのソケットではなく、ファイルベースのソケット(またはメモリベース)を使用するように構成できます(デフォルトで構成されています)。
通常、インバウンドファイアウォールルールは、ルール1または2によって残された奇数のギャップを埋めます。
私のポイントはこれです。セキュリティは重要であり、そうではないと言っているわけではありません。Linuxの世界では、さまざまなツールと目標があります。 Linuxユーザーとグループのアクセス許可を調べ、gfwやIPTABLESなどのツールを使用してギャップを埋めることをお勧めします。