rule

モード
ファイアウォールモード
カテゴリー
UTM / ファイアウォール

構文

コマンド構文

(config-firewall)# rule [<1-65535>] ACTION {APPNAME|any} from SRC_ENTITY to DST_ENTITY [no-state-enforcement] [log]

(config-firewall)# no rule {<1-65535>|all}

コマンド説明

ファイアウォールにルールを追加する。
no形式で実行した場合は指定したルールを削除する。

ファイアウォール機能を有効化しただけで、まだ1つもルールを登録していない場合は、すべてのトラフィックが遮断される。
このデフォルト動作をベースとして、必要なトラフィックを通過させるためのルールを本コマンドで登録していくのがファイアウォールの基本的な設定方法となる。

ルールの指定にはエンティティーとアプリケーションの両定義を使用するが、これらの定義が不完全な場合(指定したアプリケーションやエンティティーが未定義である、アプリケーション定義でIPプロトコルが未指定、など)、該当ルールは有効にならないので注意。ルールが有効化どうかは、show firewall rule config-checkコマンドでチェックできる。

なお、ルールの順番はmove ruleコマンドで変更可能。

パラメーター

<1-65535>
ルール番号。省略時はリストの最後尾に新規ルールが追加される。このときのルール番号決定方法については「注意・補足事項」を参照
ACTION := {permit|deny|reject|log}
アクション
permit
許可
deny
破棄(送信元にエラーを返さない)
reject
拒否(送信元にエラーを返す)
log
ログを記録(パケットごとにログを取る)。なお、特別な理由がないかぎり、本アクションよりもlogオプションのほうを推奨する
APPNAME
制御対象のアプリケーション名。指定可能なアプリケーションはshow application detailで確認可能。詳細は解説編を参照
any
すべてのトラフィックを制御対象にする
from SRC_ENTITY
送信元エンティティー名(show entityで一覧表示可能)
to DST_ENTITY
宛先エンティティー名(show entityで一覧表示可能)
no-state-enforcement
端末間で送受信されるトラフィックの経路が一定でない環境や、端末間の接続は確立済みだが一定期間(ファイアウォールセッション保持時間)内に通信が発生しない状況において、該当トラフィックがブロックされないようにするためのオプション。ただし、本オプションは外部ネットワーク(インターネット等)とのトラフィックを制御するルールには使用しないこと
log
アクションを実行するだけでなくログにも記録したいときに指定する(セッションの最初のパケットだけログを取る)
all
no形式ですべてのルールを削除するときに指定する

使用例

ゾーン「private」から「public」への通信をすべて許可する。
awplus(config-firewall)# rule permit any from private to public

ゾーン「private」内の通信をすべて許可する。
ゾーン「private」内に複数のサブネットが存在する場合だけでなく、ゾーン「private」内のホストから「private」に属する本製品のインターフェースへのアクセス(Telnet/SSHなど)を許可する場合にもこのルールが必要。
awplus(config-firewall)# rule permit any from private to private

ゾーン「public」から「private」に対するOpenVPNの通信を許可する。
awplus(config-firewall)# rule permit openvpn from public to private

ゾーン「private」から「public」へのWindowsネットワーク通信を破棄し、ログを記録する。
awplus(config-firewall)# rule deny samba-tcp from private to public log
awplus(config-firewall)# rule deny samba-udp from private to public log

ファイアウォールルール「10」を削除する。ルール番号はshow firewall ruleコマンドで確認できる。
awplus(config-firewall)# no rule 10

すべてのファイアウォールルールを削除する。
awplus(config-firewall)# no rule all

注意・補足事項

ファイアウォールルール(本コマンド)とファイアウォールセッションリミットルール(connection-limit)のルール番号は独立しており関係がない。

ルールの処理順序については解説編を参照。

本コマンドでルール番号を指定しなかったときはリストの最後尾に新規ルールが追加される。このときのルール番号は次のようにして決まる。


ファイアウォールルールのログを取得したい場合は、logアクションではなくlogオプションのほうを推奨。

logアクションはパケットの転送可否とは関係なく、純粋にログを取るだけのアクション。
ファイアウォールのデフォルト動作は「すべて拒否」であるため、[例1] のようにlogアクションのルールしか存在しない場合、ゾーン「branch」から「private」へのSSHパケットは、このルールによりログに記録された後、デフォルト動作によって破棄される。

[例1]
rule log ssh from branch to private

ただし、前述のとおり logアクションはパケットを破棄するわけではないため、[例2] のようにlogアクションの次に同じ条件のpermitアクションのルールがあれば、該当パケットはログに記録された後、通過を許可される。

[例2]
rule log ssh from branch to private
rule permit ssh from branch to private

なお、[例2] のように logアクションと permitアクションのルールを分けた場合と、次の [例3] のようにpermitアクションのルールに logオプションを付けた場合ではログ記録の動作が異なる。

[例3]
rule permit ssh from branch to private log

[例2] では logアクションにより該当する SSH パケット1個1個のログが記録されるのに対し、
[例3] では permitアクションによって許可されたSSH セッションの最初のパケットだけがログに記録される。

同一ルール内でlogアクションとlogオプションを併用した場合は、logアクション(パケットごとにログを取る)の動作となる。

アプリケーションコントロール(DPI)機能では、各アプリケーション固有の通信パターンを検出するために一定量のパケットを受信してそのデータ部分を検査する必要があるが、ファイアウォールはその仕様として初期設定ですべてのパケットを破棄するため、ファイアウォールとアプリケーションコントロール(DPI)を併用する場合は注意が必要。詳しくは「UTM」/「アプリケーションコントロール(DPI)」を参照。

既存のルールを変更したときに、変更前のルールに該当するセッション情報がすでに登録されている場合は、clear firewall connectionsコマンドで古いセッション情報を削除すること。

no-state-enforcementパラメーターを含むファイアウォールルールにマッチする通信には、ファイアウォールセッションリミットルール(connection-limit)は適用されない。

コマンドツリー

関連コマンド