UFWが有効になっていない場合でも、設定されたファイアウォールルールを一覧表示できるかどうか疑問に思っています。現時点では、サーバーへのsshアクセス権しかありません。sshを許可するように構成されたルールがない場合、UFWを有効にしたくありません。ただし、UFWは現在有効になっていないため、「ufw status」を実行すると「inactive」メッセージが表示されます。
使用できる特別なフラグや、ファイアウォールが無効になっている場合でも設定されているルールを確認できる設定ファイルがありますか?
現在、CLIコマンドでファイアウォールを有効にする前に入力したルールを表示する方法はありません。ただし、ルールファイルを直接検査できます。 /lib/ufw/user*.rulesには、「ufw」CLIコマンドで制御されるルールが含まれています。例えば:
$ Sudo grep '^### Tuple' /lib/ufw/user*.rules
これにより、次のような出力が表示されます( 'Sudo ufw allow OpenSSHで追加されたルールの場合):
/lib/ufw/user.rules:### Tuple ### allow tcp 22 0.0.0.0/0 any 0.0.0.0/0 OpenSSH - in
「タプル」は、ルールを追跡するためにufwによって内部的に使用される省略形であり、次のいずれかとして解釈できます。
### Tuple ### <action> <proto> <dst port> <dst> <src port> <src> <direction>
### Tuple ### <action> <proto> <dst port> <dst> <src port> <src> <dst app name> <src app name> <direction>
これをサポートするために別のステータスコマンドを追加できると便利な場合があります。バグの提出を検討してください。
ufw show added
コマンドがあり、ファイアウォールが非アクティブであっても設定されたルールをリストします。 このバグレポート の修正として追加され、v0.33で追加されました
だから今できること:
# ufw status
Status: inactive
# ufw allow ssh
Rules updated
Rules updated (v6)
# ufw show added
Added user rules (see 'ufw status' for running firewall):
ufw allow 22
# ufw enable
Firewall is active and enabled on system startup
# ufw status
Status: active
To Action From
-- ------ ----
22 ALLOW Anywhere
22 (v6) ALLOW Anywhere (v6)
ufw show added
からの出力の形式により、各ルールに対しても削除コマンドを簡単に作成できます。
一般的なルールは/etc/ufw
にあります。ユーザー定義のルールは/lib/ufw/user*
にあります。
Ubuntu 16.04では、ユーザー定義のルールは/etc/ufw/user.rules
に保存されます。したがって、次のルールを確認できます。
Sudo cat /etc/ufw/user.rules
コマンドラインからは、方法はないようです。ただし、Ubuntuボックスから(Ubuntuボックスに)SSHを使用している場合は、少し複雑な方法を試してみてください。
基本的に、リモートボックスにgufwをインストールし、X転送で接続してGUIを実行します。
リモートデバイスで、オプションとして-X
で接続した後:
Sudo apt-get install gufw
Sudo gufw
これにより、ルールセットをアクティブにせずに表示されます。
リモートデバイスが真の「ヘッドレス」サーバーである場合、GUFWをインストールすると、不快な数の依存関係がプルダウンされる可能性があることに注意してください。ただし、ここで誰かがUFWに最初にアクティベートせずに必要な出力を表示させるためのトリックを知っていない限り、これが唯一のオプションかもしれません。
Sudo ufw show raw
を試しましたが、それはiptablesの出力を示しています。