当記事は、新人研修の一環でLinuxのnet-snmpの設定ファイルsnmpd.confに設定を投入中、「解説のとおりに書き換えたのはいいけど、何を設定しているんだ…?」と思ったので、snmpd.confの書き換えで何を設定しているのかを調べ、まとめてみたものです。
目次
snmpd.confとは
snmpd.confは設定ファイル
今回調べたsnmpd.confはSNMPエージェントの設定ファイルです。この設定ファイルではSNMPにおけるバージョンやコミュニティを定義します。
アクセス制御
今回snmp.confで設定を書き換える部分はアクセス制御と呼ばれるもので、
snmpデーモン(snmpd)が設定ファイル内のcom2sec , group . access . view
というキーワードを認識することで、キーワードに紐づいた設定をすることが出来ます。
snmpd.confの内容
今回使用したsnmpdとLinuxのバージョンは以下の通りです。
SNMP
Linux
snmpd.confの場所
/etc/snmpd/snmpd.conf
snmpdの各設定ファイルは/etc/snmpd配下にあります。
snmpd.confを開く前に
ファイルの内容を書き換える前に、
cpコマンドでファイルを別名でコピーし、保存しておくことを推奨します。
失敗しても、書き換えを行う前のファイルからロールバックすることが出来ます。
com2sec
com2secでは応答する送信元IPアドレス、及びコミュニティ名を定義します。
ここでは以下の設定をします。
- NAME :com2secの任意の名前
- SOURCE : 応答する送信元IPアドレスやホスト名を指定。またはdefault
- COMMUNITY:コミュニティ名
マネージャー側とエージェント側のコミュニティ名を同じ名前にする必要があります。
defaultは0.0.0.0/0を指定しており、全てのアドレスからのポーリングを許可します。
group
groupでは使用するsnmpバージョンを定義しています。
ここでは以下の設定をします。
- NAME :groupの名前
- MODEL :SNMPバージョン
- SECURITY:セキュリティ名
セキュリティ名にはcom2secのNAMEで設定したものを書きます。
SNMPバージョンは v1/v2c/v3 のいずれかを1行につき1つ設定します。
view
viewではSNMPで取得可能な値の範囲を定義しています
ここでは以下の設定をします。
- NAME :viewの任意の名前
- TYPE :「included」もしくは「excluded」のいずれか
- SUBTREE :OID(OIDに関して説明すると長くなるので、最後に参考リンクを紹介します)
- MASK :16進数の数値を入れます(何も入力しなければffという値が入っている)
「included」は指定されたOIDの範囲の値を取得する設定です。
「excluded」は指定されたOIDの範囲外の値を取得する設定です。
access
accessは、groupやviewの設定を基に、アクセスの設定を行います。
accessには以下の設定をします。
- NAME :groupで設定したNAME
- CONTEXT:SNMPバージョンがv1、v2cの場合は""(空文字)
- MODEL : any/v1/v2c/usmのいずれか(SNMPバージョン)
- LEVEL :noauth/auth/priv のいずれか
- PREFX :exact/prefix のいずれか
- READ :読み取りに関して事前に定義していたviewのNAME
- WRITE :書き込みに関して事前に定義していたviewのNAME/無いなら「none」を設定
- NOTIFY :通知に関して事前に定義していたviewのNAME/無いなら「none」を設定
CONTEXTは、使用するSNMPバージョンがv3の場合のみ、
定義したコンテキストを設定します。
LEVELは使用するSNMPバージョンがv1かv2cの場合、noauthを設定します。
使用するSNMPバージョンがusmの場合のみ auth/priv いずれかを設定できます。
補足
accessとgroupのMODELでそれぞれ異なるSNMPバージョンを設定した場合、
SNMPが応答しなくなります。
そのため、accessとgroup両方のMODELに
同じSNMPバージョンを設定するか、anyを設定する必要があります。
anyはv1/v2cであればどちらが設定されていてもSNMPが応答します。
まとめ
snmpd.confの設定は以上のような意味と役割を持っています。
snmpの理解の助けになれば幸いです。
参考リンク
参考にさせて頂いたリンクをまとめておきます
Knowledge Stare 内部リンク
Linux Server環境(CentOS,UbuntuServer)にSNMP(v1, v2c) 設定を追加する
https://www.secuavail.com/kb/tech-blog/tb-190306_01/
OIDについて解説があります↓
SNMPとは?新入社員が生まれてはじめて触ってみた!
https://www.secuavail.com/kb/log-technique/about-snmp
外部リンク
snmpd.confについて参考にさせていただきました。
Man page of SNMPD.CONF
https://linuxjm.osdn.jp/html/ucd-snmp/man5/snmpd.conf.5.html
net-snmpの設定 -Qiita
https://qiita.com/toshiro3/items/e8f87da88cd383a6421d
Net-SNMPの設定について – private tips
https://zvub.hateblo.jp/entry/20161231/1483180199
/etc/snmp/snmpd.confとは – わわわIT用語辞典
https://wa3.i-3-i.info/word13601.html
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。