
正直に言うと、私は Linux の世界に非常に不慣れで、私にとって非常に馴染みのない概念がいくつかあります。
私が最も懐かしく思うのは、優れてはいるがシンプルなアプリケーション レベルのファイアウォールです。現在、インターネットへの侵入的で永続的な接続が広く普及しているため、コンピュータが何を、なぜ、誰とやっているのかを正確に知ることは必須です。プロトコル アナライザーは問題ありませんが、使いにくく、時間がかかりすぎるため、家庭ユーザーにとってはほとんど役に立ちません。
Windows 環境では、インターネットに接続すべきではないのに接続しているプログラムが多数あることを発見しました (ZoneAlarm の無料ファイアウォールを使用すると、それらを停止できます)。
Gufw (および他のいくつかのアプリ) では、どのアプリがすでにインストールされているかを知る必要があります (数十億のコード行があるこの最新の OS では、これがほぼ不可能であることはわかっています)。
私が探しているのは、使用しようとしているポートに関係なく、NIC/WAN 接続を監視し、それを介して「通信」しようとしているプログラム/アプリなどを積極的に検出するファイアウォールです (前述のアプリは、よく知られている TCP ポート 80、443、8080 を使用して接続しようとします)。これは存在しますか? (存在しない場合、コンピューターで何が起こっているかを確実に知るにはどうすればよいでしょうか?)
答え1
Douane は、GNU/Linux コンピュータからインターネットに接続できるアプリケーションをユーザーが制御できるようにすることで、ユーザーのプライバシーを保護するパーソナル ファイアウォールです。
インストール
現在 (2017/05/22) まで、Ubuntu パッケージは利用できません。ソースからビルドする必要があります。
これらのインストール手順は、ドゥアンウィキ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 ウィンドウが表示されます。
答え2
OpenSnitchと呼ばれる新しいプロジェクトがあります。
プロジェクトページはhttps://www.opensnitch.io/
現時点ではアルファ ソフトウェアと見なされており、奇妙なことに Python で書かれていますが、少なくとも新鮮な試みです。一方、Douane は非常に古いプログラムであり、インストールがはるかに難しいと思います。
免責事項: 私はどちらのプログラムも個人的にテストしていません。他のオプションがあるかどうかを調べようとしただけで、ここではまだ誰も OpenSnitch について言及していないことに気付きました。
答え3
これは本当に良い質問ですが、セキュリティは重要ではないと言っているように受け取られずに答えるのが非常に難しいため、このような質問は嫌いです。
まず、セキュリティは重要ですが、Linux ではセキュリティの処理方法が Windows とはまったく異なるということを述べておきます。
それではあなたの質問に取り組みましょう。
まず、Zone Alarm と同じように動作する送信ファイアウォールは存在しません。Linux では、単純にファイアウォールの必要性があまりありません。多くのアプリケーションは、同じマシン上で使用していても、クライアント/サーバー アーキテクチャで動作します。Xorg は良い例です。まず、サーバー (この場合は画面に描画する部分) とクライアント (gedit) があります。gedit はサーバーと通信して、ボタンの描画、テキストの配置などを行います。マウスのような単純なものでも、同じアーキテクチャを持っています (または持っている可能性があります)。プログラムはサーバーとして機能し、情報をリッスンして、データを取得すると送信します。次に、クライアントはその「マウス サーバー」に「接続」して情報を待ちます。
これは Linux で非常に普及しているため、すべてのネットワーク接続に対して許可を求める「ファイアウォール」を作成した場合、独自のサーバーに接続できないため、おそらく構成できないでしょう。
これはすべて非常に大まかな例であり、非常に高度なため、一部は誤解を招く可能性があります。しかし、それでも非常に真実です。
Linux ユーザーをこのような事態から守るために、非常に優れた「基本的な」役割を果たす 2 つの非常に基本的なルールが用意されています。
まず、ルート以外のユーザーは 1024 未満のポートを開くことはできません (これも非常に高いレベルです)。つまり、FTP サーバー (標準ポート) を実行する場合であっても、ルート アクセスが必要です。ユーザーは通常、「高いポート」(1024 を超えるポート) を開くことができます。ただし、ルール 2 を参照してください。
2 番目。プロセスを開始したユーザーがアクセスできなかったファイルには、どのプロセスもアクセスできません (これも非常に高レベル)。したがって、「coteyr」が FTP サーバーを開始した場合、最悪の場合 (高レベル) では、その FTP サーバーは、それを開始したユーザー coteyr とまったく同じアクセス権しか持ちません。
これら 2 つのルールの組み合わせにより、ファイアウォールに接続しようとするたびに確認を求める「ソフトウェア」は邪魔になるだけであり、需要はあまりありません。
そうは言っても、送信ファイアウォール ルールはいつでも作成できますし、多くの場合、これは悪い考えではないでしょう。多くのサービスは、ネットワーク ベースのソケットではなく、ファイル ベースのソケット (またはメモリ ベース) を使用するように構成できます (デフォルトではそのように構成されています)。
通常、受信ファイアウォール ルールは、ルール 1 または 2 によって残された奇妙なギャップを閉じます。
私が言いたいのは、セキュリティは重要であり、重要ではないと言っているわけではありません。Linux の世界では、ツールや目標が異なるだけです。Linux のユーザーとグループの権限を調べ、gfw や IPTABLES などのツールを使用してギャップを埋めることをお勧めします。
答え4
ここでの回答で言及されたOpenSnitchは、現在は開発中ではない. そこにはフォークただし、開発は継続されており、現在メンテナンスされていない OpenSnitch に比べて多くの点で改善されています。
元のプロジェクトと同様に、OpenSnitch フォークは、デーモン (Go で記述) と GUI (PyQt5) で構成された、Linux 用の無料オープン ソース アプリケーション レベル ファイアウォールです。また、元のプロジェクトと同様に、このフォークは開発中であり、プロジェクト ページには「バグがないことを期待しないでください。また、いかなる種類のセキュリティにも依存しないでください」というメッセージが表示されます。
このアプリケーションは、アプリケーションが確立しようとしている送信接続を監視し、一連のルールに基づいて接続を防止または許可します (既存のルールが見つからない場合は、ユーザーにアクセスを許可または拒否するように求められます)。このアプリケーションは、macOS 用の商用ホストベースのアプリケーション ファイアウォールである Little Snitch にヒントを得ています。
Ubuntuの場合、プロジェクトからダウンロードできるDEBパッケージがあります。GitHub。
ソース。