snmpd.conf
Broadband routerについてたSNMPagentを使ってみよう。
nokun
2002.6.30 ChiBUG
(page 1)
SNMP
SNMPについて(1)
- SNMPとは
- Simple Network Management Protcol
- ネットワークや機器の管理・監視をするためのプロトコル
- プロトコルや管理情報データベース(MIB)がRFCで規定されている
- SNMPには、1〜3のバージョンがある。
- マネージャとエージェント
- マネージャ…管理する機器
- マネージャはエージェントに対して問い合わせなどを送り情報を収集する
- エージェント…管理される機器
- デバイスが保持している情報オブジェクトにアクセスし、
- 値を取得し、マネージャに渡す。
(page 2)
SNMP
SNMPについて(2)
- SNMPのバージョン
- SNMPv1(RFC1157)
- コミュニティ名をパスワードとして利用する。
- 暗号化は考慮されていない。
- SNMPv2(RFC1351-1353 --> 1901-1908)
- v1の反省を踏まえ、
- 暗号化(実装されず)とパフォーマンスの向上が図る。
- SNMPv3(RFC2570-2576)
- SNMPv2の改良、
- MD5などの認証プロトコルの利用
(page 3)
SNMP
SNMPについて(3)
- SNMPで行われる主な動作
- Get…エージェント内のオブジェクトの値を取得する
- Set…エージェント内のオブジェクトの値を変更する
- Trap…エージェントからマネージャに情報を送信する
*Setは誤ると大変危険なので、実装されてない場合もある。
- SNMPのセキュリティ
- あまりイケてない。
- 機器のデフォルトがpublic privateとかになっている。
- community名をパスワードとして用いること。
- network上をこれが平文でやりとりされること
SNMP自体が、LANといったセキュリティが、
確立された(?)環境で使用されることを想定
(page 4)
SNMP
SNMPの実装(NET-SNMP etc)
(page 5)
SNMP
NET-SNMPのInstall
- Install
- ソースを持ってくる。展開する。
- ./configure -hし、オプションを設定して./configure
- マッタリしていると唐突に、
- >Default version of SNMP to use(3):3
- >System Contact Infomation (root@hoe.net):nokun@hoe.org
- >System Location (Unknown):NotePC
- とか聞いてくるので入力する。
- 更に、snmpdのログファイル名や使用ディレクトリを聞いてくるので
- >Location to write logfile(/var/log/snmpd.log):/var/log/snmpd.log
- >Location to write persistent infomation(/var/net-snmp):/var/net-snmp
- とか入力してお茶を濁し、configure終了
- makeして、make installする。
(page 6)
SNMP
snmpd.conf
- snmpdの設定
- 設定ファイル:/usr/local/share/snmp/snmpd.confを作成
- srcに付いてくるEXAMPLE.confを利用
- snmpconfを用いて対話して生成
- ゼロから記述
- 今回は、EXAMPLE.confに追加記述します。
- Community名の設定
- com2sec
- sec.name source community
- com2sec local localhost localcommunity
- コミュニティ名とそのネットワークの範囲をsec.nameに関連付け
- 機器独自に取得できない情報の設定
- syslocation
- syslocation エージェントデバイスのある場所
- syscontact
- syscontact エージェントの管理者の連絡先
(page 7)
SNMP
load disk proc
- disk
- ファイルシステムのディスク使用量を調査
- disk PATH [下限|%]
- disk / 1000(KB)
- disk / 30%
- proc
- プロセスの監視
- proc [上限] [下限]
- proc mountd
- proc ntalkd 4
- proc sendmail 10 1
(page 8)
SNMP
exec file
- exec
- 外部コマンドによる出力の取り込み
- exec [Label] [プログラム] [引数]
- exec echotest /bin/echo hello world
- この場合、UCD-MIBのextTable以下に格納される。
- exec [MIB番号] [Label] [プログラム] [引数]
- exec .1.3.6.1.4.1.2021.13 echotest /bin/echo hello world
- この場合、MIB番号以下に格納される。(すでに使われていなかったら)
- file
- fileのサイズに監視
- file [filesize]
- file 1000[KB]
- ただし、エラーのリポートはないらしい。
(page 9)
SNMP
SNMPツール
- NET-SNMPに付属するSNMPツール
- snmpbulkget snmpset
- snmpbulkwalk snmpstatus
- snmpcheck snmptable
- snmpconf snmptest
- snmpd snmptranslate
- snmpdelta snmptrap
- snmpdf snmptrapd
- snmpget snmpusm
- snmpgetnext snmpvacm
- snmpinform snmpwalk
- snmpnetstat
- command [共通オプション] ホスト名 パラメータ
- 共通コマンドオプション
- -d SNMP-packetダンプ
- -v SNMPプロトコルのバージョン(1 2c 3)
- -p port番号
- -c community名
(page 10)
SNMP
snmpget snmpwalk snmpgetnext snmpbulkget snmpbulkwalk
- snmpget
- snmpwalk
- パラメータで指定したものを基点としてずらずら情報を引き出す。
- snmpgetnext
- パラメータで指定したものの次のオブジェクトの情報を引き出す。
- snmpbulkget
- snmpbulkwalk
(page 11)
SNMP
snmptable snmpdelta snmpstatus snmptest
- snmptable
- テーブルIDを指定することでテーブル内容表示
- テーブルID以外不可。
- snmpdelta
- snmpstatus
- IPaddress、システム情報、稼働時間、パケット数などを表示
- snmptest
(page 12)
SNMP
snmpnetstat snmptranslate
- snmpnetstat
- デバイス情報とルーティングテーブルを表示
- -a 全てのソケット接続状態
- -i インターフェースの状態
- -I device deviceのインターフェースの状態
- -P (ip icmp tcp udp)の統計情報
- -r ルーティングテーブル情報
- -s プロトコル別で統計情報
- snmptranslate
- MIBオブジェクトの情報を表示
- man snmptranslateを見てください。
(page 13)
SNMP
snmpset
- snmpset
- SETツール
- snmpset [共通オプション] agent MIB date-type 値
- a IPアドレス
- b ビット
- x 16進数
- d 10進数
- i 整数
- n null
- o objectID
- t 時間
- u 符号無し整数
- snmpset -c community agent .1.3.6.1.4.1.2021.100.11.0 i 1
(page 14)
SNMP
snmptrap snmptrapd
- snmptrap
- snmptrapを設定
- snmptrap -v 1 [COMMON OPTIONS] [-Ci] enterprise-oid agent
- generic-trap specific-trap uptime [OID TYPE VALUE]...
- SNMP前定義
- 0 設定変更ありで、再起動
- 1 設定変更なしで、再起動。
- 2 リンクダウン
- 3 リンクアップ
- 4 認証エラー
- 5 EGPにダウン
- 6 vendertrap
- snmptrap -v 1 -c public manager enterprises.spider test-
- hub 3 0 '' interfaces.iftable.ifentry.ifindex.1 i 1
- snmptrapd
(page 15)