web-dev-qa-db-ja.com

UFW:正確には何ですか?

UFWとは何ですか?これは簡単な質問だと思うかもしれませんが、私が読む情報源が多くなればなるほど、はっきりしなくなります。

Ufwwが実際にファイアウォール自体を実装するかのように、頭字語はUncomplicated FireWallを表します。そして実際、多くの場所で この記事 のように、それ自体がファイアウォールと呼ばれています。

FWのUbuntuヘルプwikiページ は、UFWがiptablesの設定ツールであることを示しています。 ( ファイアウォールのヘルプwikiページ は、iptablesがファイアウォールルールのデータベースであり、データベースがファイアウォールであるかのように実際のファイアウォールでもあることを示しています。これは明らかに偽です。もちろん、「iptables」はプログラムの名前でもあります。)

Ufwが設定ツールである場合、何かを設定するために実行するプログラムであると予想される場合があります。設定が完了したら、設定が確立されて終了します。それが、この質問の受け入れられた答えの位置です。 複雑でないFireWall(ufw)はサービスですか?

しかし、その質問に対する他の答えは同意しません-いいえ、それはサービスです。実際、18.04マシンでは、ufwがサービスとして実行されていることがわかります。構成ツールがサービスとして実行されるのはなぜですか?!

さらに、systemctl list-units --all --type=serviceufw.serviceloaded and active(およびexited ?!)であることを示しますが、ufw statusinactiveを示します。

では、ufw status = inactiveはどういう意味ですか?

  1. その「ファイアウォール」(それが何であれ)は非アクティブですか?それが fwのmanページ 'status'のドキュメントが示唆することです。

  2. または、ufwで構成されたルールが非アクティブであることを意味します(ただし、iptablesで構成されたルールはアクティブです)。

  3. それとも、ufwが起動時に起動し、そのルールをipconfig(またはどこに行っても)に記載し、それらが有効になり、現在ufwが無効になっているということですか?

特に興味深いのは、いくつかのiptablesコマンドの発行を必要とするいくつかの指示に従うことですが、それらがufw装置と競合するか、上書きされることを懸念しています。

13
gwideman

ufwは、インターネットトラフィックをルーティングおよびフィルタリングするためのLinuxメカニズムであるnetfilter/iptablesのフロントエンドです。

ufwは完全にオプションであり、iptablesコマンドを使用してファイアウォールとルーティングテーブルを直接作成することができます。 ufwの構文を好む人もいますが、これは少し簡単になるはずです。

ufw自体はファイアウォールではなく、netfilter/iptablesの構成を設定するためのツールです。マシンを起動するたびに実行する必要があるため、サービスとして登録されます。この構成を行った後、メモリに常駐するとは思わない。サービスを「再起動」すると、スクリプトが再実行されます。 Linuxディストリビューション内のものがサービスとして登録されることは珍しくありませんが、それらは単にブートまたはシャットダウン時に実行されるスクリプトであり、その間に常駐することはありません。

Ufwを使用する場合、独自のスクリプトを使用して独自のiptablesルールを設定することはできません。これは、ufwが独自のスクリプトを設定すると上書きされるためです。これは、UFWがファイアウォールルールを設定する他のツールと競合する可能性があることも意味します。

Sudo ufw statusが「inactive」を返す場合、ufwが無効になっていることを意味します(たとえば、起動時にルールを再適用しません)。 Sudo ufw enableでufwが有効になっていることを確認する必要がありますが、これに意味を持たせるためのルールも設定する必要があります。 ufwを有効にしたが、「inactive」が返されると確信している場合は、他の問題がある可能性があります。

サービスを「開始」してもufwは有効にならず、起動スクリプトがアクティブになるだけです。起動スクリプトの実行時にufwが無効になっている場合、何も実行されません。

Iptablesを直接使用して、ファイアウォールルールがいつでも適用されているかどうかを確認できます。

Sudo iptables -L
Sudo ip6tables -L
22
thomasrutter