IP スプーフィング(なりすまし)とは、嘘の送信元アドレスを使うことで、攻撃者のアドレスを隠しながら、ターゲットのネットワークにパケットを送り込む攻撃手法です。この特徴から、アクセスリストでアンチ・スプーフィングを実現するには、正当な送信元アドレスを使っている通信なのかという特徴に注目し、ひとつずつ deny 文を作成することです。
Router(config)# ip access-list extended anti-spoof
まずは RFC1918 で決められたプライベートアドレスからの通信をドロップします。これらのアドレスがインタネット上ルーティングできないため、正当な通信として外部から来ることはありえません。
Router(config-ext-nacl)# deny ip 10.0.0.0 0.255.255.255 any
Router(config-ext-nacl)# deny ip 172.16.0.0 0.15.255.255 any
Router(config-ext-nacl)# deny ip 192.168.0.0 0.0.255.255 any
マルチキャストアドレスからの通信をドロップします。マルチキャストアドレスは送信元アドレスとして使えないため、このような通信は正当なものではありません。
Router(config-ext-nacl)# deny ip 224.0.0.0 31.255.255.255 any
127.0.0.0/8 は RFC3330 で決められた各端末が自分自身への通信を行うために予約されているループバックアドレスです。端末外から送信されることはありません。
Router(config-ext-nacl)# deny ip 127.0.0.0 0.255.255.255 any
マイクロソフト Windows で予約されているループバックアドレスとなります。127.0.0.0/8 と同様にパソコン内部に閉じた通信でしかありえません。
Router(config-ext-nacl)# deny ip 169.254.0.0 0.0.255.255 any
自社のサブネットは、ルータの内側にありますので、外部から自社のアドレスを送信元とする通信が来ないはずです。
Router(config-ext-nacl)# deny ip <自社サブネット> <自社サブネットのワイルドカードマスク> any
これだけでは、deny 文しかないので、アクセスリストの暗黙な deny によって全通信がドロップされます。なので、社内ネットワークに入っても良い通信を許可する文を追加しなければなりません。インタネットから許可したい通信が明確に決まっている場合、下記の設定が良いです。
Router(config-ext-nacl)# permit ip any <インタネットからアクセスを許可したい自社サブネット> <対応のワイルドカードマスク>
Router(config-ext-nacl)# deny ip any any
逆に、特にインタネットからの通信をこれ以上制限する必要がない場合、下記の設定で良いです。
Router(config-ext-nacl)# permit ip any any
最後に、作成したアクセスリストをインタネット向けのインターフェースに適用します。
Router(config)# interface gigabitEthernet0/0
Router(config-if)# ip access-group anti-spoof in