![見出し画像](https://assets.st-note.com/production/uploads/images/154653682/rectangle_large_type_2_d5713b69f1f5ed504c3a54aae7f61905.png?width=1200)
SNNPのメッセージ処理とセキュリティー
「実践SNMP教科書」の第5章の復刻版です。
この章では、SNMPメッセージ、セキュリティ、符号化、トランスポート層へのマッピングについて説明します。SNMPプロトコル操作で説明したPDUは、SNMPメッセージにカプセル化し、ベーシックエンコーディングルール(BER)で符号されます。符号化されたSNMPメッセージは、UDPなどのトランスポート層にマッピングされネットワークに転送されます。現在利用可能なSNMPメッセージには、SNMPv1メッセージ、SNMPv2Cメッセージ、SNMPv3メッセージの3種類があります。セキュリティ機能は、SNMPv3メッセージ処理と深く関連しています。
SNMPv1メッセージ
SNMPv1メッセージは、SNMPv1 PDUをカプセル化するためのSNMPメッセージ形式です。RFC1157で次のソースコードのように定義されています。フォーマットを次の図に示します。
-- トップレベルメッセージ
Message ::=
SEQUENCE {
version -- version-1はこのRFCで定義
INTEGER {
version-1(0)
},
community -- Community名
OCTET STRING,
data -- 基本的にはPDU
ANY -- 認証データが入る可能性もあった。
}
![](https://assets.st-note.com/img/1726561375-lJfIZPEknx1WN8qDctv6jgLX.png?width=1200)
version
versionは、整数型で、0がSNMPv1メッセージを示します。1ではありませんので、注意してください。基本的に、versionのフィールドまでは、各SNMPメッセージで共通です。versionの値によって、SNMPメッセージ処理サブシステムを選択することができるようになっています。
community
communityは、SNMPエージェントにおけるMIBオブジェクトのアクセス権を制御するパスワードあるいは、合い言葉のようなものです。クリアテキストで送信されるため、パスワードほどのセキュリティ機能はありません。定義上は長さ等の制限はありませんが、一般的には、publicなどの短い文字列を使用しています。不必要に長い文字列を使ったとしても、パケットをダンプすれば読み取られてしまうので、あまり意味がありません。多くの場合、デフォルトpublicで読み出しのみのアクセス可能になっています。
data
dataの部分にはPDUが入ります。SNMPの開発当初は、認証データなどをいれることを検討していたようですが、SNMPv3では新しいメッセージフォーマットが開発されたため可能性はなくなりました。
SNMPv2Cメッセージ
SNMPv2Cメッセージは、SNMPv2のPDUを運ぶために、暫定的に定義されたものです。セキュリティ機能を備えたSNMPv2メッセージフォーマットは、歴史的な仕様となりSNMPv2のPDUを運ぶための手段が無かったためです。SNMPv2Cは、RFC1901で定義された"The Community-based SNMPv2"の略です。その名が示すとおり、SNMPv1メッセージと同じcommunityを使ったアクセス制御を行う仕様です。SNMPv2Cメッセージの定義を次のソースコードに示します。また、メッセージフォーマットを次の図に示します。SNMPv2Cメッセージは、標準仕様ではなく実験的な仕様で、現在は実装しているマネージャ、エージェントが存在しますが、将来的には、SNMPv3メッセージに置き換わって行くと考えられます。
ここから先は
![](https://assets.st-note.com/production/uploads/images/14333815/profile_ee1accba5615957e5029db85d57fdb0a.jpg?fit=bounds&format=jpeg&quality=85&width=330)
実践SNMP教科書 復刻版
20年近く前に書いた「実践SNMP教科書」を現在でも通用する部分だけ書き直して復刻するマガジンです。最近MIBの設計で困っている人に遭遇し…
開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。