DNS インスペクション
DNS インスペクションはデフォルトでイネーブルになっています。デフォルト以外の処理が必要な場合にのみ設定する必要があります。ここでは、DNS アプリケーション インスペクションについて説明します。
DNS インスペクションのデフォルト
DNS インスペクションは、次のような preset_dns_map インスペクション クラス マップを使用して、デフォルトでイネーブルになっています。
-
最大 DNS メッセージ長は、512 バイトです。
-
最大クライアント DNS メッセージ長は、リソース レコードに一致するように自動的に設定されます。
-
DNS ガードはイネーブルになり、ASA によって DNS 応答が転送されるとすぐに、ASA は DNS クエリに関連付けられている DNS セッションを切断します。ASA はまた、メッセージ交換をモニタして DNS 応答の ID が DNS クエリの ID と一致することを確認します。
-
NAT の設定に基づく DNS レコードの変換はイネーブルです。
-
プロトコルの強制はイネーブルであり、DNS メッセージ形式チェックが行われます。ドメイン名の長さが 255 文字以下、ラベルの長さが 63 文字、圧縮、ループ ポインタのチェックなどです。
次のデフォルトの DNS インスペクション コマンドを参照してください。
class-map inspection_default
match default-inspection-traffic
policy-map type inspect dns preset_dns_map
parameters
message-length maximum client auto
message-length maximum 512
dns-guard
protocol-enforcement
nat-rewrite
policy-map global_policy
class inspection_default
inspect dns preset_dns_map
! ...
service-policy global_policy global
DNS インスペクション ポリシー マップの設定
デフォルトのインスペクション動作がネットワークにとって十分でない場合、DNS インスペクション ポリシー マップを作成して DNS インスペクション アクションをカスタマイズできます。
始める前に
一部のトラフィック照合オプションでは、照合のために正規表現を使用します。これらのテクニックの 1 つを使用する場合は、最初に正規表現または正規表現のクラス マップを作成します。
手順
ステップ 1 |
(任意)次の手順に従って、DNS インスペクションのクラス マップを作成します。 クラス マップは複数のトラフィックとの照合をグループ化します。または、match コマンドを直接ポリシー マップに指定できます。クラス マップを作成することとインスペクション ポリシー マップでトラフィックとの照合を直接定義することの違いは、クラス マップでは複雑な照合基準を作成でき、クラス マップを再利用できるということです。 クラス マップと照合しないトラフィックを指定するには、match not コマンドを使用します。たとえば、match not コマンドで文字列「example.com」を指定すると、「example.com」が含まれるすべてのトラフィックはクラス マップと照合されません。 このクラス マップで指定するトラフィックに対しては、インスペクション ポリシー マップでトラフィックに対して実行するアクションを指定します。 match コマンドごとに異なるアクションを実行する場合、ポリシー マップに直接トラフィックを特定する必要があります。 |
ステップ 2 |
DNS インスペクション ポリシー マップを作成します。policy-map type inspect dns policy_map_name policy_map_name には、ポリシー マップの名前を指定します。CLI はポリシー マップ コンフィギュレーション モードに入ります。 |
ステップ 3 |
(任意)説明をポリシー マップに追加します。description string |
ステップ 4 |
一致したトラフィックにアクションを適用するには、次の手順を実行します。 |
ステップ 5 |
インスペクション エンジンに影響のあるパラメータを設定するには、次の手順を実行します。 |
例
次の例では、グローバル デフォルト設定で新しいインスペクション ポリシー マップを使用する方法を示します。
regex domain_example “example\.com”
regex domain_foo “foo\.com”
! define the domain names that the server serves
class-map type inspect regex match-any my_domains
match regex domain_example
match regex domain_foo
! Define a DNS map for query only
class-map type inspect dns match-all pub_server_map
match not header-flag QR
match question
match not domain-name regex class my_domains
policy-map type inspect dns new_dns_map
class pub_server_map
drop log
match header-flag RD
mask log
parameters
message-length maximum client auto
message-length maximum 512
dns-guard
protocol-enforcement
nat-rewrite
policy-map global_policy
class inspection_default
no inspect dns preset_dns_map
inspect dns new_dns_map
service-policy global_policy global
次のタスク
マップを使用するためのインスペクション ポリシーを設定できるようになりました。「アプリケーション レイヤ プロトコル インスペクションの設定」を参照してください。