Red Hat Training

A Red Hat training course is available for Red Hat Linux

19.6.3. Net-SNMP の設定

Net-SNMP Agent Daemon の設定を変更するには、/etc/snmp/snmpd.conf 設定ファイルを編集します。Red Hat Enterprise Linux 6 に備わっているデフォルトの snmpd.conf ファイルには、多くのコメントが含まれているため、エージェントを設定するのに適切な開始ポイントとなります。
本項では、システム情報及び認証の設定という 2 つの一般的なタスクについて重点的に説明します。利用可能な設定指示文の詳細については、snmpd.conf(5) の man ページを参照して下さい。さらに、net-snmp パッケージには snmpconf と呼ばれるユーティリティがあり、有効なエージェント設定をインタラクティブに作成するために使用できます。
本項で説明されている snmpwalk ユーティリティを使用するには、net-snmp-utils パッケージがインストールされている必要がある点に注意して下さい。

注記

設定ファイルへの変更を反映させるには、root として以下のコマンドを実行することで、snmpd サービスが設定を再度読み取るように強制します:
service snmpd reload

19.6.3.1. システム情報の設定

Net-SNMP は、system ツリーにより基本的なシステム情報を提供します。例えば、次の snmpwalk コマンドはデフォルトのエージェント設定を持つ system ツリーを示しています:
~]# snmpwalk -v2c -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (99554) 0:16:35.54
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
デフォルトでは、sysName オブジェクトはホスト名に設定されています。sysLocation 及び sysContact オブジェクトは、syslocation 及び syscontact 指示文の値を変更することで /etc/snmp/snmpd.conf ファイルで設定可能です。例えば以下のとおりです:
syslocation Datacenter, Row 3, Rack 2
syscontact UNIX Admin <admin@example.com>
設定ファイルに変更を加えた後は、再度 snmpwalk コマンドを実行することにより設定を再ロードしてテストします:
~]# service snmpd reload
Reloading snmpd: [  OK  ]
~]# snmpwalk -v2c -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158357) 0:26:23.57
SNMPv2-MIB::sysContact.0 = STRING: UNIX Admin <admin@example.com>
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
SNMPv2-MIB::sysLocation.0 = STRING: Datacenter, Row 3, Rack 2

19.6.3.2. 認証の設定

Net-SNMP Agent Daemon は SNMP プロトコルの 3 つの全バージョンに対応します。最初の 2 つのバージョン (1 と 2c) は、コミュニティ文字列 を使用した簡易認証を提供します。この文字列は、エージェントとクライアントユーティリティ間で共有される秘密です。この文字列は、ネットワーク上でクリアテキストで渡されますが、安全性があるとは見なされません。SNMP プロトコルのバージョン 3 は、各種プロトコルを使用したユーザー認証とメッセージの暗号化に対応しています。また Net-SNMP エージェントは、SSH によるトンネリング、X.509 証明書を用いた TLS 認証、Kerberos 認証にも対応しています。
SNMP Version 2c Community の設定
SNMP version 2c community を設定するには、/etc/snmp/snmpd.conf 設定ファイルにある rocommunity または rwcommunity 指示文を使用します。指示文の形式は、以下のとおりです:
directive community [source [OID]]
community は使用するコミュニティ文字列、source は IP アドレスまたはサブネット、OID はアクセスを提供する SNMP ツリーです。例えば、次の指示文は、ローカルマシン上でコミュニティ文字列 redhat を使用するクライアントに system ツリーへの読み取り専用のアクセスを与えます:
rocommunity redhat 127.0.0.1 .1.3.6.1.2.1.1
設定をテストするには、-v-c オプションを付けた snmpwalk コマンドを使用します:
~]# snmpwalk -v2c -c redhat localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (158357) 0:26:23.57
SNMPv2-MIB::sysContact.0 = STRING: UNIX Admin <admin@example.com>
SNMPv2-MIB::sysName.0 = STRING: localhost.localdomain
SNMPv2-MIB::sysLocation.0 = STRING: Datacenter, Row 3, Rack 2
SNMP Version 3 User の設定
SNMP version 3 user を設定するには、net-snmp-create-v3-user コマンドを使用します。このコマンドは、/var/lib/net-snmp/snmpd.conf および /etc/snmp/snmpd.conf ファイルへエントリを追加し、ユーザーを作成してそのユーザーにアクセスを付与します。net-snmp-create-v3-user コマンドは、エージェントが実行中でない時にのみ実行可能な点に注意してください。以下の例では redhatsnmp というパスワードを持つ admin ユーザーを作成します。
~]# service snmpd stop
Stopping snmpd:                                            [  OK  ]
~]# net-snmp-create-v3-user
Enter a SNMPv3 user name to create:
admin
Enter authentication pass-phrase:
redhatsnmp
Enter encryption pass-phrase:
  [press return to reuse the authentication pass-phrase]

adding the following line to /var/lib/net-snmp/snmpd.conf:
   createUser admin MD5 "redhatsnmp" DES
adding the following line to /etc/snmp/snmpd.conf:
   rwuser admin
~]# service snmpd start
Starting snmpd:                                            [  OK  ]
net-snmp-create-v3-user/etc/snmp/snmpd.conf に追加する rwuser 指示文 (または -ro のコマンドラインオプションが提供されている場合は rouser) の形式は、rwcommunity 及び rocommunity 指示文と似ています。
directive user [noauth|auth|priv] [OID]
user はユーザー名で、OID はアクセスを提供する SNMP ツリーです。デフォルトでは、Net-SNMP Agent Daemon は認証済み要求のみを許可します (auth オプション)。noauth オプションを使うと、認証されていない要求を許可することができ、priv オプションは暗号化の使用を強制します。authpriv オプションを使用すると、要求の認証、応答の暗号化が必要であると指定します。
例えば、以下の行では、ユーザー admin にツリー全体への読み取りと書き込みのアクセスを付与しています:
rwuser admin authpriv .1
設定をテストするには、使用しているユーザーのホームディレクトリ内に .snmp ディレクトリを作成して、そのディレクトリに次の行を含む snmp.conf と呼ばれる設定ファイルを作成します (~/.snmp/snmp.conf):
defVersion 3
defSecurityLevel authPriv
defSecurityName admin
defPassphrase redhatsnmp
これで、エージェントをクエリする場合、snmpwalk コマンドはこうした認証設定を使用するようになります:
~]$ snmpwalk -v3 localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost.localdomain 2.6.32-122.el6.x86_64 #1 SMP Wed Mar 9 23:54:34 EST 2011 x86_64
[出力は省略されています]