私はUFWを起動する2つの方法、すなわちsystemctlとufw自体を知っています。たとえば、次を使用する場合systemctl enable ufw
:
systemctl status ufw
● ufw.service - CLI Netfilter Manager
Loaded: loaded (/usr/lib/systemd/system/ufw.service; enabled; vendor preset:>
Active: active (exited) since Sun 2019-12-01 12:34:29 +05; 6min ago
しかし、ufw自身はこう言いました。
ufw status verbose
Status: inactive
私はそれを通してルールを見ることができず、GUFWユーティリティはUFWが非アクティブであると言います。しかし、これを行うと:
systemctl disable ufw
systemctl stop ufw
ufw enable
ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
その後、GUFW を使用し、UFW ユーティリティで詳細な状態とルールを表示できます。
もしそうなら、systemctlで始まるものとufw自体で始まるものとの違いは何ですか?正しい方法は何ですか?
答え1
これを実行しufw enable
てsystemctl disable ufw
からシステムを再起動すると、ufw status verbose
再起動後の出力はどうなりますか?
そうだと思いますinactive
。
これが真であれば、説明は次のようになります。
ufw enable
=今すぐファイアウォールルールを有効にし、今からファイアウォールを有効にするのが望ましい状態であることを記録します。 (ファイアウォール管理デーモンが必要な場合は自動的に起動します。)ufw disable
=ファイアウォールルールをすぐに無効にし、そうでない場合は、ファイアウォールを無効にすることを望む状態であることを記録します。systemctl start ufw
=以前に記録された希望のファイアウォール状態を復元します(必要な状態がファイアウォールを無効にすることである場合は、アクションは必要ありません)。また、必要に応じてファイアウォール管理デーモンを起動して、管理プロセスがsystemd
ユーザーセッションに属さないバックグラウンドプロセスとして認識されるようにします。ファイアウォールを永久に有効にするには、起動時に自動的に有効にしたいと思います。返品設定されましたufw enable
。systemctl stop ufw
= ファイアウォール管理デーモンを停止します。既存のファイアウォールルールを無効にしたり無効にしたりすることはできません(そのルールとは別に、カーネルに適用される実際のルールを使用または確認してくださいiptables -vnL
)。nft list tables
ufw
systemctl enable ufw
=以降、再起動時に起動systemctl start ufw
プロセスの一部として自動的に実行されます。systemctl disable ufw
=以降の再起動時にファイアウォールの状態を復元したり、ファイアウォール管理デーモンを自動的に起動したりしないでください。ファイアウォールルールがまったくないカーネルのデフォルトを採用してください。
たとえば、リモートで新しいファイアウォールルールを設定し、自分自身をロックしないようにする必要がある場合は、systemctl disable ufw
約15分後に自動的に再起動するように設定してから、ルールを追加して使用できますufw enable
。システムに引き続き接続できる場合は、リモートアクセスに関する限り、ルールは正しいです。これにより、systemctl enable ufw
再起動後もルールが有効になり、スケジュールされた再起動タスクを削除できます。
ただし、誤ってアクセスできなくなった場合は、再起動操作がトリガーされるのを待つと、システムにファイアウォールルールがないため、再度ログインしてsystemctl disable ufw
ルール設定を変更できます。