キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ASA: show local-host コマンドの活用例

 


 

1. はじめに

show local-host コマンドで、ASAの持つローカルホストテーブルを確認できますが、各種オプションやIPアドレス指定と 組み合わせる事で、以下の調査に活用できます。

    • ASAの処理リソース(Connection/Xlate)を占有するホストの確認
    • SYNやUDPフラッド攻撃の、攻撃者と被害者の確認
    • 指定ホストの コネクションやXlateエントリの確認


本ドキュメントでは、実環境での調査に役立つ コマンドとオプションの組み合わせ例について、試験構成での実際の出力結果を交え、紹介いたします。

本ドキュメントは、ASA software version 9.4(1)を用いて確認、作成しております。

 

tipTip:
オプションやIPアドレスを指定せず show local-host コマンドを実行した場合、各ホストのコネクションとXlateエントリを表示する為、利用環境によっては、膨大な出力となります。 利用環境と調査計画に応じて、briefconnectionオプションや、|(パイプ)を活用し、出力量を調整することが重要です。

また、中~大規模な環境でASAを利用の場合は特に、多量の出力となる事を予想しますため、低速なConsole経由は避け、telnetやSSH経由でCLIを実行してください。

 

 

2. 構成例

本ドキュメントでは、以下の通信構成の、実際のASAの出力結果を元に紹介します。


Client-01は、公開FTPサーバに FTP(TCP=21)接続中です。

Client-02は、公開HTTPサーバに HTTP(TCP=80)のSYNフラッド攻撃を行っています。毎秒10個の不完全なコネクション(embryonic connections)を生成しています。


 

3. コマンド構文

 show local-host [IP address] [brief] [detail] [all] [connection {tcp start[-end] | udp start[-end ] | embryonic start[-end]}]

 IP address  指定のIPアドレスのホストの情報を表示
 brief  簡潔な情報を表示
 detail  より細かなコネクションとXlatesの情報を含む、詳細なネットワーク状態を表示
 all  ASA宛とASAからを含む情報を表示
 connection  TCP、UDPとembryonicのコネクション数に応じたフィルタ

         

 

4. コマンド実行例

4.1. Interface毎の各ホストのコネクション数の確認

asa5506# show local-host brief

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 4 active, 7 maximum active, 0 denied
local host: <192.168.1.12>,
    TCP flow count/limit = 297/unlimited  <---- 大量のコネクション(≒攻撃者の疑い)
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 1/unlimited
local host: <192.168.1.241>,
    TCP flow count/limit = 1/unlimited
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
local host: <192.168.1.11>,
    TCP flow count/limit = 2/unlimited
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
Interface outside: 2 active, 153 maximum active, 0 denied
local host: <1.0.0.102>,
    TCP flow count/limit = 297/unlimited
    TCP embryonic count to host = 297   <---- 当ホスト宛の多数の不完全なTCPコネクション(≒被害者)
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
local host: <1.0.0.101>,
    TCP flow count/limit = 2/unlimited
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
Interface any: 0 active, 0 maximum active, 0 denied

 

4.2. 各ホストのTCP/UDPコネクション数の確認

4.1.に比べ、出力数が減り、各ホストのTCP/UDPコネクション数の確認が容易

asa5506# show local-host brief | in host:|count/limit
local host: <192.168.1.12>,
    TCP flow count/limit = 297/unlimited
    UDP flow count/limit = 0/unlimited
local host: <192.168.1.241>,
    TCP flow count/limit = 1/unlimited
    UDP flow count/limit = 0/unlimited
local host: <192.168.1.11>,
    TCP flow count/limit = 2/unlimited
    UDP flow count/limit = 0/unlimited
local host: <1.0.0.102>,
    TCP flow count/limit = 297/unlimited
    UDP flow count/limit = 0/unlimited
local host: <1.0.0.101>,
    TCP flow count/limit = 2/unlimited
    UDP flow count/limit = 0/unlimited

 

4.3. TCPコネクションを 1~15個まで 持つホストの表示

asa5506# show local-host brief connection tcp 1-15

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 4 active, 7 maximum active, 0 denied
local host: <192.168.1.241>,
    TCP flow count/limit = 1/unlimited   <---- 1~15個までのTCPコネクションを持つホストの出力
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
local host: <192.168.1.11>,
    TCP flow count/limit = 2/unlimited   <---- 1~15個までのTCPコネクションを持つホストの出力
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
Interface outside: 3 active, 153 maximum active, 0 denied
local host: <1.0.0.101>,
    TCP flow count/limit = 2/unlimited   <---- 1~15個までのTCPコネクションを持つホストの出力
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
Interface any: 0 active, 0 maximum active, 0 denied

 

4.4. TCPコネクションを 200以上 持つホストの表示

少量のコネクションしか持たないホストの出力を省けるため、高負荷ホストの調査に便利

asa5506# show local-host brief connection tcp 200

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 4 active, 7 maximum active, 0 denied
local host: <192.168.1.12>,
    TCP flow count/limit = 297/unlimited   <---- 200以上 TCPコネクションを持つホストのみ出力
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
Interface outside: 2 active, 153 maximum active, 0 denied
local host: <1.0.0.102>,
    TCP flow count/limit = 297/unlimited   <---- 200以上 TCPコネクションを持つホストのみ出力
    TCP embryonic count to host = 297
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
Interface any: 0 active, 0 maximum active, 0 denied

 

4.5. embryonic(不完全)なTCPコネクションを 200以上 持つホストと、そのコネクションの表示

briefオプションを付与しない場合、そのホストに紐づいたコネクション処理状況を確認可能。しかし、環境により出力量が膨大となる為、briefオプション無しのコマンド実行には注意する事

asa5506# show local-host connection embryonic 200

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 4 active, 7 maximum active, 0 denied
Interface outside: 2 active, 153 maximum active, 0 denied
local host: <1.0.0.102>,
    TCP flow count/limit = 297/unlimited
    TCP embryonic count to host = 297
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited

  Conn:    <---- 以下は多数の片方向のSYNのみ(=flags saA)のコネクション ---->
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20504, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20503, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20502, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20501, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20500, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20499, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20498, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20497, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20496, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20495, idle 0:00:00, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20494, idle 0:00:01, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20493, idle 0:00:01, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20492, idle 0:00:01, bytes 0, flags sxaA
    TCP outside  1.0.0.102:80 inside  192.168.1.12:20491, idle 0:00:01, bytes 0, flags sxaA
          --- snip ---


4.6. 指定ホストの簡易確認

asa5506# show local-host 192.168.1.11 brief

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 3 active, 7 maximum active, 0 denied
local host: <192.168.1.11>,
    TCP flow count/limit = 2/unlimited
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited
Interface outside: 2 active, 153 maximum active, 0 denied
Interface any: 0 active, 0 maximum active, 0 denied

 

4.7. 指定ホストの確認

コネクションやXlateエントリの出力を含む

asa5506# show local-host 192.168.1.11       

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 4 active, 7 maximum active, 0 denied
local host: <192.168.1.11>,
    TCP flow count/limit = 2/unlimited
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited

  Xlate:
    TCP PAT from inside:192.168.1.11/49375 to outside:1.0.0.254/49375 flags ri idle 0:00:12 timeout 0:00:30

  Conn:
    TCP outside  1.0.0.101:21 inside  192.168.1.11:49375, idle 0:00:12, bytes 318, flags UxIO
Interface outside: 3 active, 153 maximum active, 0 denied
Interface any: 0 active, 0 maximum active, 0 denied

 

4.8. 指定ホストの詳細確認

アップタイムやタイムアウト値を含む、より詳細なコネクション情報を表示

asa5506# show local-host 192.168.1.11 detail

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 3 active, 7 maximum active, 0 denied
local host: <192.168.1.11>,
    TCP flow count/limit = 2/unlimited
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited

  Xlate:
    TCP PAT from inside:192.168.1.11/49375 to outside:1.0.0.254/49375 flags ri idle 0:04:07 timeout 0:00:30

  Conn:    <---- より詳細なコネクション情報の表示 ---->
    TCP outside: 1.0.0.101/21 inside: 192.168.1.11/49375,
        flags UxIO , idle 4m7s, uptime 4m7s, timeout 1h0m, bytes 318
Interface outside: 2 active, 153 maximum active, 0 denied
Interface any: 0 active, 0 maximum active, 0 denied

 

4.9. 指定ホストの全コネクションの切断

指定ホストに紐づいた全コネクションの切断と、connection limits や embryonic limitsの初期化

asa5506# show local-host 192.168.1.11

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 3 active, 7 maximum active, 0 denied
local host: <192.168.1.11>,
    TCP flow count/limit = 3/unlimited
    TCP embryonic count to host = 0
    TCP intercept watermark = unlimited
    UDP flow count/limit = 0/unlimited

  Xlate:
    TCP PAT from inside:192.168.1.11/56022 to outside:1.0.0.254/56022 flags ri idle 0:00:26 timeout 0:00:30
    TCP PAT from inside:192.168.1.11/49380 to outside:1.0.0.254/49380 flags ri idle 0:11:50 timeout 0:00:30

  Conn:
    TCP outside  1.0.0.101:21 inside  192.168.1.11:56022, idle 0:00:25, bytes 353, flags UxIO
    TCP outside  1.0.0.101:21 inside  192.168.1.11:49380, idle 0:01:49, bytes 402, flags UFRxIO
Interface outside: 2 active, 153 maximum active, 0 denied
Interface any: 0 active, 0 maximum active, 0 denied
asa5506#
asa5506# clear local-host 192.168.1.11     <---- 指定ホストのクリア
asa5506#
asa5506# show local-host 192.168.1.11

Interface management: 0 active, 0 maximum active, 0 denied
Interface inside: 3 active, 7 maximum active, 0 denied
Interface outside: 1 active, 153 maximum active, 0 denied
Interface any: 0 active, 0 maximum active, 0 denied
 

tipTip:
TCPやUDPフラッド攻撃が継続している場合、clear local-host <ホストIP> コマンドは一時的なASAの処理リソースの解放に役立ちますが、直ぐに該当ホストへのASAの処理リソースの消費の再開を予想するため、当コマンドはフラッド攻撃への対策とはなりません。

フラッド攻撃の対策は、恒久対策として送信元IPの調査と対応、暫定対策としてASAや手前のL3スイッチなどで該当ホストの遮断などを検討してください。

暫定対策は、ハードウェアでの高速処理が可能な機器での遮断が好ましいです。ASAのアクセスリスト(最も簡易な方法)や、TCP SYNクッキーや コネクション流量制限などで 遮断する場合は、ASAにて十分なCPU処理能力の余力が必要となります。


 

5. 参考情報

ASA/PIX 7.x 以降: ネットワーク攻撃の緩和策
http://www.cisco.com/cisco/web/support/JP/106/1065/1065278_asa-pix-netattacks.html

Cisco ASA Series Command Reference, S Commands - show local-host
http://www.cisco.com/c/en/us/td/docs/security/asa/asa-command-reference/S/cmdref3/s9.html#pgfId-1519175

Cisco ASA Series Command Reference, A - H Commands - clear local-host
http://www.cisco.com/c/en/us/td/docs/security/asa/asa-command-reference/A-H/cmdref1/c3.html#pgfId-2249465

ASA9.0: 接続の設定
http://www.cisco.com/cisco/web/support/JP/docs/SEC/Firewall/ASA5500AdaptiveSecurAppli/CG/003/conns_connlimits.html?bid=0900e4b1830d7ae6

バージョン履歴
改訂番号
3/3
最終更新:
‎10-14-2017 11:29 PM
更新者:
 
ラベル(1)
寄稿者:
タグ(1)