中年engineerの独り言 - crumbjp

LinuxとApacheの憂鬱

簡単SNMP(ACL設定 v1,v2c編)

SNMPで誤解してた部分を勉強し直したついでに纏めてみた。

前回の続き

セキュリティー設定

v1 , v2c と v3 で大きく方法が異なる。

v1,v2c
  • OID
  • 接続元IP
  • コミュニティー名

ACL制御する。
事実上、コミュニティー名しか守る要素が無い上に、これらは平文でやり取りされる。

完全に信頼できるネットワーク内のみで使う事を強くお勧めする!

v3
  • OID
  • ユーザ
  • パスワード

自然な認証・認可の形をしており、伝文の暗号化も出来る。

v1 , v2c

ユーザ,パスワード,暗号化などが無い為、事前準備も無くsnmpd.conf定義だけで完結する。

コミュニティー名

ほぼパスワード扱い。デフォルト(=public)から変更しなるべく類推不能にする。(しかし平文で流れるので気休めでしかない)

com2sec notConfigUser  default      crumbpublic

snmpdを再起動すると有効になる。

これが失敗して

$ snmpget -v 1 -c public 127.0.0.1 .1.3.6.1.2.1.1.5.0

こっちが成功するはず

$ snmpget -v 1 -c crumbpublic 127.0.0.1 .1.3.6.1.2.1.1.5.0

ACL(アクセス制限)

read-writeビューとread-onlyビューを分けるのが一般的。

# 接続元IPによって指定できるコミュニティを変える
com2sec local    localhost            crumbprivate
com2sec network  localhost            crumbpublic
com2sec network  192.168.0.0/24       crumbpublic

# 簡略化の為v1だけ
group   localGroup   v1           local
group   networkGroup v1           network

# 表示用view と書き込めるviewは範囲が違う
view    roview    included   .1.3.6.1
view    rwview    included   .1.3.6.1.2.1.1

# local にはrwviewへの書き込み権も与える。
access  localGroup   ""      any       noauth    exact  roview rwview none
access  networkGroup ""      any       noauth    exact  roview none   none
解説
  1. コミュニティーをグループ化
  2. 公開範囲をビューとして定義
  3. グループとビューを紐付け

それ程難しい事はしてない。

crumbprivate
ローカルホストからのみアクセス可能なコミュニティ。
crumbpublic
ネットワーク越しからアクセス可能なコミュニティ。(localhostからも可)
rwview
.1.3.6.1以下のツリーを定義
roview
.1.3.6.1.2.1.1以下のツリーを定義
localGroup
accessコマンドで指定する為の定義。読み取り用にroview,書き込み用にrwview が紐付けれられた。
networkGroup
同じく。読み取り用にroview,書き込み用にnone(無効)が紐付けれられた。

次回

今回、v3まで含めるつもりだったけどメゲたので次回。。

ACL設定v3編の予定