見出し画像

SNNPのメッセージ処理とセキュリティー

「実践SNMP教科書」の第5章の復刻版です。

この章では、SNMPメッセージ、セキュリティ、符号化、トランスポート層へのマッピングについて説明します。SNMPプロトコル操作で説明したPDUは、SNMPメッセージにカプセル化し、ベーシックエンコーディングルール(BER)で符号されます。符号化されたSNMPメッセージは、UDPなどのトランスポート層にマッピングされネットワークに転送されます。現在利用可能なSNMPメッセージには、SNMPv1メッセージ、SNMPv2Cメッセージ、SNMPv3メッセージの3種類があります。セキュリティ機能は、SNMPv3メッセージ処理と深く関連しています。

「実践SNMP教科書 原稿」

SNMPv1メッセージ

SNMPv1メッセージは、SNMPv1 PDUをカプセル化するためのSNMPメッセージ形式です。RFC1157で次のソースコードのように定義されています。フォーマットを次の図に示します。

「実践SNMP教科書 原稿」
         -- トップレベルメッセージ
          Message ::=
                  SEQUENCE {
                      version          -- version-1はこのRFCで定義
                          INTEGER {
                              version-1(0)
                          },
                      community        -- Community名
                          OCTET STRING,
                      data             -- 基本的にはPDU
                          ANY          -- 認証データが入る可能性もあった。
                  }
SNMPv1メッセージフォーマット

version

versionは、整数型で、0がSNMPv1メッセージを示します。1ではありませんので、注意してください。基本的に、versionのフィールドまでは、各SNMPメッセージで共通です。versionの値によって、SNMPメッセージ処理サブシステムを選択することができるようになっています。

「実践SNMP教科書 原稿」

community

communityは、SNMPエージェントにおけるMIBオブジェクトのアクセス権を制御するパスワードあるいは、合い言葉のようなものです。クリアテキストで送信されるため、パスワードほどのセキュリティ機能はありません。定義上は長さ等の制限はありませんが、一般的には、publicなどの短い文字列を使用しています。不必要に長い文字列を使ったとしても、パケットをダンプすれば読み取られてしまうので、あまり意味がありません。多くの場合、デフォルトpublicで読み出しのみのアクセス可能になっています。

「実践SNMP教科書 原稿」

data

dataの部分にはPDUが入ります。SNMPの開発当初は、認証データなどをいれることを検討していたようですが、SNMPv3では新しいメッセージフォーマットが開発されたため可能性はなくなりました。

「実践SNMP教科書 原稿」

SNMPv2Cメッセージ

SNMPv2Cメッセージは、SNMPv2のPDUを運ぶために、暫定的に定義されたものです。セキュリティ機能を備えたSNMPv2メッセージフォーマットは、歴史的な仕様となりSNMPv2のPDUを運ぶための手段が無かったためです。SNMPv2Cは、RFC1901で定義された"The Community-based SNMPv2"の略です。その名が示すとおり、SNMPv1メッセージと同じcommunityを使ったアクセス制御を行う仕様です。SNMPv2Cメッセージの定義を次のソースコードに示します。また、メッセージフォーマットを次の図に示します。SNMPv2Cメッセージは、標準仕様ではなく実験的な仕様で、現在は実装しているマネージャ、エージェントが存在しますが、将来的には、SNMPv3メッセージに置き換わって行くと考えられます。

「実践SNMP教科書 原稿」

ここから先は

26,123字 / 30画像
SNMPの仕様について解説した本やサイトは、沢山あると思います。 独自の拡張MIBを自分で設計してMIBファイルやエージェントを作る方法を解説した教科書はないと思います。

20年近く前に書いた「実践SNMP教科書」を現在でも通用する部分だけ書き直して復刻するマガジンです。最近MIBの設計で困っている人に遭遇し…

開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。