2015-07-12
05:55 PM
- 最終編集日:
2023-12-20
05:17 PM
、編集者:
JapanTAC_CSC
Modular Policy Framework(MPF) を用いたサービスポリシーにより、以下の機能を柔軟に設定できます。
・ サービスモジュール (例:FirePOWER(SFR)、IPS、CX、CSC) との通信連携
・ アプリケーションインスペクション
・ コネクション制御 (例:タイムアウト値変更、最大接続可能数制限、DoS攻撃対策など)
サービスモジュールとの通信連携や、コネクションの高度な管理のためには、新規設定が必要です。
一部のアプリケーションインスペクション(例:FTPやSIPやSMTPなど)は デフォルトで有効です。 該当の通信が発生時、ASAはパケット内部まで確認し、セカンダリチャネルの動的な許可や 埋め込み型IPアドレスの変換、セキュリティチェックを行います。
本ドキュメントでは、MPFを用いたサービスポリシーの動作仕様、及び その設定例と動作確認方法について説明します。
本ドキュメントは、ASAバージョン 9.3(3)1、ASDMバージョン 7.4(2)を元に確認、作成しております。
既存コネクションの無いパケットの場合、宛先アドレス変換(UnNAT) or ルーティングの後に ACLチェックが行われ、その後に サービスポリシーのチェックが行われます。
サービスポリシーは、任意インターフェイス もしくは グローバルに適用できます。 サービスポリシーを 指定インターフェイスと グロ―バルの両方に設定した場合、インターフェイス ポリシーが優先し処理されます。
ポリシーマップ内に複数クラスを定義した場合、各機能別に上から順にチェックされ、マッチした場合、後続のクラスは処理されません。
この処理をよく理解するために、以下に実際の設定例と、Insideから WEB・FTP・ICMP通信が発生時の処理について説明します。
サービスポリシー設定例:
access-list CLASS-01-ACL extended permit ip any any access-list CLASS-02-ACL extended permit tcp any any eq ftp ! class-map CLASS-01
match access-list CLASS-01-ACL
class-map CLASS-02 match access-list CLASS-02-ACL ! policy-map GLOBAL-PMAP class inspection_default inspect ftp inspect icmp policy-map INSIDE-PMAP class CLASS-01
sfr fail-open class CLASS-02 sfr fail-open inspect ftp ! service-policy GLOBAL-PMAP global service-policy INSIDE-PMAP interface inside
Inside側から WEB通信が発生時は、インターフェイス ポリシー(INSIDE-PMAP)の CLASS-01に定義した FirePOWER(SFR)サービスモジュールと通信連携を行うための sfr fail-open にのみマッチします。 CLASS-02は FTP(=tcp21) のみ対象ですのでマッチしません。その後の グローバルポリシー (GLOBAL-PMAP)にも マッチ対象の inspect機能が無いため、マッチしません。
Inside側から FTP通信が発生時は、CLASS-01の sfr fail-open にマッチ後、CLASS-02では 既にサービスモジュールには前クラスでマッチしてますので inspect ftpのみマッチします。 既に inspect ftp にマッチしてますので、その後の グローバルポリシー (GLOBAL-PMAP)の inspect ftp にはマッチしません。
Inside側から ICMP通信 (PING) が発生時は、CLASS-01の sfr fail-open にマッチ後、CLASS-02は FTP(=tcp21) のみ対象ですのでマッチしません。 その後の グローバルポリシー(GLOBAL-PMAP)の inspect icmpにマッチします。
上記 設定時の、Inside側から WEB、FTP、ICMP通信 (PING) が発生時の処理フローは、まとめますと以下となります。
本項では、以下の構成例と通信要件における設定例と動作確認方法について説明します。
以下構成において、以下の通信要件があるものとします。 ASAは FirePOWER(SFR)サービスモジュールを搭載し、アプリケーションレイヤー制御と 侵入検知・防御処理を提供します。
送信元 | 送信元IP nameif名 |
宛先IP | 宛先ポート | SFR処理 | 目的・通信タイプ |
Internal |
172.16.0.0/16 inside側 |
Any | http(=tcp80) https(=tcp443) |
有効 | Web通信 各種アップデート 監視対象の通信 |
Internal Servers |
172.16.200.0/24 inside側 |
172.17.200.0/24 | https(=tcp443) | 無効 | 定期バックアップ 信頼された通信 |
CLIでのサービスモジュールへのリダイレクト設定は以下となります。 ACLは上からマッチングを行いますので、インターナルサーバ(172.16.200.1)から リモートサイト(172.17.200.1:443) 宛の通信のDenyエントリを 上位に設定する事で、FirePOWER (SFR) サービスモジュールの処理対象から除外できます。
access-list SFR-ACL extended deny tcp 172.16.200.0 255.255.255.0 172.17.200.0 255.255.255.0 eq https access-list SFR-ACL extended permit tcp 172.16.0.0 255.255.0.0 any eq www access-list SFR-ACL extended permit tcp 172.16.0.0 255.255.0.0 any eq https ! class-map SFR-CMAP match access-list SFR-ACL <--- SFR-ACLを、クラスマップ SFR-CMAPに紐付け ! policy-map INSIDE-PMAP class SFR-CMAP sfr fail-open <--- FirePOWER(SFR)サービスモジュールにリダイレクト設定 ! service-policy INSIDE-PMAP interface inside <---- insideインターフェイスに適用 !
以下は実際の、Inside側のクライアント(172.16.100.1)から WEBサーバ(1.0.0.2:80)に通信時のコネクションテーブルの出力です。 サービスモジュールでインスペクション時は、Xフラグが立ちます。
ASA/pri/act# show conn protocol tcp port 80
15 in use, 67539 most used
TCP outside 1.0.0.2:80 inside 172.16.100.1:2719, idle 0:00:00, bytes 1818575, flags UIOX
以下は実際の、Inside側のインターナルサーバ(172.16.200.1)から リモートサイト(172.17.200.1:443)に通信時のコネクションテーブルの出力です。 サービスモジュールでインスペクションが行われない為、Xフラグが立ちません。
ASA/pri/act(config)# show conn protocol tcp port 443 58 in use, 67539 most used TCP outside 172.17.200.1:443 inside 172.16.200.1:4712, idle 0:00:00, bytes 95708, flags UFRIO TCP outside 172.17.200.1:443 inside 172.16.200.1:4706, idle 0:00:00, bytes 150730, flags UFRIO TCP outside 172.17.200.1:443 inside 172.16.200.1:4705, idle 0:00:00, bytes 163046, flags UFRIO TCP outside 172.17.200.1:443 inside 172.16.200.1:4704, idle 0:00:00, bytes 148665, flags UFRIO TCP outside 172.17.200.1:443 inside 172.16.200.1:4703, idle 0:00:00, bytes 100004, flags UFRIO TCP outside 172.17.200.1:443 inside 172.16.200.1:4694, idle 0:00:00, bytes 307592, flags UFRIO
以下は show access-listコマンドの出力です。 インターナルサーバ(172.16.200.1)から リモートサイト(172.17.200.1:443)に通信時は、SFR-ACL line 1 の アクセスコントロールエントリにマッチし、サービスモジュールの処理は拒否されます。
ASA/pri/act(config)# show access-list SFR-ACL access-list SFR-ACL; 3 elements; name hash: 0xbb46b9db access-list SFR-ACL line 1 extended deny tcp 172.16.200.0 255.255.255.0 172.17.200.0 255.255.255.0 eq https (hitcnt=34) 0x2f841f94 access-list SFR-ACL line 2 extended permit tcp 172.16.0.0 255.255.0.0 any eq www (hitcnt=72) 0xbdbee4c4 access-list SFR-ACL line 3 extended permit tcp 172.16.0.0 255.255.0.0 any eq https (hitcnt=195) 0xccc4bb49
以下は show service-policyコマンドの出力です。 ヒット時にパケットカウンタの増加を確認できます。
ASA/pri/act(config)# show service-policy
Interface inside:
Service-policy: INSIDE-PMAP
Class-map: SFR-CMAP
SFR: card status Up, mode fail-open
packet input 75954, packet output 76209, drop 0, reset-drop 0
なお、実通信試験を行わなくても、packet-tracer ユーティリティと show access-list コマンドを用いて、期待の設定にマッチするかの簡易確認が可能です。
以下は、Inside側のクライアント(172.16.100.1)から WEBサーバ(1.0.0.2:443)宛の通信の簡易試験の結果です。
ASA/pri/act# packet-tracer input inside tcp 172.16.100.1 1234 1.0.0.2 443 detail --- snip --- Phase: 6 Type: SFR Subtype: Result: ALLOW Config: <----- マッチしたサービスポリシー class-map SFR-CMAP match access-list SFR-ACL policy-map INSIDE-PMAP class SFR-CMAP sfr fail-open service-policy INSIDE-PMAP interface inside Additional Information: Forward Flow based lookup yields rule: in id=0x7fffe2635f40, priority=73, domain=sfr, deny=false hits=227, user_data=0x7fffe1a7b8f0, cs_id=0x0, use_real_addr, flags=0x0, protocol=6 src ip/id=172.16.0.0, mask=255.255.0.0, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=443, tag=any, dscp=0x0 input_ifc=inside, output_ifc=any ASA/pri/act# show access-list SFR-ACL access-list SFR-ACL; 3 elements; name hash: 0xbb46b9db access-list SFR-ACL line 1 extended deny tcp 172.16.200.0 255.255.255.0 172.17.200.0 255.255.255.0 eq https (hitcnt=37) 0x2f841f94 access-list SFR-ACL line 2 extended permit tcp 172.16.0.0 255.255.0.0 any eq www (hitcnt=74) 0xbdbee4c4 access-list SFR-ACL line 3 extended permit tcp 172.16.0.0 255.255.0.0 any eq https (hitcnt=227) 0xccc4bb49 <----- マッチしたアクセスコントロールエントリ
以下は、Inside側のインターナルサーバ(172.16.200.1)から リモートサイト(172.17.200.1:443)宛の通信の簡易試験の結果です。
ASA/pri/act# packet-tracer input inside tcp 172.16.200.1 1234 172.17.200.1 443 detail --- snip --- Phase: 6 Type: SFR Subtype: Result: ALLOW Config: <----- マッチしたサービスポリシー class-map SFR-CMAP match access-list SFR-ACL policy-map INSIDE-PMAP class SFR-CMAP sfr fail-open service-policy INSIDE-PMAP interface inside Additional Information: Forward Flow based lookup yields rule: in id=0x7fffe1e9d390, priority=73, domain=sfr, deny=true <----- DENY hits=38, user_data=0x7fffe1a7b8f0, cs_id=0x0, use_real_addr, flags=0x0, protocol=6 src ip/id=172.16.200.0, mask=255.255.255.0, port=0, tag=any dst ip/id=172.17.200.0, mask=255.255.255.0, port=443, tag=any, dscp=0x0 input_ifc=inside, output_ifc=any ASA/pri/act# show access-list SFR-ACL access-list SFR-ACL; 3 elements; name hash: 0xbb46b9db access-list SFR-ACL line 1 extended deny tcp 172.16.200.0 255.255.255.0 172.17.200.0 255.255.255.0 eq https (hitcnt=38) 0x2f841f94 <----- マッチしたアクセスコントロールエントリ access-list SFR-ACL line 2 extended permit tcp 172.16.0.0 255.255.0.0 any eq www (hitcnt=74) 0xbdbee4c4 access-list SFR-ACL line 3 extended permit tcp 172.16.0.0 255.255.0.0 any eq https (hitcnt=236) 0xccc4bb49
サービスモジュール (例:FirePOWER(SFR)、IPSなど) での アプリケーション制御や URLフィルタリング、侵入検知や防御の処理は、パケット内部までの検査、およびフローの検査と制御を行うため、高度かつ柔軟な制御が可能ですが、負荷の高い処理となります。
通信負荷の高い環境の場合は、不要な通信は ACLでの破棄を優先して行い、高度な処理が必要な通信のみサービスモジュールにリダイレクトする事で、パフォーマンスの最適化が可能です。
本項では、以下の構成例と通信要件における設定例と動作確認方法について説明します。
以下構成において、以下の通信要件があるものとします。 ASAは 外部(インターネット)から 公開サーバ宛の http(tcp=80)通信の、コネクションのタイムアウト値の短縮、および 最大コネクション数の制限を行います。
送信元名 | 送信元IP nameif名 |
宛先IP 宛先Port |
TCP アイドル タイムアウト |
TCP ハーフクローズ タイムアウト |
最大同時 コネクション数 |
Internet |
Any outside側 |
内部:192.168.200.1 外部: 1.100.100.1 http(=tcp80) |
10分 | 30秒 | 最大 1000 まで |
Any | Any | Any | 1時間 (デフォルト) |
10分 (デフォルト) |
制限無し (デフォルト) |
CLIでの コネクションタイムアウト値の変更と 流量制限の設定は以下となります。
access-list OUT-CONN-ACL extended permit tcp any host 192.168.200.1 eq www ! class-map OUT-CONN-CMAP match access-list OUT-CONN-ACL ! policy-map OUT-CONN-PMAP class OUT-CONN-CMAP set connection conn-max 1000 <---- コネクションを最大1000に制限 set connection timeout half-closed 0:00:30 idle 0:10:00 <---- タイムアウト値を変更 ! service-policy OUT-CONN-PMAP interface outside <---- outsideインターフェイスに適用 !
以下は実際の、DMZ内の公開サーバ(192.168.200.1)から WEB上の任意サイト(1.0.0.2:80)に 通信時のコネクションテーブルの出力です。 show conn long コマンドで、そのコネクションのアイドルタイムアウト値を確認できます。 タイムアウト値の変更対象にマッチしない為、TCPコネクションのアイドルタイムアウト値は 1時間 (1h0m) です。
ASA/pri/act# show conn long address 192.168.200.1
27 in use, 67539 most used
Flags: A - awaiting inside ACK to SYN, a - awaiting outside ACK to SYN,
B - initial SYN from outside, b - TCP state-bypass or nailed,
C - CTIQBE media, c - cluster centralized,
D - DNS, d - dump, E - outside back connection, F - outside FIN, f - inside FIN,
G - group, g - MGCP, H - H.323, h - H.225.0, I - inbound data,
i - incomplete, J - GTP, j - GTP data, K - GTP t3-response
k - Skinny media, M - SMTP data, m - SIP media, n - GUP
O - outbound data, P - inside back connection, p - Phone-proxy TFTP connection,
q - SQL*Net data, R - outside acknowledged FIN,
R - UDP SUNRPC, r - inside acknowledged FIN, S - awaiting inside SYN,
s - awaiting outside SYN, T - SIP, t - SIP transient, U - up,
V - VPN orphan, W - WAAS,
w - secondary domain backup,
X - inspected by service module,
x - per session, Y - director stub flow, y - backup stub flow,
Z - Scansafe redirection, z - forwarding stub flow
TCP outside: 1.0.0.2/80 (1.0.0.2/80) DMZ: 192.168.200.1/10991 (1.100.100.1/10991), flags UO , idle 0s, uptime 9s, timeout 1h0m, bytes 2
以下は実際の、Outside側の外部クライアント(1.100.0.29)から 公開Webサーバ(外部IP=1.100.100.1、内部IP=192.168.200.1)に WEB通信時のコネクションテーブルの出力です。 タイムアウト値の変更対象にマッチする為、TCPコネクションのアイドルタイムアウト値は 10分 (10m0s) です。
ASA/pri/act# show conn long address 192.168.200.1
15 in use, 67539 most used
Flags: A - awaiting inside ACK to SYN, a - awaiting outside ACK to SYN,
B - initial SYN from outside, b - TCP state-bypass or nailed,
C - CTIQBE media, c - cluster centralized,
D - DNS, d - dump, E - outside back connection, F - outside FIN, f - inside FIN,
G - group, g - MGCP, H - H.323, h - H.225.0, I - inbound data,
i - incomplete, J - GTP, j - GTP data, K - GTP t3-response
k - Skinny media, M - SMTP data, m - SIP media, n - GUP
O - outbound data, P - inside back connection, p - Phone-proxy TFTP connection,
q - SQL*Net data, R - outside acknowledged FIN,
R - UDP SUNRPC, r - inside acknowledged FIN, S - awaiting inside SYN,
s - awaiting outside SYN, T - SIP, t - SIP transient, U - up,
V - VPN orphan, W - WAAS,
w - secondary domain backup,
X - inspected by service module,
x - per session, Y - director stub flow, y - backup stub flow,
Z - Scansafe redirection, z - forwarding stub flow
TCP outside: 1.100.0.29/8672 (1.100.0.29/8672) DMZ: 192.168.200.1/80 (1.100.100.1/80), flags UIB , idle 0s, uptime 30s, timeout 10m0s, bytes 26
以下は実際の、Outside側の外部クライアント(1.100.0.*)から 公開Webサーバ(外部IP=1.100.100.1、内部IP=192.168.200.1)に 同時1000コネクション以上の http(tcp=80)通信が発生時に、ASAがコネクション流量制限を行ったことを示すログメッセージです。
ASA/pri/act# show log Jul 13 2015 11:49:51: %ASA-3-201011: Connection limit exceeded 1000/1000 for input packet from 1.100.0.12/3667 to 192.168.200.1/80 on interface outside Jul 13 2015 11:49:51: %ASA-3-201011: Connection limit exceeded 1000/1000 for input packet from 1.100.0.12/3668 to 192.168.200.1/80 on interface outside Jul 13 2015 11:49:51: %ASA-3-201011: Connection limit exceeded 1000/1000 for input packet from 1.100.0.12/3669 to 192.168.200.1/80 on interface outside
以下は show service-policyコマンドの出力です。 現在のコネクション数と 超過によるドロップ数を確認できます。
ASA/pri/act# show service-policy interface outside Interface outside: Service-policy: OUT-CONN-PMAP Class-map: OUT-CONN-CMAP Set connection policy: conn-max 1000 current conns 1000, drop 1670 <---- 現在コネクション数とドロップ数 Set connection timeout policy: half-closed 0:00:30 idle 0:10:00 DCD: disabled, retry-interval 0:00:15, max-retries 5 DCD: client-probe 0, server-probe 0, conn-expiration 0
なお、実通信試験を行わなくても、packet-tracer ユーティリティと show access-list コマンドを用いて、期待の設定にマッチするかの簡易確認が可能です。
以下は、Outside側の外部クライアント(1.0.0.2)から 公開Webサーバ(外部IP=1.100.100.1、内部IP=192.168.200.1)への http(tcp=80)通信の簡易試験の結果です。
ASA/pri/act# packet in out tcp 1.0.0.2 1234 1.100.100.1 80 detail Phase: 1 Type: UN-NAT Subtype: static Result: ALLOW Config: object network DMZ-192.168.200.1 nat (DMZ,outside) static 1.100.100.1 Additional Information: NAT divert to egress interface DMZ Untranslate 1.100.100.1/80 to 192.168.200.1/80 <---- 宛先アドレス変換 Phase: 2 Type: ACCESS-LIST Subtype: log Result: ALLOW Config: access-group OUT in interface outside access-list OUT extended permit ip any any <---- ACLチェック Additional Information: Forward Flow based lookup yields rule: in id=0x7fffe1a7b6b0, priority=13, domain=permit, deny=false hits=28823, user_data=0x7fffd3eeca00, cs_id=0x0, use_real_addr, flags=0x0, protocol=0 src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dst ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any, dscp=0x0 input_ifc=outside, output_ifc=any Phase: 3 Type: CONN-SETTINGS Subtype: Result: ALLOW Config: <----- マッチしたサービスポリシーclass-map OUT-CONN-CMAP match access-list OUT-CONN-ACL policy-map OUT-CONN-PMAP class OUT-CONN-CMAP set connection conn-max 1000 embryonic-conn-max 0 random-sequence-number enable set connection timeout idle 0:10:00 embryonic 0:00:30 half-closed 0:00:30 half-closed 0:00:30 idle 0:10:00 <----- 適用のタイムアウト値 DCD: disabled, retry-interval 0:00:15, max-retries 5 DCD: client-probe 0, server-probe 0, conn-expiration 0 service-policy OUT-CONN-PMAP interface outside Additional Information: Forward Flow based lookup yields rule:in id=0x7fffe2a0db20, priority=8, domain=conn-set, deny=false hits=7783, user_data=0x7fffe262e630, cs_id=0x0, use_real_addr, flags=0x0, protocol=6 src ip/id=0.0.0.0, mask=0.0.0.0, port=0, tag=any dst ip/id=192.168.200.1, mask=255.255.255.255, port=80, tag=any, dscp=0x0 input_ifc=outside, output_ifc=any ASA/pri/act# show access-list OUT-CONN-ACL access-list OUT-CONN-ACL; 1 elements; name hash: 0xb9547993 access-list OUT-CONN-ACL line 1 extended permit tcp any host 192.168.200.1 eq www (hitcnt=7784) 0xeadecbc1 <----- マッチしたアクセスコントロールエントリ
本項では、ASAを利用した DoS/DDoS攻撃の緩和策を紹介します。なお、設定や確認方法は ご利用バージョンの設定ガイドや、ASA/PIX 7.x 以降: ネットワーク攻撃の緩和策 も合わせて参照ください。
SYN Cookie機能 (別名 TCP Intercept) を利用することで TCP SYN Flood攻撃からの一定の保護が可能です。SYN Cookieは 2010年以前から実装されている利用実績も多い機能です。予め定義した embryonic connection count を越えるSYN Floodが発生した場合、ASAのSYN Cookie機能が動作し、その後の 問題のSYNパケットに対し ASAがProxyのように動作し、ASAが代理応答を行います。 SYN Cookieが動作することにより、Attacker (攻撃者) から Victim (被害者) へのSYN Flood攻撃を途中で遮断と 攻撃の緩和が可能です。また、SYN CookieはASAで高速に処理されるため、SYN Flood攻撃発生時のASAの処理リソース(コネクションテーブルやCPUやメモリ)枯渇のある程度の緩和にも役立ちます。
通常、Attackerは ASAからのSYN/ACKに応答せず、正常なClientは ASAからのSYN/ACKに ACKを応答します。SYN Cookieが動作すると、前者の正しいACKを返さないClient (すなわちAttacker)のSYNパケットはASAを通過できなくなります。 後者の正しいClientからのACK応答があった場合、ASAはコネクションの生成と サーバー向けのSYNパケット生成を行い、その後の正しいClientとサーバー間の通信を許可します。
以下は、Inside InterfaceからきたWEB/FTPサーバ(10.xx.xx.1)宛のHTTP/HTTPS/FTP通信の、不完全な同時初期TCP接続数 (embryonic connection count) の最大許可数を 50 に、コネクションの最大許可数を500 にする設定例です。
access-list ACL-Protect-WEB01 extended permit tcp any host 10.xx.xx.1 eq http access-list ACL-Protect-WEB01 extended permit tcp any host 10.xx.xx.1 eq https access-list ACL-Protect-WEB01 extended permit tcp any host 10.xx.xx.1 eq ftp ! class-map CMAP-Protect-WEB01 match access-list ACL-Protect-WEB01 ! policy-map PMAP-Protect-WEB01 class CMAP-Protect-WEB01 set connection embryonic-conn-max 50 set connection conn-max 500 ! service-policy PMAP-Protect-WEB01 interface inside
(オプション) 攻撃発生時の分析するための統計機能を有効化したい場合は、以下機能を有効化します。なお、当threat-detection機能を利用すると、SYN Flood発生時の情報収集で更に1-2割ほどCPU処理負荷が上がる恐れがあるため、CPU処理負荷が低い時のみ有効化をお勧めします。
threat-detection statistics tcp-intercept
設定後、パケットトレーサ機能を利用して、仮に指定のWEBサーバ宛のWEB通信が発生した場合に、設定したMPFに正しくマッチするか確認を行います。
ASA(config)# packet-tracer in inside tcp 1.0.0.101 1024 [サーバIP] 443 --- 略 --- Phase: 3
Type: CONN-SETTINGS
Subtype:
Result: ALLOW
Config:
class-map CMAP-Protect-WEB01
match access-list ACL-Protect-WEB01
policy-map PMAP-Protect-WEB01
class CMAP-Protect-WEB01
set connection conn-max 500 embryonic-conn-max 50 random-sequence-number enable <--- THIS
service-policy PMAP-Protect-WEB01 interface inside
Additional Information:
以下は実際に WEB/FTPサーバ宛のSYN Flood攻撃を実施時のログ出力例です。閾値(50)を超過する不完全なTCPコネクション(SYN Flood)が発生したこと、及び その送信元と宛先のIPアドレス/Portを確認できます。
Jul 21 2020 11:22:49: %ASA-6-201010: Embryonic connection limit exceeded 50/50 for input packet from 1.150.0.39/11368 to 10.xx.xx.1/21 on interface inside Jul 21 2020 11:22:49: %ASA-6-201010: Embryonic connection limit exceeded 50/50 for input packet from 1.150.0.39/11369 to 10.xx.xx.1/21 on interface inside Jul 21 2020 11:22:49: %ASA-6-201010: Embryonic connection limit exceeded 50/50 for input packet from 1.150.0.39/11370 to 10.xx.xx.1/21 on interface inside
SYN Cookie (TCP Intercept) が動作時は、show perfmon コマンドで、TCP Intercept Attempts の上昇を確認できます。以下例の場合、秒間 863 程度のSyn Cookie処理を実施してることがわかります。
ASA(config)# show perfmon PERFMON STATS: Current Average Xlates 1/s 7/s Connections 143/s 56/s TCP Conns 138/s 36/s UDP Conns 4/s 17/s URL Access 0/s 0/s URL Server Req 0/s 0/s TCP Fixup 0/s 0/s TCP Intercept Established Conns 0/s 0/s TCP Intercept Attempts 863/s 0/s <--- TCP Embryonic Conns Timeout 1/s 23/s FTP Fixup 408/s 0/s AAA Authen 0/s 0/s AAA Author 0/s 0/s AAA Account 0/s 0/s HTTP Fixup 0/s 0/s VALID CONNS RATE in TCP INTERCEPT: Current Average N/A 4.71%
"threat-detection statistics tcp-intercept"設定が有効の場合、show threat-detection statistics top tcp-intercept コマンドで 被害者のIPアドレスやポートと、攻撃者のIPアドレスを確認できます。以下例の場合、WEB/FTPサーバ(10.xx.xx.1:21)のTCP21宛のSYN Flood攻撃が発生中(=Current Rateが2512)であり、AttackerのIPアドレスは 1.150.0.39である事を確認できます。
ASA(config)# show threat-detection statistics top tcp-intercept Top 10 protected servers under attack (sorted by average rate) Monitoring window size: 30 mins Sampling interval: 30 secs <Rank> <Server IP:Port> <Interface> <Ave Rate> <Cur Rate> <Total> <Source IP (Last Attack Time)> -------------------------------------------------------------------------------- 1 10.xx.xx.1:21 inside 58 2512 105427 1.150.0.39 (41 secs ago) 2 10.xx.xx.1:80 inside 2 0 4978 1.150.0.39 (13 mins ago) --------------------------------------------------------
なお、AttackerのIPアドレスはランダム抽出された送信元IPアドレスが表示されます。単一の送信元からのDoS攻撃の場合 Attackerの送信元IPと一致しますが、複数の送信元からのDDoS攻撃の場合は その中の1つのAttackerのIPアドレスしか表示されないことに注意してください。
サービスモジュール (例:FirePOWER(SFR)、CXなど) での検査を行っている通信は、コネクションタイムアウト値の変更は避けてください。 サービスモジュールは ASAのデフォルトのコネクションタイムアウト値に最適化されているためです。
ASAバージョン 9.1(2)より、ハーフクローズ タイムアウトが、従来の最短5分から 最短30秒に設定変更が可能に拡張されました。 これは、ハーフクローズのコネクションフラッド攻撃への対応のための実装変更です。
コネクション流量制限や SYN Cookie機能は、マルチコアによる分散処理が可能なモデル(例: ASA5585)の場合、実際のコネクション流量制限の発生が、設定数より若干多い事があります。 例えば、ASA5585-20 でコネクション流量制限を実施した場合、CPU 8コアで分散処理を行います為、最大 n-1個 (nはコア数) の 7個までの 最大コネクション制限数の超過が発生する事があります。 これは、各コアがコネクションを分散処理している事、及び 各コアのコネクション処理状況の確認と制限発生タイミングにより発生する実装です。 モデルのコア数は show cpu core コマンドで確認できます。
DoS攻撃の対策にASAを利用する場合、SYN FloodやConnection Flood攻撃が継続していると、ASAの処理負荷上昇や、経路の帯域不足の原因となるため、SYN Flood攻撃元の調査や遮断、経路でQoSの実施などの対策をお勧めします。ASAの処理パフォーマンスが高いモデルほど ASAのDoS攻撃の防御性能も上昇し ある程度の攻撃緩和が可能ですが、ASAはDoS攻撃対策の専用機ではありません。そのため、特に大規模なシステムの場合は、ASAの処理能力低下を抑えるため、DoSが発生時の周囲機器も利用しての検知や遮断や、もしくは、専用のDoS/DDoS攻撃対策装置の別途導入をお勧めします。
TCPステートバイパスを有効化すると、ASAでデフォルト有効な TCPのステート監視や セキュリティチェックをバイパスするようになります。 これは、非対称ルーティング構成や RFCに準拠しない特殊なTCP通信のASA通過のサポートに有効です。
設定や確認方法について詳しくは、ASA: TCPステートバイパスを有効時の注意点と、設定と確認 を参照してください。
サービスポリシーの変更後、新規コネクションから その新ポリシーは適用され始めます。 既存コネクションは、そのコネクションが生成時に適用されたポリシーを利用し続けます。
既存コネクションにも新規ポリシーを適用したい場合は、通信影響は発生しますが、既存コネクションを clear conn コマンドで指定 or 全削除し、新規コネクションでの再接続を促す方法が有効です。
もしくは、対象の既存コネクションが無い時間帯を見極めての ポリシー設定変更が有効です。
何らかの理由で特定通信だけ アクションを適用したくない場合、ACL設定で その対象通信をDenyしたクラスマップを利用てください。
例えば以下は、insideインターフェイスを経由する、1.0.0.1宛のFTP通信は inspect ftpは適用せず、それ以外のFTP通信はinspect ftpを適用する設定例です。
access-list CLASS-02-ACL extended deny tcp any host 1.0.0.1 eq ftp
access-list CLASS-02-ACL extended permit tcp any any eq ftp
!
class-map CLASS-02
match access-list CLASS-02-ACL
!
policy-map INSIDE-PMAP
class CLASS-02
inspect ftp
!
service-policy INSIDE-PMAP interface inside
ASA 9.3: モジュラ ポリシー フレームワークを使用したサービス ポリシーの設定
http://www.cisco.com/cisco/web/support/JP/docs/SEC/Firewall/ASA5500-XNext-GenerationF/CG/004/mpf-service-policy.html?bid=0900e4b1840506ef
ASA 8.3 以降: MPF を使用した SSH/Telnet/HTTP 接続のタイムアウトの設定例
http://www.cisco.com/cisco/web/support/JP/110/1107/1107707_asa83x-mpf-config-00.html
ASA/PIX 7.x 以降: ネットワーク攻撃の緩和策
https://www.cisco.com/c/ja_jp/support/docs/security/asa-5500-x-series-next-generation-firewalls/100830-asa-pix-netattacks.html
ファイアウォール トラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161736
Firepower System and FTDトラブルシューティング
https://community.cisco.com/t5/-/-/ta-p/3161733
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます