net-snmpによるv3の設定方法、及びパッチについて
赤松 エイト [著] 2008/10/08 14:00

snmpは広く知られた監視用のプロトコルです。しかし実際は“シンプル”ではなく、複雑な仕様、深いMIB-Tree、異なるバージョンなど、理解が困難と思われます。SNMPについて最後となる本稿では、SNMPv3の特徴、net-snmpにおけるv3の取り扱い方、およびソースファイルへのパッチの当て方について述べていきます。

1 2 3 →

はじめに

 この連載では監視用プロトコルとして広く知られているSNMPについて設定方法などを交えて説明していきます。本レポートではSNMPv3の説明、net-snmpにおけるv3の扱い方、net-snmpにおけるパッチの当て方に焦点を当ててみたいと思います。

 構築環境はFedora7(2.6.23.17-88.fc7)、32bit、glibc-2.6-4、gcc-4.1.2を使用しています。

これまでの記事

8. SNMPv3について

 いままで、net-snmpのマネージャ用のコマンドとしてsnmpwalkとかsnmpsetなどを使用してきました。

 特に記述してませんでしたが、これらはすべてSNMPv2モードで行っていました(以降、SNMPv*は単にv*と記述します)。

 v1とv2では、コミュニティ名による認証スタイルを取っていて、基本的な動作は変わらないという理由からv1のコマンドを使用しませんでしたが、v2とv3は動作も設定もかなり異なります。

 v3の方針は、ひとことで言うと認証機能と暗号化機能になります。認証機能と暗号化機能の必要性は、いわずもがなですが、なりすまし防止と漏洩および書き換えの防止です。つまりv3はセキュリティ対策が施されたバージョンです。

 どのようなセキュリティ対策かと言うと、ユーザーベース・セキュリティ・モデルというモデルで、ひとことで言えばユーザー名とパスワードによるアクセスです。

 net-snmpはv3を利用できますが、各種設定が必要になります。当章では、net-snmpによるv3の使用法について述べていきます。

8.1 3つのモード

 前述しましたが、SNMPv3では認証と暗号化の2つの機能を定義しています。

 さらにv3では認証と暗号化機能の組み合わせが可能で、3つの動作方針を提供しています。

  • 非認証・非暗号化(noAuthNoPriv)
  • 認証機能、暗号化機能ともに未設定です。
    デバッグなどの特定の処理を行う際にセキュリティをオフにして実行する時などに有用です。

  • 認証・非暗号化(authNoPriv)
  • ユーザーはエージェント上のMIBツリー上の任意のOIDにアクセスする前に認証機能が動作します。

  • 認証・暗号化(authPriv)
  • ユーザーはエージェント上のMIBツリーの任意のOIDにアクセスする前に認証機能が動作します。
    さらに要求と応答電文はすべて暗号化され、より安全になります。

 以降はnet-snmpによるv3の動作環境の構築方法を具体的に説明します。一番厳しいauthPrivで設定します。

8.2 仮snmpd.confファイルとユーザー設定

 net-snmpにおけるv3の設定には今まで設定してきたsnmpd.confファイルだけでなく、仮のsnmpd.confファイルを使用します。仮snmpd.confファイルは、「/var/net-snmp/snmpd.conf」にあります。

 このファイルは消されてもnet-snmpが自動生成するファイルで、v2で使用する分にはまったく関係ありません。

 v3ではこのファイルにユーザー情報を下記の通り記述します。

createUser ユーザー名 (MD5|SHA) 認証用パスワード [DES|AES 暗号化用パスワード]
記述する情報の説明
項目説明
ユーザー名今まで使用してきたsnmpd.confファイルにて、rouserもしくはrwuserで登録されたユーザー名を設定します。
MD5|SHAどちらも一方向ハッシュ関数です。net-snmpではSHAを推奨しています。詳細はMD5のWikiのページSHAのWikiページをどうぞ。
認証用パスワードダブルクォーテーションで囲っても良いです。8文字以上でなくてはいけません。
DES|AES暗号化の規格を指定します。DESは使い古された規格、AESは新たな暗号化の規格です。もちろんAESの使用を推奨しています。詳しくはDESのWikiページおよびAESのWikiページを参照ください。
暗号化用パスワード省略可能で、その際は認証用パスワードと同じになります。ダブルクォーテーションで囲っても良いです。8文字以上でなくてはいけません。

 記述後にsnmpdを起動すると、createUser文はなくなり、usmUser文に編集されます。

createUser snmproot SHA hogehoge AES fugafuga
->
usmUser 1 3 0x80001f88807a397b4945216448 0x736e6d70726f6f7400 0x736e6d70726f6f7400 NULL .1.3.6.1.6.3.10.1.1.3 0x76ad903387055ba3912efdd4ded453c377693941 .1.3.6.1.6.3.10.1.2.4 0x4ac39cc9419c76fd8565f72dd669df72 ""

 通常、この手順で登録するユーザーは1人に留め、2人目以降は後述するコマンド手順によって追加します。当レポートもこの方針に則り、登録するユーザーとして管理者ユーザーを1名にし、それ以降登録する際はコマンドで追加します。


1 2 3
→
INDEX
net-snmpについて(v3の設定、パッチについて)
Page1
はじめに
8. SNMPv3について
v3環境構築手順
9. その他(パッチについて)
10. 最後に
参考文献とレビュー
プロフィール
赤松 エイト エイト

(株)DTSに勤てます。
WebアプリやJavaやLL等の上位アプリ環境を密かに憧れつつも、ず~っとLinuxとかHP-UXばかり、ここ数年はカーネル以上アプリ未満のあたりを行ったり来たりしています。
mixiもやってまして、こちらは子育てとか日々の日記メインです。


記事へのコメント・トラックバック機能は2011年6月に廃止させていただきました。記事に対する反響はTwitterやFacebook、ソーシャルブックマークサービスのコメントなどでぜひお寄せください。

スポンサーサイト