ContextBased Access Control(CBAC)
20131001

確認環境
 確認機種 : Cisco 851
       Cisco 892
 IOS : 12.4(6)T
    15.2(4)M4

概要
 「IOS Firewall」と呼ばれる機能
 内部ネットワークから発生したトラフィックを監視し、
 そのトラフィックの戻り値に対するACLを一時的(動的)に作成する。
 ブロードバンドルータに積まれているSPI(Stateful Packet Inspection)と同等と考えても問題ありません。
 ハーフコネクションを監視したりする事も出来る為、DOSやSYNフラッド攻撃対策にも有効。(詳細については割愛)

用途
 今回は、外部ネットワークとの境界に位置するルーター(インターフェース)に実装していきましょう。
  以下の場合、外部との接続を行う際に内向きのトラフィックが通過出来ない為、正常に通信出来ません。
 「特定ポート以外」、若しくは「全てのポートに対しての内向き接続を許可しない」ACLを実装している。
  個別にACLを作成する事で可能ですが、煩雑な作業が必要な為、CBACにて実装していきます。

TCP/UDP/ICMPの3つに大別して設定する場合は以下の通り

Cisco(config)#
ip inspect log drop-pkt
ip inspect name CBAC icmp
ip inspect name CBAC tcp
ip inspect name CBAC udp
#CBACにてパケットを破棄した際にログを取る。
#ICMPパケットの検査を実施する。
#TCPパケットの検査を実施する。
#UDPパケットの検査を実施する。

※この設定を行う事で、別途ACLで定義(許可)しているパケットは許可され、
ACLにて許可をしていないパケットについては、「戻りパケット」のみがアクセスを許可されます。
アプリケーション層を指定して細かく設定する場合は以下の通り
 SDMで作成した際の設定を参考に記載します。

Cisco(config)#
ip inspect log drop-pkt
ip inspect name SDM_MEDIUM appfw SDM_MEDIUM
ip inspect name SDM_MEDIUM cuseeme
ip inspect name SDM_MEDIUM dns
ip inspect name SDM_MEDIUM ftp
ip inspect name SDM_MEDIUM h323
ip inspect name SDM_MEDIUM https
ip inspect name SDM_MEDIUM icmp
ip inspect name SDM_MEDIUM imap reset
ip inspect name SDM_MEDIUM pop3 reset
ip inspect name SDM_MEDIUM rcmd
ip inspect name SDM_MEDIUM realaudio
ip inspect name SDM_MEDIUM rtsp
ip inspect name SDM_MEDIUM esmtp
ip inspect name SDM_MEDIUM sqlnet
ip inspect name SDM_MEDIUM streamworks
ip inspect name SDM_MEDIUM tftp
ip inspect name SDM_MEDIUM tcp
ip inspect name SDM_MEDIUM udp
ip inspect name SDM_MEDIUM vdolive
#CBACにてパケットを破棄した際にログを取る。
#appfw policy-name SDM_MEDIUMが作成される為、その関係。
#CU-SeeMe
#DNS
#FTP
#H.323
#HTTPS
#ICMP
#IMAP
#POP3
#UNIXのRコマンド系(rlogin等)
#RealAudio
#RealTimeStreamingProtocol
#ESMTP
#SQLNET
#StreamWorks
#TFTP
#その他TCP
#その他UDP
#VDOLive

最後に作成したルールをインターフェースに「アウトバウンド」で適用する。

Cisco(config)#interface Dialer0
Cisco(config-if)#ip inspect CBAC out
#適用するインターフェース名(WAN側)を指定
#適用するルール名と方向(OUT)