SNMP

| | コメント(8) | トラックバック(0)

あるWindowsに「簡易ネットワーク管理プロトコル」いれてみた・・・。
メモをとってたらぐちゃぐちゃになっちゃった。
いつか見返すときのために、ここに書いておこう。

SNMP

(SNMPに対応した)ルータやハブなどの状態をネットワーク環境でモニタ/管理する管理プロトコル。
UDPのポート161(snmp)と162(snmptrap)を使います。
管理する側の「SNMPマネージャ」と管理される側の「SNMPエージェント」間でMIB(Management Information Base)と呼ばれる管理情報を交換します。

「簡易ネットワーク管理プロトコル」のインストール

・315154 - HOW TO: Configure Security for a Simple Network Management Protocol Service in Windows 2000
http://support.microsoft.com/default.aspx?scid=KB;EN-US;q315154

とかを参考に。

  1. 「コントロールパネル」>「プログラムの追加と削除」>「windowsコンポーネントの追加と削除」>「管理とモニタツール」>「詳細ボタン」>「簡易ネットワーク管理プロトコル」をインストールします。
  2. 「コントロールパネル」>「管理ツール」>「サービス」を起動します。
  3. 「SNMP Service」をダブルクリックして、「SNMP Serviceのプロパティ」を開きます。
  4. 「エージェント」タブを設定します。
    • 「連絡先」と「場所」を入力します。
    • 「サービス」グループで接続タイプとエージェントがモニタするエリアを設定します。
      物理
      リピーターやハブなどの物理的なデバイスを管理するときセットします。
      アプリケーション
      Windows NTコンピュータがTCP/IPを使うアプリケーションを使うときセットします。チェックすること。
      データリンクとサブネットワーク
      このシステムがブリッヂを管理してることを示します。
      インターネット
      Windows NTコンピュータがIPルータとして動作してるときセットします。
      End-to-End
      Windows NTコンピュータがTCP/IPを使うときセットます。チェックすること。
    「SNMP Serviceのプロパティ」の「エージェント」タブ
  5. 「セキュリティ」タブを設定します。
    • 認証が失敗したときに必ずトラップ メッセージを送信するには、「認証トラップを送信する」にチェックします。
    • コミュニティ名「public」を削除して、別のコミュニティ名をつけます。(ここでは、「community_a」としました)
      マネージャとエージェントは共通のコミュニティ名を使えば、各サーバで異なっていてもかまいません。
    • 「これらのホストからSNMPパケットを受け付ける」を選択し、マネージャのIPアドレスを指定します。
    「SNMP Serviceのプロパティ」の「セキュリティ」タブ

「SNMPUtil」で確認します。
「SNMPUtil」は「Windows Resource Kit」に含まれるコマンドラインのSNMP クエリツールです。

# コミュニティ名「community_a」、エージェント「192.168.99.11」の場合
# ほとんどすべての値を返す
C:\> snmputil.exe walk 192.168.99.11 community_a .1.3
# 上と等価
C:\> snmputil.exe walk 192.168.99.11 community_a .iso.org

特に以下の情報などが有用らしい。

# ネットワーク機器の汎用的な情報を保持する管理情報領域 (RFC1213)
# .iso.org.dod.internet.mgmt.mib-2
C:\> snmputil.exe walk 192.168.99.11 community_a .1.3.6.1.2.1
# ucd-snmpが独自に定義
# .iso.org.dod.internet.private.enterprises.ucdavis
C:\> snmputil.exe walk 192.168.99.11 community_a .1.3.6.1.4.1.2021

Trapの例 (2004/03/29 追記)

  • エージェント側の「セキュリティ」タブの「認証トラップを送信する」にチェックをつけます。
  • エージェント側の「SNMP Serviceのプロパティ」の「トラップ」タブに「コミュニティ名」と「トラップ送信先」のIPアドレスを入力します。
    「SNMP Serviceのプロパティ」の「トラップ」タブ
  • Trap受信側 (192.168.99.10)でサービス「SNMP Trap Service」を開始します。

これで、認証失敗したときに、エージェント側からトラップ送信側にTrapが送信されます。

● 認証成功時

# エージェント(192.168.99.11)にgetする
C:\>snmputil get 192.168.99.11 community_a .1.3.6.1.2.1.5.1.0
Variable = icmp.icmpInMsgs.0
Value    = Counter32 16
# Trap受信側 (192.168.99.10)
C:\> snmputil trap
snmputil: listening for traps...
# 何もおきない

● 認証失敗時

間違ったコミュニティ名を送信します。
「これらのホストからSNMPパケットを受け取る」のホスト一覧にない場合も同じです。

# エージェント(192.168.99.11)にgetする
C:\> snmputil get 192.168.99.11 nisemono .1.3.6.1.2.1.5.1.0
error on SnmpMgrRequest 40
# Trap受信側
C:\>snmputil trap
snmputil: listening for traps...
snmputil: trap generic=4 specific=0
  from -> 192.168.99.11
 
snmputil: trap generic=4 specific=0
  from -> 192.168.99.11
 
snmputil: trap generic=4 specific=0
  from -> 192.168.99.11
 
snmputil: trap generic=4 specific=0
  from -> 192.168.99.11

セキュリティ

SecurityFocus HOME Infocus: Windows 2000, SNMP and Securityより

  • 必要じゃなかったらインストールしない。
  • コミュニティ名を「public」から別のものに変更し、アドレスで制限掛ける。可能なら「読み取りのみ」にする。
  • IPSECを使って、認証と暗号化をする。
    Chapter 10 - Simple Network Management Protocol(Windows Server 2000 Resource Kit)の「Securing SNMP Messages with IP Security」。
  • SNMPを有効にするならイベントログで監査してセキュリティレベルを上げる

SNMPのバージョン違い (2007/05/25 追記)

●SNMPv1
・コミュニティ名による平文の認証
・SNMPとラップでの再送確認なし
●SNMPv2c
・コミュニティ名による平文の認証
・SNMPとラップでの再送確認あり
●SNMPv3
・コミュニティ名による暗号化された認証
・SNMPとラップでの再送確認あり
ITmedia エンタープライズ:第3回 SNMPによるモニタリングセキュリティの実態 (2/5)

Windows NTが持つMIB

Windows NTが持つMIBは以下の4つです。

  • Internet MIB II
  • LAN Manager MIB II 統計、共有、セッション、ユーザ、ログオンの情報など。 読み込み専用です。
  • DHCP MIB DHCP server監視用。 DHCP server serviceをインストールすると登録されます。(DHCPMIB.DLL) 「DHCP discover requests receivedの数」「addresses leased out to clientsの数」など。
  • WINS MIB WINS server監視用。 WINS server serviceをインストールすると登録されます。(WINSMIB.DLL) 「resolution requests successfully processedの数」「resolution requests that failedの数」「最後のデータベースレプリケーションのデータと時間」など。

拡張MIBたち

・www.SNMPLink.org - Enterprises & MIBs Links
http://www.snmplink.org/MIBs.html
・www.SNMPLink.org - SNMP version 3
http://www.snmplink.org/SNMPv3.html
・mibDepot: MIB Downloads
http://www.mibdepot.com/cgi-bin/downloads.cgi
・ByteSphere's MIB Download Area
http://www.oidview.com/mibs/detail.html
・Somix - Support
http://www.somix.com/support/mib_resources.php
・www.gamebeast.de (Howto-Database)
http://old.gamebeast.de/?site=mib

リンク

あちこち見ててわけわからなくなった。

・Microsoft SNMP Services
http://www.microsoft.com/technet/itsolutions/network/deploy/confeat/snmp.mspx

・Chapter 10 - Simple Network Management Protocol (Windows Server 2000 Resource Kit)
http://www.microsoft.com/resources/documentation/windows/2000/server/reskit/en-us/tcpip/part3/tcpch10.mspx

・Appendix G - MIB Object Types (Windows Server 2000 Resource Kit)
http://www.microsoft.com/resources/documentation/windows/2000/server/reskit/en-us/tcpip/part4/tcpappg.mspx
MibオブジェクトとDllの関係について?

・@IT:監視を自動化するSNMP(1)
http://www.atmarkit.co.jp/fnetwork/rensai/snmp01/01.html
・@IT:監視を自動化するSNMP(2)
http://www.atmarkit.co.jp/fnetwork/rensai/snmp02/01.html
(連載中)

(2007/05/25 追記 ここから)
・ITmedia エンタープライズ:SNMPによるネットワークモニタリング「第2版」――楽をするためのサーバ監視術、最新版。
http://www.itmedia.co.jp/enterprise/special/0705/snmp/
SNMPによるモニタリングセキュリティの実態」や「SNMPとv3セキュリティ」など。

・Net-SNMP Distributed MIBs (Net-SNMP)
http://net-snmp.sourceforge.net/docs/mibs/
Net-SNMPがサポートするMIB一覧
(2007/05/25 追記 ここまで)

分からない事

「Perf2MIB.exe」は何をするもの?
mibファイルを作る?!
パフォーマンスモニタで見ため???

「Windows Resource kit」の「MIBCC」コマンドでmibファイルをコンパイルできます。(「ASN.1 MIB」→「バイナリのMib.bin」)
コンパイルエラーが出るMIBもおおいけど、MIBの定義が間違ってるからか?
コンパイル後ははどうしたらいい??
「c:\winnt\system32\mib.bin」に吐き出せばいい?
以下がWindows2000の初期値?

C:\> MIBCC -w3 -o c:\winnt\system32\mib.bin msft.mib acs.mib dhcp.mib wins.mib

Trapがいまいち分からない。

トラックバック(0)

このブログ記事を参照しているブログ一覧: SNMP

このブログ記事に対するトラックバックURL: http://kinshachi.ddo.jp/mt/mt-tb.cgi/235

コメント(8)

ek :

いつも楽しみに拝見しております。ek と申します。

>「Perf2MIB.exe」は何をするもの?

「Perf2Mib.exe」も MIB コンパイラの一種だったと思います。

>コンパイル後ははどうしたらいい??

SNMP マネージャに追加したら良いのでは無いでしょうか?

>Trapがいまいち分からない。

下記などは参考になりませんか?他にも SNMP Trap に関するドキュメントは Web で数多く公開されているようです。

日立 GR2000 - トラップ
http://www.hitachi.co.jp/Prod/comp/network/gr2000/manual/html_a/gaisetsu/0144.htm

#ページのトップに「UDPのポート161と162を使います」とありますが、162/UDP はトラップ用ポートではありませんか?

SNMP に限らず、GR2000 のマニュアルは良く出来ていると思います。

ではでは、おやすみなさい m(_ _)m

ike :

ekさん、ありがとうございます。
「GR2000」のサイト見てみます。

最近、きちんと書こうと思ってうまく書けなくなって、更新が滞ってました・・・。

Trapは「エージェントからマネージャに通知する」というのは分かるんですが、具体的にどうやって受け取るのかが分からなかったのです。
「C:\> snmputil trap」を実行したら、listening状態になりました。
これで私の中では解決しました。(追記しました)

162/UDP はトラップ用みたいですね。(修正しました)
サービスの「SNMP Service」が161/UDP、「SNMP Trap Service」が162/UDPのポートを使ってました。

見ててくれる人がいると心強いですね。
# その反面、意識してきちんと書かないとと緊張したりして;)

ek :

こんにちは。ek と言います。

> Trapは「エージェントからマネージャに通知する」というのは分かるんですが、
> 具体的にどうやって受け取るのかが分からなかったのです。

私、ピントを外していたようですね(^^;

> 「C:\> snmputil trap」を実行したら、listening状態になりました。
> これで私の中では解決しました。(追記しました)

Windows Resouce Kit の SNMPutil は使用したことがありません。大変、勉強になりました(ホントに)。

> 見ててくれる人がいると心強いですね。
> # その反面、意識してきちんと書かないとと緊張したりして;)

ike さんとは興味空間が重なっているようで、blog、楽しく読ませて頂いてます。

# ニガテな MS SQL のエントリーが続くとスルーしてますが(笑)

最近の ike さんのエントリーでは「古いエントリの変更履歴」と「PortQry」が面白かったです。PortQry は「古い話だなぁ〜」と思いながら拝見したら(失礼)PortQry "Version 2" のお話だったんですね・・・Ver.2 が出ているのも知らなかったので、これまた勉強になりました m(_ _)m

ではでは、一読者として新しいエントリー、楽しみにしてマス。

ike :

こんにちは、ekさん。
楽しんでもらえてよかったです(^_^)。

「SNMPutil」は実用というより、ちょっと確認したり、動作を見る時に使うものかもしれませんね?

「これからどういう事を書いていこうかなぁー?」って考えてます。
目をつけてるネタはあるんですが、ピンと来るネタがなくて。。

今度ともよろしくお願いします〜。m(_._)m

SNMP Trap Service は使ってません。 Linux の SNMPD だと Syslog に流せます。コレと同様の処理を実装したいので、 Kiwi Syslog Daemon や WinSyslog/monitorware あたりでトラップを受信し、ログホストに流すようにしてます。

あとは… 監視ツール系統だと 162/udp を占拠して、メッセージをトラップできるようにしてるのもあります。

使う飛び道具次第で、この辺は変わってきますが。
まだいぢりたおしきれてませんが、 Net-SNMP の Windows 版バイナリもあるので、そこらも試されてみては? SNMPd サービスと SNMP Trapd と両方、あったとおもいます。

ike :

YamaKenさん。
Net-SNMPを見てみようと思います。
Syslogも調べたいですねー。

ee :

教えてください。
Win2000でsnmputilを使いたいと思いまして、リソースキットをマイクロソフトのHPから探したのですが、どのツールが該当のツールなのかわかりませんでした(snmputilが使えるもの)
http://localhost:8080/English_to_Japanese|TranslatePageInterlinear|LVWebTrans|e473763d-42e5-46df-ba62-5709bd1e62f1|www.microsoft.com/windows2000/techinfo/reskit/tools/default.asp
上記がリソースキットをダウンロードできるURLですが、わかりましたら教えていただきたいです。

ike :

eeさん。
たしか、Windows NT 4.0 Resource Kitに入ってると思います。(それがどこか見つからない・・・)
http://www.wtcs.org/snmp4tpc/testing.htm
とかにもおいてありました。

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ikeが2004年3月28日 23:33に書いたブログ記事です。

ひとつ前のブログ記事は「VMware DiskMount Utility」です。

次のブログ記事は「SQL Server Books Online (BOL)」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近のコメント

On SNMP
  • ike: eeさん。 たしか、Windows NT
  • ee: 教えてください。 Win2000でsnm
  • ike: YamaKenさん。 Net-SNMPを
  • YamaKen: SNMP Trap Service は使
  • ike: こんにちは、ekさん。 楽しんでもらえて
  • ek: こんにちは。ek と言います。 > T
  • ike: ekさん、ありがとうございます。 「GR
  • ek: いつも楽しみに拝見しております。ek と
Powered by Movable Type 4.261