JANOG Comment 1003 馬渡 将隆 日本インターネットエクスチェンジ株式会社 2012/07/19 xSP のルータにおいて設定を推奨するフィルタの項目について 〜 顧客接続部分編 〜 0. 本文書について この文書は、JANOG Comment 1000 の子文書です。 1. 概要 この文書では、自ネットワークが顧客へインターネット接続性を提供する 接続部分のフィルタについて扱う。 顧客接続部分では、BGP 接続顧客と static route 接続顧客に二分され、 手法が異なる部分もあるが、どちらについても、顧客のインターネット接続 性を保持をする努力と同時に、顧客側で発生したトラブルを外部に及ぼさな いようにする努力が必要となる。 2. 最低限、設定をする事が推奨されるフィルタ 2-1. パケットフィルタ 2-1-1. Ingress のパケットフィルタ [1] 以下の Special-Use Prefix が Source アドレスになっているパケ ットを reject する - 自身のネットワーク : 0.0.0.0/8 - プライベートアドレス : 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 - 共用 (shared) アドレス : 100.64.0.0/10 - ループバックアドレス : 127.0.0.0/8 - リンクローカルアドレス : 169.254.0.0/16 - TEST-NET-1 アドレス : 192.0.2.0/24 - ベンチマークテストアドレス : 198.18.0.0/15 - TEST-NET-2 アドレス : 198.51.100.0/24 - TEST-NET-3 アドレス : 203.0.113.0/24 - マルチキャストアドレス : 224.0.0.0/3 [2] (トランジット顧客の場合) 自 AS で持っている Prefix が Source アドレスになっているパケットを reject する 2-1-2. Egress のパケットフィルタ - 特に無し - 2-2. 経路フィルタ (※ BGP 接続顧客を対象にした経路フィルタ) 2-2-1. Ingress の Prefix フィルタ [1] (プライベート AS を利用した BGP 接続の場合) 顧客に割り当てて いる Prefix のみを accept する (例) 顧客に割り当てている Prefix を 192.0.2.0/24 と仮定した場 合、192.0.2.0/24 exact のみを accept する [2] (トランジット顧客の場合) 顧客側 AS から広告をすると通知があ った Prefix のみを accept する (例) 顧客側 AS から 192.0.2.0/24 の Prefix を広告すると言う通 知があったと仮定した場合、192.0.2.0/24 exact を accept する 2-2-2. Egress の Prefix フィルタ [1] 以下の Special-Use Prefix を reject する - デフォルト : 0.0.0.0/0 exact - プライベートアドレス : 10.0.0.0/8 or longer 172.16.0.0/12 or longer 192.168.0.0/16 or longer - 共用 (shared) アドレス : 100.64.0.0/10 - ループバックアドレス : 127.0.0.0/8 or longer - リンクローカルアドレス : 169.254.0.0/16 or longer - TEST-NET-1 アドレス : 192.0.2.0/24 or longer - ベンチマークテストアドレス : 198.18.0.0/15 or longer - TEST-NET-2 アドレス : 198.51.100.0/24 or longer - TEST-NET-3 アドレス : 203.0.113.0/24 or longer - マルチキャストアドレス : 224.0.0.0/3 or longer [2] 自 AS で持っている Prefix を aggregate して accept をする - 自 AS 内部で使用している細かい Prefix をそのまま外部に広告 をしないようにする 2-2-3. Ingress の AS-PATH フィルタ - 特に無し - 2-2-4. Egress の AS-PATH フィルタ [1] プライベート AS 番号を外部に広告しないようにする - 概要 : プライベート AS 番号を顧客に割り当てているなどの場合 には、AS 外部にプライベート AS 番号が入った AS-PATH の経路を広告しないようにする必要がある為、AS-PATH か らプライベート AS 番号を削除する (例 : remove-private-as などを利用する) - 効果 : プライベート AS 番号が入った AS-PATH の経路を広告す る事によって発生するトラブルを事前に防ぐ 3. (運用者、ルータの) リソースにより設定を考慮するフィルタ 3-1. パケットフィルタ 3-1-1. Ingress のパケットフィルタ [1] 顧客接続で使用をしているインターフェースのアドレスが Destination アドレスとなっている icmp パケットの処理優先度を 低くしたり、icmp パケットのデータサイズによって accept また は reject をする (例 : 512 Bytes 以上は reject する) - 長所 : ルータ宛に大量の icmp アタックパケットが来た場合に、 ルータの過負荷が発生する事を防ぐ事が可能 - 短所 : 顧客などが icmp パケットの優先度を低くしたルータを経 由する traceroute などをした場合、遅延が発生している ように見えてしまう事がある [2] 顧客側で持っているアドレスブロックが Source アドレスとなって いるパケットのみを accept する - 顧客のネットワーク形態を考慮した上で、設定をする必要がある (このフィルタを設定する事により、非対称ルーティングなどを利 用している顧客の通信に影響が発生する場合があるので、注意が 必要となる 例 : 衛星インターネットサービスを利用している顧客など) [3] 自 AS と接続をしている IX セグメントのアドレスが Destination アドレスとなっている BGP (179/TCP) パケットを reject する (もしくは、IX 接続ルータのコア側インターフェースにおける Ingress フィルタにて reject をすると言う方法もある) - 効果 : BGP の脆弱性対策として有効となる 3-1-2. Egress のパケットフィルタ [1] 以下の Special-Use Prefix が Source アドレスになっているパケ ットを reject する - 自身のネットワーク : 0.0.0.0/8 - プライベートアドレス : 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 - 共用 (shared) アドレス : 100.64.0.0/10 - ループバックアドレス : 127.0.0.0/8 - リンクローカルアドレス : 169.254.0.0/16 - TEST-NET-1 アドレス : 192.0.2.0/24 - ベンチマークテストアドレス : 198.18.0.0/15 - TEST-NET-2 アドレス : 198.51.100.0/24 - TEST-NET-3 アドレス : 203.0.113.0/24 - マルチキャストアドレス : 224.0.0.0/3 - 自ネットワークの内部バックボーンがプライベートアドレスによ って構成されている場合には、プライベートアドレスに対するフ ィルタは設定対象外とするかどうかの検討をする必要がある 3-2. 経路フィルタ (※ BGP 接続顧客を対象にした経路フィルタ) 3-2-1. Ingress の Prefix フィルタ - 特に無し - 3-2-2. Egress の Prefix フィルタ - 特に無し - 3-2-3. Ingress の AS-PATH フィルタ [1] ピアの相手から広告をすると通知があった AS-PATH の経路のみを accept する - ピアの相手からの経路更新通知を元にしてフィルタを設定する 3-2-4. Egress の AS-PATH フィルタ - 特に無し - 3-3. フィルタの運用を軽減する為に有効な技術 3-3-1. uRPF (unicast Reverse Path Forwarding) - 概要 : インターフェースに入力してくるパケットの Source アド レスが正規のものかどうかについて、ルーティングテーブ ルを利用しリバースパスが存在するかどうかの情報を元に チェックをする - 効果 : 静的なフィルタ設定をする事が無く、Source アドレスが 詐称されたパケットを reject する事が出来る 3-3-2. Max-Prefix-Limits - 概要 : 1つの BGP ピアから受信する Prefix 数の最大値を制限す る設定で、この設定で定義した閾値以上の Prefix は受信 をしないようにする - 効果 : BGP ピアの相手側のトラブルなどによって、相手側から大 量の経路広告が発生した場合、その経路の受信によって生 じる自 AS のルータの過負荷を防止する事が出来る 4. 謝辞 この文書の作成にあたっては、非常に多くの方からのご協力とサポートが 不可欠なものでした。 まず、Interdomain Routing Security Workshop の参加者の皆様、および JANOG メーリングリストのメンバーの皆様に感謝を致します。 皆様からのご意見とご提案はこの文書をまとめていく為にとても重要なもの でした。中でも、石田慶樹様、高田寛様、西野大様、吉野誠吾様からは発表 の会場において多くのご意見をいただきました。 このような技術文書では、実際にネットワークの運用実務を経験されている 方からの助言がなによりの支援だと実感しております。 この文書を作成する機会を与えていただき、文書作成の為に貴重な時間を 割いていただいた近藤邦昭様、吉田友哉様、仲西亮子様に感謝を致します。 近藤邦昭様からは、技術面での助言はもちろん、文書の構成についての助言 もしていただきました。 藤井秀雄様にも感謝を致します。藤井様には、この文書を分かりやすくす る為の図の作成をしていただきました。 最後に、この文書の発表にあたって、業務の時間を割いて発表のレビュー に協力をしていただいた株式会社ドリーム・トレイン・インターネットのネ ットワーク運用メンバーに感謝を致します。 5. この文書の作成にあたり、参考にさせていただいた文献 以下の文献を参考にして、本文書を作成しています。 1. The Team Cymru Documents http://www.team-cymru.org/ReadingRoom/Documents/ 1.1. Bogon List http://www.team-cymru.org/Services/Bogons/http.html 1.2. Secure BGP Template http://www.team-cymru.org/ReadingRoom/Templates/secure-bgp-template.html 1.3. Secure IOS Template http://www.cymru.com/Documents/secure-ios-template.html 1.4. Secure JunOS Template http://www.cymru.com/gillsr/documents/junos-template.pdf 2. Cisco ISP Resource ftp://ftp-eng.cisco.com/cons/isp/ 6. その他に有益な文献 本文書を参照するにあたり、以下の文献もあわせて参照をする事をお勧め します。 1. RFC2827 - Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing http://www.ietf.org/rfc/rfc2827.txt 2. RFC5735 - Special Use IPv4 Addresses http://www.ietf.org/rfc/rfc5735.txt ※ RFC5735 の中に記載されているアドレスの一覧はフィルタで reject をすべきアドレスの一覧とは異なります。 3. RFC3704 - Ingress Filtering for Multihomed Networks http://www.ietf.org/rfc/rfc3704.txt 4. JANOG Comment 1000 - xSP のルータにおいて設定を推奨するフィルタ の項目について http://www.janog.gr.jp/doc/janog-comment/jc1000.txt 7. 著者 氏名 : 馬渡 将隆 [MAWATARI Masataka] 所属 : 日本インターネットエクスチェンジ株式会社 EMail : mawatari@jpix.ad.jp 8. 免責事項 本文書によって発生した損失や損害について、著者は一切責任を負いませ ん。 9. この文書の配布に関して 本文書の再配布や転載は内容に関して一切の変更を加えないと言う条件で 許可をします。 以上 ---------------------------------------------------------------------- 更新履歴 ---------------------------------------------------------------------- 日付 : 2005/09/09 - 文書公開 日付 : 2010/08/01 - 下記のとおり 「Special-Use Prefix」 の箇所を変更 - 「TEST-NET : 192.0.2.0/24」 を 「TEST-NET-1 アドレス : 192.0.2.0/24」 に変更 - 「TEST-NET-2 アドレス : 198.51.100.0/24」 を追記 - 「TEST-NET-3 アドレス : 203.0.113.0/24」 を追記 - 2-2-1. [1] と 2-2-1. [2] にある 「Ingress の Prefix フィルタ」に ついて、例としてあげてある IP アドレスを 「222.222.0.0/20」 から 「192.0.2.0/24」 に変更 - 「5. この文書の作成にあたり、参考にさせていただいた文献」 にある 「The Team Cymru Documents」 の URL を変更 - 「5. この文書の作成にあたり、参考にさせていただいた文献」 にある 「Secure BGP Template」 の URL を変更 - 「6. その他に有益な文献」 にある 「RFC3330 - Special-Use IPv4 Addresses」 を削除 - 「6. その他に有益な文献」 に 「RFC5735 - Special Use IPv4 Addresses」 を追記 - 「7. 著者」 にある 「所属」 と 「EMail」 を更新 日付 : 2012/07/19 - 下記のとおり 「Special-Use Prefix」 の箇所を変更 - 「共用 (shared) アドレス : 100.64.0.0/10」 を追記 - 「5. この文書の作成にあたり、参考にさせていただいた文献」 にある 「Bogon List」 の URL を変更 ----------------------------------------------------------------------