はじめに
この連載では監視用プロトコルとして広く知られているSNMPについて設定方法などを交えて説明していきます。本レポートではSNMPv3の説明、net-snmpにおけるv3の扱い方、net-snmpにおけるパッチの当て方に焦点を当ててみたいと思います。
構築環境はFedora7(2.6.23.17-88.fc7)、32bit、glibc-2.6-4、gcc-4.1.2を使用しています。
これまでの記事
- 第1回:net-snmpについて(基礎知識)
- 第2回:net-snmpについて(環境構築)
- 第3回:net-snmpについて(機器管理)
- 第4回:net-snmpについて(Trap設定)
- 第5回:net-snmpについて(独自監視項目の追加・前編)
- 第6回:net-snmpについて(独自監視項目の追加・後編)
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)
- 認証・暗号化(authPriv)
認証機能、暗号化機能ともに未設定です。
デバッグなどの特定の処理を行う際にセキュリティをオフにして実行する時などに有用です。
ユーザーはエージェント上のMIBツリー上の任意のOIDにアクセスする前に認証機能が動作します。
ユーザーはエージェント上の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名にし、それ以降登録する際はコマンドで追加します。