- - PR -
スクリプトにてSNMP
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-08-05 00:08
現在スクリプトを利用して機器の監視を行おうと考えております。
まずはと思いスクリプトにてSNMPを利用しルータのarp情報を取得できないかと考えております。 そもそもスクリプトにて可能なのでしょうか。 http://www.microsoft.com/japan/technet/scriptcenter/scripts/network/snmp/default.mspx にて出来そうな事は書いてあるのですが、エラーとなってしまい機器にすら接続できません。 お解りの方いらっしゃいましたらお手数ですが、教えて頂けないでしょうか。 よろしくお願いします。 使用OSはWindows2000proです。 [ メッセージ編集済み 編集者: もじお 編集日時 2006-08-05 00:08 ] | ||||||||
|
投稿日時: 2006-08-07 00:22
まず、こういった質問をする場合はエラーの内容を記載した方が良いですよ。
- 既存のツールを使って情報を取得できてますか? ftp://ftp.microsoft.com/ResKit/win2000/snmputilg.zip - 次のページには Windows XP/2003 対応となってますね。 http://www.microsoft.com/technet/scriptcenter/scripts/network/snmp/default.mspx?mfr=true 日本語のMicrosoftサイトは誤訳や情報が古かったりすることが多いので 英語のサイトもチェックすることをお勧めします。 http://www.google.co.jp/search?sitesearch=microsoft.com&domains=microsoft.com%3Bsupport.microsoft.com%3Bdownload.microsoft.com%3Bwww.microsoft.com%3Bmsdn2.microsoft.com%3Bmsdn.microsoft.com%3Btechnet.com%3Btechnet2.microsoft.com%3Boffice.microsoft.com%3Bkotaete-net.net&hl=ja&num=20&q=wmi+snmp | ||||||||
|
投稿日時: 2006-08-07 14:32
未記入さん
書き込みありがとうございます。 >まず、こういった質問をする場合はエラーの内容を記載した方が良いですよ。 申し訳ありませんエラーメッセージは "無効な名前空間です" というエラーメッセージが返されます。 >- 既存のツールを使って情報を取得できてますか? > ftp://ftp.microsoft.com/ResKit/win2000/snmputilg.zip 取得可能でした。 >- 次のページには Windows XP/2003 対応となってますね。>http://www.microsoft.com/technet/scriptcenter/scripts/network/snmp/default.mspx?mfr=true ためしに2003上で行ってみましたが同一のエラー 無効な名前空間ですを返してきます。 よろしくお願いします。 | ||||||||
|
投稿日時: 2006-08-08 06:38
"無効な名前空間です" というエラーなので、スクリプトの次の行で引っかかって
いると想像できます。
Windows Management Instrumentation テストというツールがあるのを発見したので root¥snmp¥localhost に接続できるかテストしてみました。 1. ファイル名を指定して実行で wbemtest.exe 2. [接続]ボタン - 名前空間に root¥snmp¥localhost - [ログイン]ボタン やはり、"無効な名前空間です" エラーとなりました。 次にSNMPサービスをインストールしてみました。 - Windows 2000 SP4 Pro 1. ネットワークとダイヤルアップ接続 - 詳細設定 - オプション ネットワーク コンポーネント - 管理とモニタツール - 簡易ネットワーク管理プロトコル - Windows Server 2003 EE R2 1. ネットワーク接続 - 詳細設定 - オプション ネットワーク コンポーネント - 管理とモニタツール - WMI SNMP プロバイダ、簡易ネットワーク管理プロトコル 再度 wbemtest.exe を使って root¥snmp¥localhost に接続してみました。 Windows 2000では同じエラーでしたが、Windows Server 2003 だと 接続できました。 SNMPエージェントの設定をしておきます。(Win2000/2003) 1. サービス(services.msc /s)を起動 2.「SNMP Service」のプロパティを表示 3. [エージェント]タブのサービス欄ですべてチェックを付ける 4. [セキュリティ]タブで 認証トラップを送信する にチェックを付け、 コミュニティ名(public)、権利(READ ONLY)を追加し、 すべてのホストから SNMP パケットを受け付ける を選択。 スクリプトを実行してみると情報を取得できることが確認できました。 (Win2003 -> Win2000、Win2003 -> Win2003) sample01.wsf (¥は全角にしてあります)
WMIスクリプトの記述は少しややこしいので Scriptomatic 2.0 をお勧めします。 http://www.microsoft.com/downloads/details.aspx?familyid=09DFC342-648B-4119-B7EB-783B0F7D1178&displaylang=en > SNMPを利用しルータのarp情報を取得 ルータのarpを取得する場合、ipNetToMediaType(1.3.6.1.2.1.4.22.1.4)あたり を使うんでしょうか。(よく分かりません) ネットワーク機器の情報を取得する場合はベンダ提供のMIBを smi2smir.exe でコンパイルせよ とMicrosoftのサイトに書いてありましたので、ご自分で 調べてみてください。 なお、数年前に話題になったと思いますが、本番環境で public, private を使わない など、セキュリティに十分配慮した設計をしてください。 | ||||||||
|
投稿日時: 2006-08-09 09:01
WMIを使わないで情報を取得する方法が分かりましたので、Windows 2000で試してみてください。
sample02.wsf
oleprn.dll
| ||||||||
|
投稿日時: 2006-08-09 20:27
補足します。
悪意のあるサイトをブラウザで閲覧すると、SNMPエージェントを動かしている ルータなどの情報が漏れてしまう可能性があります。 しつこいかもしれませんが、セキュリティに十分配慮した設計をしてください。 - SNMPエージェント コミュニティ名で public を絶対に使わない。 request を受け付けるノードを限定する。 - ネットワーク インターネット(外部)向けのSNMPパケット(161/udp)を遮断する。 - ブラウザ(IE) スクリプトを実行しても安全だとマークされていない ActiveX コントロールの初期化と スクリプトの実行 [A] を無効にする。 regsvr32.exe /u oleprn.dll を検討する。 sample03.reg
ブラウザの設定 [A] が有効になっていると、このレジストリを設定しても OlePrn.OleSNMP が動作してしまいました。 広範囲に該当する SNMP の脆弱性について - IPA http://www.ipa.go.jp/security/ciadr/20020213snmp.html | ||||||||
|
投稿日時: 2006-08-09 22:55
未記入さん
こんばんは。 詳しいご回答ありがとうございます。 試した後に結果御報告させていただきます。 | ||||||||
|
投稿日時: 2006-08-10 22:39
予算があり監視対象ノードが多い場合は監視ツール(Manager)製品を導入する
のがお手軽そうですね。 自分はSNMPを扱うことが無かったのですが、色々調べてみると、 SNMPって結構便利だなぁ と思いました。 ■スクリプトを使ってSNMPエージェントから情報を取得には?(PULL型 - 161/udp) - Windows標準の環境 OlePrn.OleSNMP を使って情報を取得する。WSHを使ったり、Webページを 用意し、ブラウザでSNMPエージェントの状態を一覧表示したりすることも可能。 - WMIを利用する場合 WMI SNMP プロバイダをインストール(WinNT4/2000は下記リンクのインストーラ、 WinXP/2003は control ncpa.cpl)し、WMI経由で情報を取得する。 サンプルコード http://www.microsoft.com/technet/scriptcenter/scripts/network/snmp/default.mspx?mfr=true WMIスクリプト生成ツール http://www.microsoft.com/downloads/details.aspx?familyid=09DFC342-648B-4119-B7EB-783B0F7D1178&displaylang=en WinNT4/2000用 WMI SNMP プロバイダ http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=C6B30755-6D20-4107-82C5-089E3DFE4FEE ■Windows - エージェントによるTRAP(PUSH型 - 162/udp) WindowsではSNMPサービスをインストールする。コミュニティ名などは services.msc の SNMP Service で設定する。(SNMP Trap Service を 自動にしておきます。多分...) 付属の evntwin.exe を使ってNTイベントをTRAPとして送信できる。 例えば、ソース: disk のイベントを指定しておくと、Diskエラーや クォータのイベントをSNMPマネージャに送信できる。 また、WindowsのSNMPサービスを強化するものとして SNMP Informant といったものもある。 ■関連情報 - 解説 監視を自動化するSNMP - @IT http://www.atmarkit.co.jp/fnetwork/rensai/snmp01/01.html SNMPによるネットワークモニタリング - ITmedia http://www.itmedia.co.jp/help/howto/linux/0007master/06/ ネットワークモニタリングツールを製作する - PC View http://www.pc-view.net/Network/040213/ SNMP InformantによるWindowsサーバのSNMPエージェント - MYCOM http://journal.mycom.co.jp/column/yetanother/082/ MRTGによるサーバ監視システムの構築 - @IT http://www.atmarkit.co.jp/flinux/rensai/root08/root08a.html - セキュリティ 広範囲に該当する SNMP の脆弱性について - IPA http://www.ipa.go.jp/security/ciadr/20020213snmp.html PROTOS リモート SNMP 攻撃ツール - ISS http://www.isskk.co.jp/support/techinfo/general/PROTOS_SNMP_xforce.html |
1