2006年5月アーカイブ

Perlのオプション

|

-e 'コマンド'

-Mモジュール モジュールを使う
$ perl -MCPAN -e shell

-c hoge.pl 構文をチェックするだけで実行しない
-T 汚染チェック 5.004以降は#!行では使えなくなった

■デバッグモード
http://fleur.hio.jp/perldoc/mix/pod/perldebug.html

-w 警告を出力する。まず最初にためす。

-d hoge.pl デバッグモード

nで進み、以降、[Enter]で進み続ける
Nでもどる。
qで終了する。

iptableのルールを削除、復旧させる

|

■Chainがまるごと吹っ飛んでしまった場合。

# iptables -F RH-Firewall-1-INPUT
-Fオプションは"Flush Chain"であり、チェイン内のルールをすべて吹っ飛ばす設定です。

# iptables -L -n --line-number
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0            0.0.0.0/0

Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT) num target prot opt source destination

Chain RH-Firewall-1-INPUT (2 references) num target prot opt source destination

でも、大丈夫。
# iptables-restore
の出番です。
# iptables-restore < iptables
# iptables -L RH-Firewall-1-INPUT -n --line-number
Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source   destination
1    ACCEPT     all  --  0.0.0.0/0  0.0.0.0/0
2    ACCEPT     all  --  0.0.0.0/0  0.0.0.0/0
3    ACCEPT     icmp --  0.0.0.0/0 0.0.0.0/0 icmp type 255
4    ACCEPT     esp  --  0.0.0.0/0 0.0.0.0/0
5    ACCEPT     ah   --  0.0.0.0/0  0.0.0.0/0
6    ACCEPT     udp  --  0.0.0.0/0  224.0.0.251 udp dpt:5353
7    ACCEPT     udp  --  0.0.0.0/0  0.0.0.0/0   udp dpt:631
8    ACCEPT     all  --  0.0.0.0/0   0.0.0.0/0  state RELATED,ESTABLISHED
9    ACCEPT     tcp  --  0.0.0.0/0  0.0.0.0/0   state NEW tcp dpt:53
10   ACCEPT     tcp  --  0.0.0.0/0  0.0.0.0/0   state NEW tcp dpt:22
11   ACCEPT     tcp  --  0.0.0.0/0  0.0.0.0/0   state NEW tcp dpt:25
12   ACCEPT     tcp  --  0.0.0.0/0  0.0.0.0/0   state NEW tcp dpt:80
13   ACCEPT     tcp  --  0.0.0.0/0  0.0.0.0/0   state NEW tcp dpt:443
14   REJECT     all  --  0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
■ルールを一本間違えて消してしまった場合。 ※ルールを一本だけ消すには、-Dオプションを使います。
# iptables -D RH-Firewall-1-INPUT 12
これも
# iptables-restore < /etc/sysconfig/iptables
で元通りです。

iptableのルールを追加する

|
■まずは設定を見る。
# iptables -L RH-Firewall-1-INPUT -n --line-number
Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source    destination
1    ACCEPT     all  --  0.0.0.0/0 0.0.0.0/0
2    ACCEPT     all  --  0.0.0.0/0 0.0.0.0/0
3    ACCEPT     icmp --  0.0.0.0/0 0.0.0.0/0 icmp type 255
4    ACCEPT     esp  --  0.0.0.0/0 0.0.0.0/0
5    ACCEPT     ah   --  0.0.0.0/0 0.0.0.0/0
6    ACCEPT     udp  --  0.0.0.0/0 224.0.0.251         udp dpt:5353
7    ACCEPT     udp  --  0.0.0.0/0 0.0.0.0/0 udp dpt:631
8    ACCEPT     all  --  0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9    ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:53
10   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
11   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
12   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
13   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
14   REJECT     all  --  0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
■RH-Firewall-1-INPUTの9と10の間にUDP53はACCEPTとしてやりたい。
# iptables -I RH-Firewall-1-INPUT 9 -p udp --dport 53 -s 0.0.0.0/0 -d 0.0.0.0/0 -j ACCEPT
※ちなみに順番を無視して設定を後ろに追加するなら、-Iオプションでな、-Aオプションでよいです。
# iptables -A RH-Firewall-1-INPUT -p udp ...
 しかしRH-Firewall-1-INPUTでは一番最後の行はall Rejectになっているので、途中の行に足さなければなりません。 ※また、すでにある行を編集するには、
# iptables -R RH-Firewall-1-INPUT 9 ...
とします。 そして、また設定をみてみよう。
# iptables -L RH-Firewall-1-INPUT -n --line-number
Chain RH-Firewall-1-INPUT (2 references)
num  target     prot opt source    destination
1    ACCEPT     all  --  0.0.0.0/0 0.0.0.0/0
2    ACCEPT     all  --  0.0.0.0/0 0.0.0.0/0
3    ACCEPT     icmp --  0.0.0.0/0 0.0.0.0/0 icmp type 255
4    ACCEPT     esp  --  0.0.0.0/0 0.0.0.0/0
5    ACCEPT     ah   --  0.0.0.0/0 0.0.0.0/0
6    ACCEPT     udp  --  0.0.0.0/0 224.0.0.251         udp dpt:5353
7    ACCEPT     udp  --  0.0.0.0/0 0.0.0.0/0 udp dpt:631
8    ACCEPT     all  --  0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
9    ACCEPT     udp  --  0.0.0.0/0 0.0.0.0/0 udp dpt:53
10   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:53
11   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
12   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25
13   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
14   ACCEPT     tcp  --  0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
15   REJECT     all  --  0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
しかし、設定ファイルのほうはまだ反映されていない。
# cat /etc/sysconfig/iptables
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
■設定ファイルに保存する。
# iptables-save > /etc/sysconfig/iptables
となります。

iptablesのChainとTarget

|

■"Chain"とはルールをグループ化したものです。

■最初から組み込んであるChain
INPUT・・・interfaceから、ローカルプロセスにパケットが流れるときに適用される
OUTPUT・・・ローカルプロセスから、interfaceにパケットが流れるときに適用される
FORWARD・・・interfaceから、パケットを転送するときに適用される
の3種類があります。
そのほか、IPマスカレードに使う"POSTROUTING"があります。

■ユーザー定義でもChainは作れます。 RedHat系のOSの場合、インストールのときにファイアウォールを構成すると、 RH-Firewall-1-INPUT というChainが作られます。 そして、組み込みのINPUTとFORWARDのChainに、TargetとしてRH-Firewall-1-INPUTを適用しています。 そのほかに自分でchainを新しく作るには
# iptables -N mychain
とします。


■"Target"とはルールにマッチしたときのファイアウォールの動作です。
基本的にはACCEPTとREJECT(か、DROP)を使います。

ACCEPT   パケットを通過させる
DROP   パケットを破棄し、相手にはなにも返答しない
REJECT  パケットを破棄し、相手にはICMPを使って破棄したことを通知する
REDIRECT port   パケットを指定したポートにリダイレクトする
RETURN  チェイン内のルール評価を終了させる
そのほか、POSTROUTINGチェインで使う、"SNAT"や"MASQUERADE"があります。


■RH-Firewall-1-INPUTがある場合
RH-Firewall-1-INPUTがある場合は、
あまりINPUT、OUTPUT、FORWARDに手を加えると混乱の元になるので、

・デフォルトの設定を活用して、Chain"RH-Firewall-1-INPUT"にルールを足し引きする
 CUIの# setupコマンドからはいる「ファイアウォールの設定」から設定すると自然とこうなります。

# iptables -F RH-Firewall-1-INPUT
# iptables -X RH-Firewall-1-INPUT
とやって、RH-Firewall-1-INPUTを削除してから新しいチェインやルールを足していく

という方針がいいでしょう。

iptablesの設定を確認する

|
# iptables -L -n --line-numbers
を使います。 -nオプションをつけると名前解決せずにアドレスで表示します。 --line-numbersオプションをつけると、ルール番号を表示してくれます。

# iptables -L -n --line-numbers
# INPUTのChain
# interfaceからローカルプロセスにパケットが流れるときに適用される
Chain INPUT (policy ACCEPT)
num  target            prot opt source  destination
1    RH-Firewall-1-INPUT  all  --  0.0.0.0/0 0.0.0.0/0

# ForwardのChain # interfaceから渡されたパケットを転送するときに適用されます Chain FORWARD (policy ACCEPT) num target prot opt source  destination 1 RH-Firewall-1-INPUT all -- 0.0.0.0/0 0.0.0.0/0

# OUTPUTのChain # ローカルプロセスからinterfaceにパケットを送信するときに適用されます。 # 下記の場合、とくに何も設定されていません。 Chain OUTPUT (policy ACCEPT) num target prot opt source destination

# Chain RH-Firewall-1-INPUT # RedHatが最初にこしらえてくれるChain # 名前"RH-Firewall-1-INPUT"のとおり、 # INPUT時に適用することを想定してあります。 # 一通り、サービスを提供するためのACCEPTを設定したあと、 # 一番最後の行の"REJECT"で、それ以外を撥ねてます。 Chain RH-Firewall-1-INPUT (2 references) num target prot opt source  destination 1 ACCEPT all -- 0.0.0.0/0  0.0.0.0/0 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255 3 ACCEPT esp -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT ah -- 0.0.0.0/0 0.0.0.0/0 5 ACCEPT udp -- 0.0.0.0/0 224.0.0.251 udp dpt:5353 6 ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:631 7 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 8 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 9 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80 10 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:21 11 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:25 12 REJECT all -- 0.0.0.0/0 0.0.0.0/0  reject-with icmp-host-prohibited

■設定ファイルで確認したい場合。 RedHatの場合は ○/etc/sysconfig/iptables   ルールやチェインの設定が書かれている ○/etc/sysconfig/iptables-config   なんかよくわからない大人の設定が書いてある。
IPTABLES_MODULES=""
IPTABLES_MODULES_UNLOAD="yes"
IPTABLES_SAVE_ON_STOP="no"
IPTABLES_SAVE_ON_RESTART="no"
IPTABLES_SAVE_COUNTER="no"
IPTABLES_STATUS_NUMERIC="yes"

○Debianの場合はさらにたちが悪い。 まず、なにもない。

# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination

○しょうがないから起動スクリプトを作った。

# cd /usr/share/doc/iptables/examples/
# zcat oldinitdscript.gz > /etc/init.d/iptables
# cd /etc/init.d
# chmod 755 iptables
# update-rc.d iptables defaults
 Adding system startup for /etc/init.d/iptables ...
   /etc/rc0.d/K20iptables -> ../init.d/iptables
   /etc/rc1.d/K20iptables -> ../init.d/iptables
   /etc/rc6.d/K20iptables -> ../init.d/iptables
   /etc/rc2.d/S20iptables -> ../init.d/iptables
   /etc/rc3.d/S20iptables -> ../init.d/iptables
   /etc/rc4.d/S20iptables -> ../init.d/iptables
   /etc/rc5.d/S20iptables -> ../init.d/iptables
# /etc/init.d/iptables start
Aborting iptables load: unknown ruleset, "active".

/etc/init.d/iptables options: start|restart|reload|force-reload load the "active" ruleset save save the current ruleset load load a ruleset stop load the "inactive" ruleset clear remove all rules and user-defined chains, set default policy to ACCEPT halt remove all rules and user-defined chains, set default policy to DROP

Saved ruleset locations: /var/lib/iptables/ and /var/lib/ip6tables/

Please read: /etc/init.d/iptables

どうやら設定ファイルは/var/lib/iptables/の中にあるらしい。 しかし、そんなとこにはなにもなかった。 しょうがないので、自分でiptablesというディレクトリを作って、iptablesというファイルをおいた。 中身はRedHatの丸写しだ。
# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -i eth0 -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
のだが、動かなかった。 (以下、続く)

(続き)
というのは、上記の方法でdebianの/etc/init.d/iptablesをつくると、
/var/lib/iptables/にあるactiveとinactiveのファイルしかよみこまなくなる。

そこで、まずはこのデフォルトの何も書いていない奴を

# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source               destination

Chain FORWARD (policy ACCEPT) target prot opt source destination

Chain OUTPUT (policy ACCEPT) target prot opt source destination

inactiveに登録しよう。

最初にまずは/var/lib/iptables/active と inactive をtouchコマンドでつくっておく
# cd /var/lib/iptables
# touch active
# touch inactive
そしたら現在のルールをinactiveに登録する
# /etc/init.d/iptables save inactive

avtiveのほうには、RedHatなどで動いている生きのいいフィルターを
そのままactiveに書き写して、手直しすればよいだろう。

そして、
# /etc/init.d/iptables start
# /etc/init.d/iptables stop
が正しく動作するようになる。

Exchange ServerでSMART_HOSTの設定をする

|

SMTP仮想サーバーのプロパティ
 「配信」タブ
  「詳細設定」ボタンに設定箇所があります。
smarthost.JPG


■ルーティンググループのSMTPコネクタをつかう方法もあります。

【全般】タブ
ルーティンググループの中にスマートホストにしたいやつがいるなら、ブリッジヘッドサーバーをその人にしてあげましょう。
smarthost2.JPG

【アドレススペース】タブ
オープンリレーサーバーの設定にしないように気をつけてください。
smarthost3.JPG

■Exchange 2000 Server でストア データベースの最大キャッシュ サイズを変更する方法
http://support.microsoft.com/?kbid=266768
 こちらを参照して、最大キャッシュサイズ(6400)25.6MB、最小(640)2.56MBにしてみたのですが、あまりかわりありませんでした。

 というのは普段のテスト環境ではstore.exeの使用メモリ量は12MBくらいだったからです。
むしろIISのメモリ使用量を抑える方法はないのか・・・・

パブリックフォルダの複製

|

同じパブリックフォルダツリー内に、複数のExchangeサーバーのパブリックストアが関連付けられている場合、互いのパブリックストア間でフォルダの複製を行うことができます。

パブリックフォルダツリーのプロパティを表示し、「レプリケーション」タブで複製先のExchangeサーバーのパブリックストアを追加します。
public_replica_1.JPG

パブリックフォルダツリーの上の階層のほうから「設定の適用」をすると、その下層のパブリックフォルダにも複製設定が継承されます。
public_replica_2.JPG
public_replica_3.JPG

複製がうまくいかない場合はこちらを参照
■Exchange 2000 Server および Exchange Server 2003 におけるパブリック フォルダのレプリケーションの問題をトラブルシューティングする方法
http://support.microsoft.com/kb/842273/ja


複製のしくみは単なるSMTPのようです。

たとえば、exchange_1(マスタ)とexchange_2(レプリカ)でパブリックフォルダを複製する場合、
exchange_1から、"exchange_2-IS@example.local"というメールアドレスへ複製メッセージが発信され、
exchange_2からは、"exchange_1-IS@example.local"とうメールアドレスへ返されます。
※メッセージのやりとりの内容はよくわかりません。

これらのアドレスは上記URLにも書いてありますが、ADSIEditで、
[Configuration Container [computername.contoso.com]]、
 [CN=Configuration,DC=contoso,DC=com]、
  [CN=Services]、
   [CN=Microsoft Exchange]、
    [CN=OrganizationName]、
     [CN=Administrative Groups]、
      [CN=AdministrativeGroupName]、
       [CN=Servers]、
        [CN=ExchangeServerName]、
         [CN=InformationStore]
          [CN=最初のストレージ グループ] 
           [CN=パブリック フォルダ ストア (EXCHANGESERVERNAME)]
            の[プロパティ] [proxyAddresses]
で設定されています。

複製がうまくいかない場合、片元のExchangeサーバーにOutlookで接続し、 複製先のこのアドレスにメールを出してみましょう。 うまく届くようなら、このようなエラーメッセージがすぐに返って来ます。

このメールは、受信者全員または一部に届きませんでした。

件名: test 送信日時: 2006/05/29 19:01

以下の受信者にメールが配信できませんでした:

パブリック フォルダ ストア (EXCHANGE_1) 2006/05/29 19:01 このメッセージは受信者側の電子メール システムに到達しました。ただし、メッセージの配信は拒否されました。配信できない状態が続く場合は、システム管理者に連絡してください。

というか、こういう場合、となりのExchange Serverにメールボックスを持っている人に普通にメールが届かなくなっていると思います。

つまり、ルーティンググループ内でのSMTPルーティングが正しく行われていないわけです。

各Exchange Serverで、smtp仮想サーバーでスマートホストを設定しており、さらにそのスマートホストがただのメールの踏み台だったりするとルーティンググループ内でのルーティングがうまくいかなくなります。

パブリック フォルダ ツリーの種類

|

【MAPIクライアント】
public_folder_tree.JPG


Outlook などのクライアントからアクセスできる。

つまり、このパブリックフォルダツリーと関連付けられているパブリックストアは、
メールボックスストアの「規定のパブリックストア」に指定することができる。

アプリケーション、Web ブラウザ、IFS 共有でもアクセスできる。

【全般】
public_tree_all.JPG
MAPI クライアント(Outlook)ではこのパブリックフォルダツリーにはアクセスできない。

なぜなら、このパブリックフォルダツリーと関連付けられているパブリックストアは、
メールボックスストアの「規定のパブリックストア」に指定することができないから。

アプリケーション、Web ブラウザ、IFS 共有では、このパブリック フォルダ階層にアクセスできる。

tcpdumpのオプション

|

○基本

-n
IPアドレスやポート番号などを名前に変換しません。

-N
ホスト名のうち、ドメイン名の表示をしません。

-i eth1など
インタフェースを指定できます。
指定しない場合はeth0です。

-F file
フィルタをfileから読み込みます。
コマンドラインで指定された追加表現は、無視されます。


○簡素にパケットの内容を出力する。

-q
高速に省略した出力を行ないます。

-t
各ダンプ行のタイムスタンプを出力しません。


○詳細にパケットの内容を表示する。

-e MACアドレスと、ethertypeとフレーム長が付加されて出力されます。
00:80:99:06:1d:70 > 00:80:99:06:1d:97, ethertype IPv4 (0x0800), length 74:
-v IPパ ケット中の TTLや、サービス型の情報を付加して出力します。
(tos 0x0, ttl 128, id 41870, offset 0, flags [none], length: 60)
-X パケットの情報を16進数と、ASCII文字で表示します。
02:25:12.199614 IP 192.168.101.254 > 192.168.101.252: icmp 40: echo request seq 12032
        0x0000:  4500 003c b211 0000 8001 3b64 c0a8 65fe  E..<......;d..e.
        0x0010:  c0a8 65fc 0800 1c5c 0200 2f00 6162 6364  ..e....\../.abcd
        0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374  efghijklmnopqrst
        0x0030:  7576 7761 6263 6465 6667 6869            uvwabcdefghi


○キャプチャをファイルに保存する。

-l 標準出力をバッファリングします。 こういう使い方が賢いでしょう。
# tcpdump -n -l 'filter' > file & tail -f file
# tcpdump -n -l > file と # tcpdump -n >> file と同じなのではないか? という感じもしますが。。。

-w file
受信した生パケットを、fileに出 力します。
※viなどでファイルは見ないほうがよいです。

-r file
-wオプションでキャプチャを保存したファイルの内容を表示させます。

共通鍵暗号方式

|

■暗号データと暗号鍵

○鍵
 何bitかでできている数列
 鍵は定期的に作り直して交換されるものなのだ。

○ブロック暗号
 bitデータを何bitかずつに区切りそれを鍵を使って暗号化したもの。


■暗号鍵を秘密にする

 通信で使う暗号のほとんどは暗号化のルールは公開されている。
 つまり、暗号の解き方は誰でも知ることができる。
 なので、秘密にするべきは暗号鍵である。


■共通鍵暗号方式

【メリット】
 暗号化や復号の処理が早い

【デメリット】
 そもそも鍵をどうやって相手に渡すのか。
 通信する相手が多い場合、どんどん鍵が多くなる。

DES
 Data Encryption Standard
 ブロック暗号:64bit
 鍵長:56bit
 安全性が低下したので最近はあまり使われていない。
 しかし処理回路の「ファイステル構造」は暗号技術の基本。


3DES
 Data Encryption Standard
 ブロック暗号:64bit
 鍵長:168bit(112bitもあり)
 SSL3.0/TLS1.0で使われている。

AES
 Advanced Encryption Standard
 ブロック暗号:128bit
 鍵長:128bit、192bit、256bit
 DESが心配になってきたので新しく開発された。
 Rijndeal(ラインダール)という暗号技術を使う。
 これは色々な環境でも平均的な速度で処理できる。
 NESSIE推奨

Camellia
 ブロック暗号:128bit
 鍵長:128bit、192bit、256bit
 NTTと三菱電機が開発した。
 NESSIE推奨

128-bitRC4
 ストリーム暗号:128bit
 鍵長:128bit(40bitもあり)
 RSAセキュリティ社が開発した。

RedHat系のRPMでインストールしたApacheなら
# /usr/sbin/httpd -S
とします。 DebianのパッケージのApacheだったら
# /usr/sbin/apache -S
です。 ※比較的最近のApacheじゃないとありません。
# /usr/sbin/httpd -S
VirtualHost configuration:
wildcard NameVirtualHosts and _default_ servers:
_default_:443          www.example.local (/etc/httpd/conf.d/ssl.conf:88)
*:80                   is a NameVirtualHost
         default server www.example.local (/etc/httpd/conf/httpd.conf:1032)
         port 80 namevhost www.hoge.local (/etc/httpd/conf/httpd.conf:1032)
         port 80 namevhost www.domain.local (/etc/httpd/conf/httpd.conf:1039)
Syntax OK

名前ベースのバーチャルホスト

|
1.NameVirtualHostや<VirtualHost >の引数の部分のIPアドレスとポート
2.ServerName "バーチャルホスト名"
の組み合わせで応答が決定します。

ブラウザが、「1」で設定されているIPアドレス、「2」で設定されているバーチャルホスト名でアクセスしたときに、Apache側は該当するServerNameが書かれている<VirtualHost >ディレクティブの設定で動作します。

 NameVirtualHostや<VirtualHost >ディレクティブの引数の部分の「*:80」は、「サーバーの持っているすべてのIPアドレス:ポート番号」を意味します。
 
 ここの引数の部分ですが、「*」のほかにもサーバーが持っている具体的なIPアドレスを指定してもいいし、本当のホスト名やバーチャルホスト名を指定しても大丈夫ですが、「*」か、IPアドレスをお勧めします

 また、ポート番号の部分「:80」も、httpd.confの上の方でListen 80を指定してあるので省略可能な場合がありますが、やはり明示的にポート番号を指定したほうがよいでしょう。※理由は後述

■プライマリ仮想サーバー
定義しているバーチャルホスト以外へのリクエストは、設定ファイル内で最初に定義してあるバーチャルホストに送られます。

 なので、一番最初の<VirtualHost *:80>は、http://"IPアドレス"や、http://"本当のサーバー名"などでアクセスされた場合を想定して記述しておくことになります。

※アドレスベースのバーチャルホストで、<VirtualHost _default_:80>を設定してしまうのも有効です。

NameVirtualHost *:80

<VirtualHost *:80> ServerAdmin webmaster@example.local ServerName www.example.local DocumentRoot /var/www/html DirectoryIndex index.html </VirtualHost>

<VirtualHost *:80> ServerAdmin webmaster@hoge.local ServerName www.hoge.local DocumentRoot /home/www.hoge.local/htdocs DirectoryIndex index.html ErrorLog /home/www.hoge.local/logs/error_log CustomLog /home/www.hoge.local/logs/access_log common </VirtualHost>

<VirtualHost *:80> ServerAdmin webmaster@domain.local ServerName www.domain.local DocumentRoot /home/www.domain.local/htdocs DirectoryIndex index.html ErrorLog /home/www.domain.local/logs/error_log CustomLog /home/www.domain.local/logs/access_log common </VirtualHost>

■NameVirtualHostや<VirtualHost >ディレクティブでサーバー名を指定しないほうがよい理由

下記のような書き方もできます。
わかりやすいといえばわかりやすいです。

しかし、サーバー名に依存した記述をすると、DNSに依存することになります。
サーバーの起動時にバーチャルホスト名の名前引きができなかった場合、その名前ベースバーチャルホスト設定は効き目がなくなって、一番上のバーチャルホストの設定で応答することになります。

NameVirtualHost www.example.local:80

<VirtualHost www.example.local:80> ServerAdmin webmaster@example.local ServerName www.example.local DocumentRoot /var/www/html DirectoryIndex index.html </VirtualHost>

<VirtualHost www.hoge.local:80> ServerAdmin webmaster@hoge.local ServerName www.hoge.local DocumentRoot /home/www.hoge.local/htdocs DirectoryIndex index.html ErrorLog /home/www.hoge.local/logs/error_log CustomLog /home/www.hoge.local/logs/access_log common </VirtualHost>

<VirtualHost www.domain.local:80> ServerAdmin webmaster@domain.local ServerName www.domain.local DocumentRoot /home/www.domain.local/htdocs DirectoryIndex index.html ErrorLog /home/www.domain.local/logs/error_log CustomLog /home/www.domain.local/logs/access_log common </VirtualHost>


■NameVirtualHostや<VirtualHost >ディレクティブで、ポート番号を明示的に指定したほうがよい理由

 RedHat系のLinuxなどでmod_sslをインストールしている場合、/etc/httpd/conf.d/ssl.confにdefaultのIPアドレスベースのバーチャルホストで、ポート443で待ち受ける設定があるので、通常のhttpアクセスのバーチャルホスト設定のほうでも80番を明示的に指定しないとapacheの起動時に警告を受けます。

○/etc/httpd/conf.d/ssl.confのdefault設定

LoadModule ssl_module modules/mod_ssl.so
Listen 443
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl    .crl
SSLPassPhraseDialog  builtin
SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
SSLSessionCacheTimeout  300
SSLMutex default
SSLRandomSeed startup file:/dev/urandom  256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
##
## SSL Virtual Host Context
##
<VirtualHost _default_:443>
  ErrorLog logs/ssl_error_log
  TransferLog logs/ssl_access_log
  LogLevel warn

SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLCertificateFile /etc/httpd/conf/ssl.crt/server.crt SSLCertificateKeyFile /etc/httpd/conf/ssl.key/server.key

<Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory>

SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0

CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost>

bindのバージョンを見る

|
# /usr/sbin/named -v
BIND 9.3.2

ちなみにこういうやり方もある。

# dig version.bind. txt chaos

; <<>> DiG 9.2.4 <<>> version.bind. txt chaos ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6775 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION: ;version.bind. CH TXT

;; ANSWER SECTION: version.bind. 0 CH TXT "9.3.2"

;; AUTHORITY SECTION: version.bind. 0 CH NS version.bind.

;; Query time: 6 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue May 23 17:34:47 2006 ;; MSG SIZE rcvd: 62


  

フォワーダを利用する

|

■フォワーディングサーバ

フォワーダを利用するネームサーバ

クライアントからの名前解決依頼を受けるが、
自分で名前解決をせずに、フォワーダに名前解決を丸投げする。
 
しかし、クライアントへの回答は自分でする


■フォワーディングサーバの設定(bind9)

例1.ほとんどすべての名前解決をフォワーダに依頼する場合

自分が権威を持っているゾーンデータからも、自分の保持しているキャッシュからもqueryに対する回答が得られなかった場合、フォワーダに名前解決を依頼します。

○/etc/named.conf
options {
	-- 省略 --
	forwarders { 192.168.0.1; };
};
ちなみに複数のフォワーダを指定すると、bind9ではそのフォワーダ達のなかで反応が最速だったサーバーに最初の問い合わせをします。

さて、フォワーダから(デフォルトで60秒間)応答が無かった場合ですが、2つのパターンに分けられます。

A:フォワーディングサーバー自身が自分で名前解決に挑む。  (デフォルトの挙動) ○/etc/named.conf
options {
	-- 省略 --
	forward first;
	forwarders { 192.168.0.1; };
};
B:名前解決失敗をクライアントに告げる ○/etc/named.conf
options {
	-- 省略 --
	forward only;
	forwarders { 192.168.0.1; };
};


例2.特定のゾーンに対するqueryに関してはフォワーダを利用する。

zoneステートメントの中に記述します。

○/etc/named.conf
zone "example.local" {
	type	forward;
	forwarders { 192.168.0.1; };
};


例3.特定のゾーンに対するqueryに関してだけは、フォワーダを利用しない。
  (null forwarders リスト)

○/etc/named.conf

options {
	-- 省略 --
	forwarders { 192.168.0.1; };
};

zone "example.local" { type master; file "db.example.local"; forwarders {}; };

null forwardersが設定していない場合(例1の場合)
 "www.hoge.example.local"という名前解決は、192.168.0.1にフォワードする。

null forwardersが設定してある場合
 "www.hoge.example.local"という名前解決は、フォワーディングしない。

■MicrosoftのDNSサーバー

Windows 2000のDNSサーバーは、例1しかできなかったが、
Windows Server 2003のDNSサーバーは、
例2、つまりゾーンごとにフォワーダを分けることが可能になった。

■フォワーダ

名前解決を丸投げで請け負うネームサーバ
といっても、特にフォワーダとしての設定項目はない。

ゾーンを保持しているネームサーバの設定でもよいし、
ただのキャッシュサーバーでもよい。

自分がフォワーディングサーバとなって、
さらに他のフォワーダに名前解決を依頼することもできるが、
そのときはやはりフォワーディングの設定をする。

【クライアント(PCなど)】
↓            ↑
↓Query        ↑回答
↓            ↑
【DNSサーバ(フォワーディングサーバ)】
↓            ↑
↓Forward       ↑回答
↓            ↑
【DNSサーバ(フォワーダ)】
<<< 名前解決 >>>


  

bindのオプション

|
■bindのオプション
named [-d debuglevel] [-p port#] [-(b|c) config_file] [-f -q -r -v] [-u user_name]
     [-g group_name] [-t directory] [-w directory] [config_file]
-d debuglevel
 デバッグ情報を出力します。(基本)1~10,20,90(最高)
 /etc/sysconfig/namedなどに、OPTIONS="-d 1"と追加してください。

 起動中にデバッグレベルを変更するには、
 # rndc trace 10
 で始まり、
 # rndc notrace
 で終了します。

-c config_file
 代わりの config_file を使用します。
 デフォルトの値は/etc/namedb/named.conf です。

-v
 バージョンを報告し、終了します。

-u user_name
 ユーザを指定すると、初期化後のサーバがこのユーザで動作します。
 値はユーザ名または数字のユーザ ID どちらでも構いません。

-g group_name
 グループを指定すると、初期化後のサーバがこのグループで動作します。
 値はグループ名または数字のグループ ID どちらでも構いません。

-t directory
 chroot() するべきディレクトリを指定します。

■RedHat系でRPMインストールの場合 /etc/sysconfig/named に記述を追加しますが、普通は特に何も手を加える必要はありません。 bind-chrootパッケージもインストールされていれば、
ROOTDIR=/var/named/chroot
との記述があります。 ここでの指定が、/etc/init.d/named スクリプトで、-tオプションに渡されます。 また、-uオプションも/etc/init.d/named スクリプト内に記述してあるので、普通に起動すると、
# ps auxw | grep named
named     1049  0.0  3.0 37172 3852 ?        Ssl  May18   0:50 /usr/sbin/named -u named -t /var/named/chroot
となるはずです。 ■debian3.1(sarge)の場合 /etc/default/bind9
OPTIONS="-u bind"
の記述があり、起動オプションはそこに追加します。 このオプションが、/etc/init.d/bind9 スクリプトに渡され、
# ps aux | grep bind
bind     10915  0.8  6.0 11196 2788 ?        Ss   17:41   0:00 /usr/sbin/named -u bind
のように起動します。

  

■Exchange Serverの論理格納域
混乱してきた・・・

●1サーバーにつき、ストレージグループが作れる。

●1ストレージグループにつき、ストア(メールボックスストア、パブリックストア)が作れる。

●ストア(メールボックスストア、パブリックストア)の中に、複数のメールボックス、パブリックフォルダが格納される。

tree_1.JPG


●メールボックスストアは、必ず「規定のパブリックストア」で、接続するパブリックストアが指定されてなければならない。
mailbox_store.JPG


●パブリックストアは、必ず「パブリックフォルダツリー」に関連付けられてなくてはならない。
public_folder_store.JPG
 さらに、パブリックフォルダツリーに関連付けることのできるパブリックストアは、1サーバーにつき、1つのパブリックストアに限られる。
 逆に言えば、1つのパブリックフォルダツリーに、複数のサーバーのパブリックストアを関連付けることならば可能である。既存のExchange組織に、Exchange Serverを追加したときに何も考えないでやってるとこのような構成になるはずだと思います。


●パブリックフォルダツリーには、「MAPI クライアント」と「全般」の2種類があり、メールボックスストアで「規定のパブリックストア」に指定できるパブリックストアは、「MAPI クライアント」のフォルダツリーに関連付けられていなければならない
public_folder_tree.JPG


●結局、こんな感じになります。
色の付いた線が関連付けしてある部分です。
tree_2.JPG

Cacti グラフの作り方(基本)

|

1.adminでログオンします。
  このとき、グラフ閲覧専用のアカウントを左のメニューの「User Management」からつくっておくとよいでしょう。

2.左のメニューから「Device」をクリックし、データを取りたいホストを作成します。

3.ホストを作成したら「Create Graphs for this Host」をクリックして、グラフを作成します。

4.ホストとグラフを作成したら、左のメニューから「Graph Trees」をクリックし、表示させたい場所にホストやグラフを配置させます。

5.基本的には、これの繰り返しです。


■画面写真付き

1.adminでログオンします。
  このとき、グラフ閲覧専用のアカウントを左のメニューの「User Management」からつくっておくとよいでしょう。

cacti_0.JPG


2.左のメニューから「Device」をクリックし、データを取りたいホストを作成します。

cacti_7.JPG


3.ホストを作成完了。

cacti_8.JPG


4.「Create Graphs for this Host」をクリックして、グラフを作成します。

cacti_9.JPG


5.グラフの色などが決められます。けど、そのままでもいいでしょう。

cacti_10.JPG


6.ホストとグラフを作成したら、左のメニューから「Graph Trees」をクリックし、表示させたい場所にホストやグラフを配置させます。

cacti_12.JPG

           ↓

cacti_13.JPG

           ↓

cacti_14.JPG

           ↓

cacti_15.JPG

           ↓

cacti_16.JPG

           ↓
treeにグラフを追加したい場合
cacti_17.JPG

           ↓
treeにホストを追加したい場合
cacti_18.JPG


7.完成

cacti_19.JPG

Cactiのインストール

|

■インストール方法
cacti - グラフツールcactiとは?
cacti - UNIXでのインストール手順
を参考にしてください。
そんなに難しくないはずです。
http://dag.wieers.com/packages/cacti/
ここにいくとRedHat系のRPMがたくさん集まってます。

Apache、PHP、MySQL、RRDTool、Net-SNMPも全部RPMでいいでしょう。
up2dateやyumやapt-getを使うとあっという間です。
順番としては、Apache+PHP、MySQL、RRDTool、Net-SNMP、Cactiという順番ですかね。

インストールが終了したら、こちらをみて、adminやユーザーのパスワードを決定してください。
cacti - ユーザ管理


CentOS release 4.3 (Final)
Kernel 2.6.9-34.EL on an i686
の環境でインストールします。

■apacheとphpはすでにインストールしてありました。

# rpm -qa | grep httpd
system-config-httpd-1.3.1-1
httpd-manual-2.0.52-22.ent.centos4
httpd-2.0.52-22.ent.centos4
httpd-devel-2.0.52-22.ent.centos4
httpd-suexec-2.0.52-22.ent.centos4

# rpm -qa | grep php php-imap-4.3.9-3.12 php-pear-4.3.9-3.12 php-gd-4.3.9-3.12 php-mbstring-4.3.9-3.12 php-4.3.9-3.12 php-ldap-4.3.9-3.12

■MySQLのインストール
# apt-get install mysql-server
Reading Package Lists... Done
Building Dependency Tree... Done
The following extra packages will be installed:
  perl-DBD-MySQL
The following NEW packages will be installed:
  mysql-server perl-DBD-MySQL
0 upgraded, 2 newly installed, 0 removed and 0 not upgraded.
Need to get 7112kB of archives.
After unpacking 15.0MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://ftp.yz.yamagata-u.ac.jp pub/linux/centos/4.3/apt/i386/os perl-DBD-MySQL 2.9004-3.1 [113kB]
Get:2 http://ftp.yz.yamagata-u.ac.jp pub/linux/centos/4.3/apt/i386/os mysql-server 4.1.12-3.RHEL4.1 [6999kB]
Fetched 7112kB in 11s (594kB/s)
Committing changes...
Preparing...                ########################################### [100%]
   1:perl-DBD-MySQL         ########################################### [ 50%]
   2:mysql-server           ########################################### [100%]
Done.
ついでにこんなのもインストールしておきましょう
# apt-get install php-mysql
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  php-mysql
0 upgraded, 1 newly installed, 0 removed and 0 not upgraded.
Need to get 35.2kB of archives.
After unpacking 41.1kB of additional disk space will be used.
Get:1 http://ftp.yz.yamagata-u.ac.jp pub/linux/centos/4.3/apt/i386/updates php-mysql 4.3.9-3.12 [35.2kB]
Fetched 35.2kB in 3s (10.7kB/s)
Committing changes...
Preparing...                ########################################### [100%]
   1:php-mysql              ########################################### [100%]
Done.
こんな風になっていればOKでしょう。
# rpm -qa | grep mysql
mysql-server-4.1.12-3.RHEL4.1
php-mysql-4.3.9-3.12
mysql-4.1.12-3.RHEL4.1
mysql-devel-4.1.12-3.RHEL4.1

■RRDToolのインストール apt-getではむりでした。  本家はここです。http://oss.oetiker.ch/rrdtool/ ただ、日本語版のRPMが@ひろPさんから公開されています。 これを使いましょう。

# wget http://www.bigfield.com/~hiroshi/software/RPMS/i386/rrdtool-1.0.40
-1.7.3j.i386.rpm
--10:41:04--  http://www.bigfield.com/~hiroshi/software/RPMS/i386/rrdtool-1.0.40-1.7.3j.i386.rpm
           => `rrdtool-1.0.40-1.7.3j.i386.rpm'
www.bigfield.com をDNSに問いあわせています... 210.162.161.254
www.bigfield.com|210.162.161.254|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1,278,200 (1.2M) [application/x-rpm]

100%[==============================================>] 1,278,200 326.08K/s ETA 00:00

10:41:09 (321.53 KB/s) - `rrdtool-1.0.40-1.7.3j.i386.rpm' を保存しました [1278200/1278200]

# rpm -ivh rrdtool-1.0.40-1.7.3j.i386.rpm Preparing... ########################################### [100%] 1:rrdtool ########################################### [100%]

■NET-SNMPのインストール NET-SNMPはもう入ってました。
# rpm -qa | grep net-snmp
net-snmp-libs-5.1.2-11.EL4.6
net-snmp-utils-5.1.2-11.EL4.6
net-snmp-5.1.2-11.EL4.6
net-snmp-devel-5.1.2-11.EL4.6

■cactiのインストール apt-getではむりなので、本家サイトから Fedora3用の落としてきます。

# wget http://www.cacti.net/downloads/packages/Fedora/3/cacti-0.8.6h.fc3.
i386.rpm
--10:51:43--  http://www.cacti.net/downloads/packages/Fedora/3/cacti-0.8.6h.fc3.i386.rpm
           => `cacti-0.8.6h.fc3.i386.rpm'
www.cacti.net をDNSに問いあわせています... 66.59.109.191
www.cacti.net|66.59.109.191|:80 に接続しています... 接続しました。
HTTP による接続要求を送信しました、応答を待っています... 200 OK
長さ: 1,112,777 (1.1M) [application/x-redhat-package-manager]

100%[==============================================>] 1,112,777 142.78K/s ETA 00:00

10:51:52 (131.42 KB/s) - `cacti-0.8.6h.fc3.i386.rpm' を保存しました [1112777/1112777]

# rpm -ivh cacti-0.8.6h.fc3.i386.rpm エラー: Failed dependencies: php-snmp is needed by cacti-0.8.6h-1.i386 Suggested resolutions: /home/buildcentos/CENTOS/en/4.0/i386/CentOS/RPMS/php-snmp-4.3.9-3.9.i386.rpm
あれ?php-snmpが必要なんだそうです。しきりなおし。
# apt-get install php-snmp
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  php-snmp
0 upgraded, 1 newly installed, 0 removed and 0 not upgraded.
Need to get 27.2kB of archives.
After unpacking 20.6kB of additional disk space will be used.
Get:1 http://ftp.yz.yamagata-u.ac.jp pub/linux/centos/4.3/apt/i386/updates php-snmp 4.3.9-3.12 [27.2kB]
Fetched 27.2kB in 0s (107kB/s)
Committing changes...
Preparing...                ########################################### [100%]
   1:php-snmp               ########################################### [100%]
Done.
[root@kuwa-srv ~]# rpm -ivh cacti-0.8.6h.fc3.i386.rpm
Preparing...                ########################################### [100%]
   1:cacti                  ########################################### [100%]
Be sure to follow steps 2 through 5 in the install guide for new Cacti installations.
でけた。 ■cacti用UNIXアカウント作成 RPMでcactiをインストールすると、自動的にユーザーもしてくれるところが便利です。
# cat /etc/passwd | grep cacti
cactiuser:x:501:501::/var/www/html/cacti:/bin/bash

■cacti用mysqlデータベースの作成
さすがにこれは手動でやらないといけないでしょう。

○mysqlの起動設定
# /etc/init.d/mysqld start
MySQL データベースを初期化中: [ OK ]
MySQL を起動中: [ OK ]

# chkconfig --list | grep mysql
mysqld 0:off 1:off 2:off 3:off 4:off 5:off 6:off

# chkconfig --level 35 mysqld on

# chkconfig --list | grep mysqld
mysqld 0:off 1:off 2:off 3:on 4:off 5:on 6:off

○データベースの作成
# mysqladmin --user=root create cacti
○テーブル等をインポート
# mysql cacti < /var/www/html/cacti/cacti.sql

○データベースアカウントを作成

# mysql --user=root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 25 to server version: 4.1.12

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> grant all on cacti.* to cacti@localhost identified by 'パスワード'; Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges; Query OK, 0 rows affected (0.00 sec)

mysql> exit Bye

■cacti動作環境の設定 ○/var/www/html/cacti/include/config.phpの編集
/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";		# mysql内のcacti用DBの名前
$database_hostname = "localhost";	# DBのホスト名
$database_username = "cacti";		# cacti用DBに権限があるDBユーザーを設定と
$database_password = "パスワード";		# そのパスワード(Linuxユーザーのことではない)
$database_port = "3306";
○パーミッションの変更 RPMだと自動的にやってくれているので何もする必要はないです。
# ls -l | grep rra
drwxr-xr-x  2 cactiuser cactiuser   4096  5月 20 10:53 rra
○データ収集用cronの設定 これもRPMだと自動的にやってくれているので何もする必要はないです。
# cd /etc/cron.d
# ls
cacti  mrtg
# cat cacti
*/5 * * * *     cactiuser       php /var/www/html/cacti/poller.php > /dev/null 2>&1
○データ収集スクリプトの動作確認 ここは一旦、ユーザーcactiuserになって、テストしてみます。
[root]# su - cactiuser
[cactiuser]$ php poller.php
$ php poller.php
sh: -: command not found
こんなふうになって、ぼぉ~っとしているようだったら成功です。 Ctrl+Cを押して終了させてください。

○httpdの設定
これまたRPMだと自動的にやってくれているので何もする必要はないです。
というか、/var/www/html/cacti/がディレクトリなので、、、

■確認 では、httpdを再起動したあと、
# /etc/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

http://servername/cacti/ を開いてみます。
cacti_1.JPG
ここで「NEXT」をクリックします。

cacti_2.JPG

cacti_5.JPG
※RPMでのインストールなのでほとんどおまかせですが、
 ログの場所くらいは変えてもいいかも知れません。

cacti_6.JPG
※初回は[admin/admin]でログオンします。

大変紛らわしい、
・「アカウントログオンイベントの監査」
・「ログオン イベントの監査」
ですが、以下の違いがあります。


【アカウントログオンイベントの監査】 Active DirectoryのKerberos認証におけるTGTその他のチケットの発行を監査します。  ログオン時にはチケットの発行のためにクライアントはドメインコントローラと通信し、 チケットを発行してもらう必要がありますので、監査の対象になります。 チケットの発行が成功すれば、ドメインコントローラのセキュリティログに672で記録されます。
May 19 18:14:17 dc101 security[success] 672 NT AUTHORITY\SYSTEM  認証チケットの要求:    ユーザー名:  DomainCtrl$    提供された領域名: EXAMPLE.LOCAL    ユーザー ID:  %{S-1-5-21-82319771-177121436-2465514707-1000}    サービス名:  krbtgt    サービス ID:  %{S-1-5-21-82319771-177121436-2465514707-502}    チケット オプション:  0x40810010    結果コード:  -    チケット暗号化の種類: 0x17    事前認証の種類: 2    クライアント アドレス:  127.0.0.1    証明書発行者名:     証明書シリアル番号:     証明書拇印:
 しかし、ログオフ時にはクライアントはチケットを単に自分で破棄するだけで監査はされません。

【ログオンイベントの監査】  サーバに対するセッションの確立、切断を監査しています。 例えばサーバ上の共有ディレクトリに接続したり、ターミナルサービスに接続したりすると、ログオンとみなされます。  このとき、イベントログに「ユーザのログオン」(ID: 540)が記録されます。  しかし、セッションは明示的に処理が行われたり、デフォルトで15分無通信状態が続いたりした場合に切断され、イベントログには「ユーザのログオフ」(ID: 538)が記録されます。これは対話的なログオン、ログオフとは無関係に行われます。  なので、このログをたよりに対話的なログオンの監査を試みても支離滅裂な結果が待ち受けてます。

#
# どのログオフが、どのログオンと対応しているかは
# ログオン ID:  (0x0,0xFABA4EF)
# でわかります。

May 19 17:56:49 TS001 security[success] 540 EXAMPLE\user01 ネットワーク ログオンの成功: ユーザー名: user01 ドメイン: EXAMPLE ログオン ID: (0x0,0xFABA4EF) ログオンの種類: 3 ログオン プロセス: Advapi 認証パッケージ: Negotiate ワークステーション名: TS001 ログオン GUID: - 呼び出し側ユーザー名: TS001$ 呼び出し側ドメイン: EXAMPLE 呼び出し側ログオン ID: (0x0,0x3E7) 呼び出し側プロセス ID: 2716 移行されたサービス: - ソース ネットワーク アドレス: - ソース ポート: - May 19 17:56:49 TS001 security[success] 538 EXAMPLE\user01 ユーザーのログオフ: ユーザー名: user01 ドメイン: EXAMPLE ログオン ID: (0x0,0xFABA4EF) ログオンの種類: 3

May 19 17:56:50 TS001 security[success] 540 EXAMPLE\user01 ネットワーク ログオンの成功: ユーザー名: user01 ドメイン: EXAMPLE ログオン ID: (0x0,0xFABA6C4) ログオンの種類: 3 ログオン プロセス: Advapi 認証パッケージ: Negotiate ワークステーション名: TS001 ログオン GUID: - 呼び出し側ユーザー名: TS001$ 呼び出し側ドメイン: EXAMPLE 呼び出し側ログオン ID: (0x0,0x3E7) 呼び出し側プロセス ID: 2716 移行されたサービス: - ソース ネットワーク アドレス: - ソース ポート: - May 19 17:56:50 TS001 security[success] 538 EXAMPLE\user01 ユーザーのログオフ: ユーザー名: user01 ドメイン: EXAMPLE ログオン ID: (0x0,0xFABA6C4) ログオンの種類: 3

じつにわけのわからないログですね。
しかもWindows2000では「ログオフが記録されない」という現象もあったようです。
■Logoff event messages are not logged in the security log when you use the Audit Logon Events feature in Windows 2000

ユーザーがドメイン(や、特にターミナルサーバー、MetaFrameサーバー)にログオンしたか、
ログオフしたかを正しく監査するには、ログオン/ログオフスクリプトをつかって
イベントビューアに書き込んだ方がいいでしょう。
参考:Active Directory ドメインで、ユーザのログオン/ログオフの状況を監査したい

また、監査全般についてはこちらの記事を参考にしてください。
イベントログ説明
マイクロソフトの Securing Windows 2000 Server ソリューション
第 9 章 ‐ 監査と侵入検出

ntsyslog日本語版syslog-ngを組み合わせてみようと思い立ったわけです。

以前は、VBScriptで作ったツールで毎日のタスクでcsvファイルにして保存してました。
その手間(手間じゃないけど)がなくなるのはうれしいことです。

ただ、Windowsのログは手ごわかったです。
以下のログ中の文字列を$HOSTとして認識してしまうのです。
例:ese、microsoft、msexchangeis、ntds、removable、rpc、secure、server、service、symantec、web
これはNTSyslogの仕様なのか、Windowsのイベントログの仕様なのかはわかりませんが、
このままじゃどうしようもないので、Windowsのログはlocal0.debugなどにそれぞれ割り振りました。
その結果、このようなsyslog-ngの設定ファイルになりました。

options {
        sync (0);
        time_reopen (10);
        log_fifo_size (1000);
        long_hostnames (off);
        use_dns (yes);
        use_fqdn (no);
        create_dirs (yes);
        keep_hostname (yes);
        stats(86400);
        dir_perm(0750);
        perm(0640);
        owner(root);
        group(root);
};

# # configuration file for syslog-ng, customized for remote logging #

source s_internal { internal(); }; destination d_syslognglog { file("/var/log/syslog-ng.log"); }; log { source(s_internal); destination(d_syslognglog); };

# Local sources, filters and destinations are commented out # If you want to replace sysklogd simply uncomment the following # parts and disable sysklogd # # Local sources # source s_local { unix-stream ("/dev/log"); pipe ("/proc/kmsg" log_prefix ("kernel:")); }; # # Local filters # filter f_messages { level(info..emerg); }; filter f_secure { facility(authpriv); }; filter f_maillog { facility(mail); }; filter f_cron { facility(cron); }; filter f_emerg { level(emerg); }; filter f_spooler { level(crit..emerg) and facility(uucp, news); }; filter f_local7 { facility(local7); }; # # Local destinations # destination d_messages { file("/var/log/messages"); }; destination d_secure { file("/var/log/secure"); }; destination d_maillog { file("/var/log/maillog"); }; destination d_cron { file("/var/log/cron"); }; destination d_console { usertty("root"); }; destination d_spooler { file("/var/log/spooler"); }; destination d_bootlog { file("/var/log/boot.log"); }; # # Local logs - order DOES matter ! # log { source(s_local); filter(f_emerg); destination(d_console); }; log { source(s_local); filter(f_secure); destination(d_secure); flags(final); }; log { source(s_local); filter(f_maillog); destination(d_maillog); flags(final); }; log { source(s_local); filter(f_cron); destination(d_cron); flags(final); }; log { source(s_local); filter(f_spooler); destination(d_spooler); }; log { source(s_local); filter(f_local7); destination(d_bootlog); }; log { source(s_local); filter(f_messages); destination(d_messages); };

# # Remote logging # source s_remote { tcp(ip(0.0.0.0) port(514)); udp(ip(0.0.0.0) port(514)); };

# # ネットワーク機器のフィルタ # filter f_internet-gw { host("internet-gw"); }; filter f_firewall { host("firewall"); }; filter f_L3Switch { host("L3Switch"); }; filter f_pppoe-router { host("pppoe-router"); }; filter f_subnet-gw { host("subnet-gw"); };

# # Windows Serverのフィルタ # ネットワーク機器のログとかぶらないようにしています。 # filter f_domain_controler_1_application { facility(local0) and level(debug) and not host("firewall"); }; filter f_domain_controler_1_directory { facility(local0) and level(info) and not host("firewall"); }; filter f_domain_controler_1_dns { facility(local0) and level(notice) and not host("firewall"); }; filter f_domain_controler_1_file_replication { facility(local0) and level(warning) and not host("firewall"); }; filter f_domain_controler_1_security { facility(local0) and level(error) and not host("firewall"); }; filter f_domain_controler_1_system { facility(local0) and level(crit) and not host("firewall"); };

filter f_domain_controler_2_application { facility(local1) and level(emerg) and not host("internet-gw"); }; filter f_domain_controler_2_directory { facility(local1) and level(info) and not host("internet-gw"); }; filter f_domain_controler_2_dns { facility(local1) and level(notice) and not host("internet-gw"); }; filter f_domain_controler_2_file_replication { facility(local1) and level(warning) and not host("internet-gw"); }; filter f_domain_controler_2_security { facility(local1) and level(error) and not host("internet-gw"); }; filter f_domain_controler_2_system { facility(local1) and level(crit) and not host("internet-gw"); };

filter f_exchange_1_application { facility(local2) and level(debug) and not host("subnet-gw"); }; filter f_exchange_1_security { facility(local2) and level(info) and not host("subnet-gw"); }; filter f_exchange_1_system { facility(local2) and level(notice) and not host("subnet-gw"); };

filter f_exchange_2_application { facility(local2) and level(warning) and not host("subnet-gw"); }; filter f_exchange_2_security { facility(local2) and level(error) and not host("subnet-gw"); }; filter f_exchange_2_system { facility(local2) and level(crit) and not host("subnet-gw"); };

filter f_Citrix_1_application { facility(local4) and level(debug) and not host("pppoe-router"); }; filter f_Citrix_1_security { facility(local4) and level(info) and not host("pppoe-router"); }; filter f_Citrix_1_system { facility(local4) and level(notice) and not host("pppoe-router"); };

filter f_Citrix_2_application { facility(local4) and level(warning) and not host("pppoe-router"); }; filter f_Citrix_2_security { facility(local4) and level(error) and not host("pppoe-router"); }; filter f_Citrix_2_system { facility(local4) and level(crit) and not host("pppoe-router"); };

filter f_exchange_front_application { facility(local5) and level(debug); }; filter f_exchange_front_security { facility(local5) and level(error); }; filter f_exchange_front_system { facility(local5) and level(crit); }; filter f_exchange_front_virtual { facility(local5) and level(alert); };

filter f_isa2004_application { facility(local6) and level(debug); }; filter f_isa2004_security { facility(local6) and level(info); }; filter f_isa2004_system { facility(local6) and level(notice); };

filter f_citrix_gateway_application { facility(local6) and level(warning); }; filter f_citrix_gateway_security { facility(local6) and level(error); }; filter f_citrix_gateway_system { facility(local6) and level(crit); }; filter f_citrix_gateway_secure_gateway { facility(local6) and level(alert); };

# # ネットワーク機器のログの出力先 #

destination d_internet-gw { file("/var/log/syslog-ng/internet-gw/$YEAR$MONTH$DAY.log"); }; destination d_firewall { file("/var/log/syslog-ng/firewall/$YEAR$MONTH$DAY.log"); }; destination d_L3Switch { file("/var/log/syslog-ng/L3Switch/$YEAR$MONTH$DAY.log"); }; destination d_pppoe-router { file("/var/log/syslog-ng/PPPoE-router/$YEAR$MONTH$DAY.log"); }; destination d_subnet-gw { file("/var/log/syslog-ng/subnet-gw/$YEAR$MONTH$DAY.log"); };

# # Windows Serverのログの出力先 # destination d_domain_controler_1_application { file("/var/log/syslog-ng/domain_controler_1/application/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_1_directory { file("/var/log/syslog-ng/domain_controler_1/directory/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_1_dns { file("/var/log/syslog-ng/domain_controler_1/dns/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_1_file_replication { file("/var/log/syslog-ng/domain_controler_1/file_replication/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_1_security { file("/var/log/syslog-ng/domain_controler_1/security/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_1_system { file("/var/log/syslog-ng/domain_controler_1/system/$YEAR$MONTH$DAY.log"); };

destination d_domain_controler_2_application { file("/var/log/syslog-ng/domain_controler_2/application/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_2_directory { file("/var/log/syslog-ng/domain_controler_2/directory/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_2_dns { file("/var/log/syslog-ng/domain_controler_2/dns/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_2_file_replication { file("/var/log/syslog-ng/domain_controler_2/file_replication/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_2_security { file("/var/log/syslog-ng/domain_controler_2/security/$YEAR$MONTH$DAY.log"); }; destination d_domain_controler_2_system { file("/var/log/syslog-ng/domain_controler_2/system/$YEAR$MONTH$DAY.log"); };

destination d_exchange_1_application { file("/var/log/syslog-ng/exchange_1/application/$YEAR$MONTH$DAY.log"); }; destination d_exchange_1_security { file("/var/log/syslog-ng/exchange_1/security/$YEAR$MONTH$DAY.log"); }; destination d_exchange_1_system { file("/var/log/syslog-ng/exchange_1/system/$YEAR$MONTH$DAY.log"); };

destination d_exchange_2_application { file("/var/log/syslog-ng/exchange_2/application/$YEAR$MONTH$DAY.log"); }; destination d_exchange_2_security { file("/var/log/syslog-ng/exchange_2/security/$YEAR$MONTH$DAY.log"); }; destination d_exchange_2_system { file("/var/log/syslog-ng/exchange_2/system/$YEAR$MONTH$DAY.log"); };

destination d_Citrix_1_application { file("/var/log/syslog-ng/Citrix_1/application/$YEAR$MONTH$DAY.log"); }; destination d_Citrix_1_security { file("/var/log/syslog-ng/Citrix_1/security/$YEAR$MONTH$DAY.log"); }; destination d_Citrix_1_system { file("/var/log/syslog-ng/Citrix_1/system/$YEAR$MONTH$DAY.log"); };

destination d_Citrix_2_application { file("/var/log/syslog-ng/Citrix_2/application/$YEAR$MONTH$DAY.log"); }; destination d_Citrix_2_security { file("/var/log/syslog-ng/Citrix_2/security/$YEAR$MONTH$DAY.log"); }; destination d_Citrix_2_system { file("/var/log/syslog-ng/Citrix_2/system/$YEAR$MONTH$DAY.log"); };

destination d_exchange_front_application { file("/var/log/syslog-ng/exchange_front/application/$YEAR$MONTH$DAY.log"); }; destination d_exchange_front_security { file("/var/log/syslog-ng/exchange_front/security/$YEAR$MONTH$DAY.log"); }; destination d_exchange_front_system { file("/var/log/syslog-ng/exchange_front/system/$YEAR$MONTH$DAY.log"); }; destination d_exchange_front_virtual { file("/var/log/syslog-ng/exchange_front/virtual/$YEAR$MONTH$DAY.log"); };

destination d_isa2004_application { file("/var/log/syslog-ng/isa2004/application/$YEAR$MONTH$DAY.log"); }; destination d_isa2004_security { file("/var/log/syslog-ng/isa2004/security/$YEAR$MONTH$DAY.log"); }; destination d_isa2004_system { file("/var/log/syslog-ng/isa2004/system/$YEAR$MONTH$DAY.log"); };

destination d_citrix_gateway_application { file("/var/log/syslog-ng/citrix_gateway/application/$YEAR$MONTH$DAY.log"); }; destination d_citrix_gateway_security { file("/var/log/syslog-ng/citrix_gateway/security/$YEAR$MONTH$DAY.log"); }; destination d_citrix_gateway_system { file("/var/log/syslog-ng/citrix_gateway/system/$YEAR$MONTH$DAY.log"); }; destination d_citrix_gateway_secure_gateway { file("/var/log/syslog-ng/citrix_gateway/secure_gateway/$YEAR$MONTH$DAY.log"); };

# # ネットワーク機器のログの設定 # log { source(s_remote); filter(f_internet-gw); destination(d_internet-gw); }; log { source(s_remote); filter(f_firewall); destination(d_firewall); }; log { source(s_remote); filter(f_L3Switch); destination(d_L3Switch); }; log { source(s_remote); filter(f_pppoe-router); destination(d_pppoe-router); }; log { source(s_remote); filter(f_subnet-gw); destination(d_subnet-gw); };

# # Windows Serverのログの設定 # log { source(s_remote); filter(f_domain_controler_1_application); destination(d_domain_controler_1_application); }; log { source(s_remote); filter(f_domain_controler_1_directory); destination(d_domain_controler_1_directory); }; log { source(s_remote); filter(f_domain_controler_1_dns); destination(d_domain_controler_1_dns); }; log { source(s_remote); filter(f_domain_controler_1_file_replication); destination(d_domain_controler_1_file_replication); }; log { source(s_remote); filter(f_domain_controler_1_security); destination(d_domain_controler_1_security); }; log { source(s_remote); filter(f_domain_controler_1_system); destination(d_domain_controler_1_system); };

log { source(s_remote); filter(f_domain_controler_2_application); destination(d_domain_controler_2_application); }; log { source(s_remote); filter(f_domain_controler_2_directory); destination(d_domain_controler_2_directory); }; log { source(s_remote); filter(f_domain_controler_2_dns); destination(d_domain_controler_2_dns); }; log { source(s_remote); filter(f_domain_controler_2_file_replication); destination(d_domain_controler_2_file_replication); }; log { source(s_remote); filter(f_domain_controler_2_security); destination(d_domain_controler_2_security); }; log { source(s_remote); filter(f_domain_controler_2_system); destination(d_domain_controler_2_system); };

log { source(s_remote); filter(f_exchange_1_application); destination(d_exchange_1_application); }; log { source(s_remote); filter(f_exchange_1_security); destination(d_exchange_1_security); }; log { source(s_remote); filter(f_exchange_1_system); destination(d_exchange_1_system); };

log { source(s_remote); filter(f_exchange_2_application); destination(d_exchange_2_application); }; log { source(s_remote); filter(f_exchange_2_security); destination(d_exchange_2_security); }; log { source(s_remote); filter(f_exchange_2_system); destination(d_exchange_2_system); };

log { source(s_remote); filter(f_Citrix_1_application); destination(d_Citrix_1_application); }; log { source(s_remote); filter(f_Citrix_1_security); destination(d_Citrix_1_security); }; log { source(s_remote); filter(f_Citrix_1_system); destination(d_Citrix_1_system); };

log { source(s_remote); filter(f_Citrix_2_application); destination(d_Citrix_2_application); }; log { source(s_remote); filter(f_Citrix_2_security); destination(d_Citrix_2_security); }; log { source(s_remote); filter(f_Citrix_2_system); destination(d_Citrix_2_system); };

log { source(s_remote); filter(f_exchange_front_application); destination(d_exchange_front_application); }; log { source(s_remote); filter(f_exchange_front_security); destination(d_exchange_front_security); }; log { source(s_remote); filter(f_exchange_front_system); destination(d_exchange_front_system); }; log { source(s_remote); filter(f_exchange_front_virtual); destination(d_exchange_front_virtual); };

log { source(s_remote); filter(f_isa2004_application); destination(d_isa2004_application); }; log { source(s_remote); filter(f_isa2004_security); destination(d_isa2004_security); }; log { source(s_remote); filter(f_isa2004_system); destination(d_isa2004_system); };

log { source(s_remote); filter(f_citrix_gateway_application); destination(d_citrix_gateway_application); }; log { source(s_remote); filter(f_citrix_gateway_security); destination(d_citrix_gateway_security); }; log { source(s_remote); filter(f_citrix_gateway_system); destination(d_citrix_gateway_system); }; log { source(s_remote); filter(f_citrix_gateway_secure_gateway); destination(d_citrix_gateway_secure_gateway); };

# # とりあえず捕まえたログはtestディレクトリに入れておいて設定を確かめるためのおまけの行。 # destination d_separatedbyhosts { file("/var/log/syslog-ng/test/$HOST-$YEAR$MONTH$DAY.log"); };

log { source(s_remote); destination(d_separatedbyhosts); };

単一ホスト宛へのStatic Route の記述

|
/etc/sysconfig/static-routes に記述することはみなさん常識だと思われるのですが、 先日、
any net 172.16.1.1 netmask 255.255.255.255 gw 10.0.1.254 eth1
とかかいて、/etc/init.d/network restartってやったら 書き方がまずかったみたいで、static routeが全部なくなっちゃいました。 正しくは、
any host 172.16.1.1 gw 10.0.1.254 eth1
です。 routeコマンドと理屈は同じなんですけどね。

MRTGでLoad Averageのグラフをつくる

|

Cacti
これだけ便利なグラフツールがあるというのに、
いまさらMRTGを使うのはなぜか。道楽だからでしょうか?

いや、ちがいます。
うちのマシンはIBM ThinkPad 760ED(Pentium133MHz, 48MB RAM, HDD 1.2GB)という
超貧弱マシンにDebian(Sarge)を入れて無理やりサーバーにしているのです。
これにMySQLを入れて、Cactiを動かすと必ず固まってしまうのです。

業務ではCactiを使ってますよ。はい。
そのうちCactiのことも書きます。


設定はこうなりました。参考にしたのは、 ITmedia ●ロードアベレージと空きメモリ容量を取得するには です。はい。

###  >> Descr: 'Load Average ' | Name: 'Load Average' ###

Target[localhost_3]: .1.3.6.1.4.1.2021.10.1.5.1&1.3.6.1.4.1.2021.10.1.5.2:public@localhost : MaxBytes[localhost_3]: 2000 Title[localhost_3]: Load Average -- hoge eth0 192.168.0.252 PageTop[localhost_3]: <H1>Load Average 1 minute -- hoge eth0 192.168.0.252</H1> Options[localhost_3]: growright,nopercent,gauge,absolute,unknaszero,withzeroes YLegend[localhost_3]: Load Avalage ShortLegend[localhost_3]: percent Legend1[localhost_3]: 1 min localhost_3 Load Avalage Legend2[localhost_3]: 5 min localhost_3 Load Avalage LegendI[localhost_3]: 1min LegendO[localhost_3]: 5min <TABLE> <TR><TD>System:</TD> <TD>hoge in Unknown (configure /etc/snmp/snmpd.local.conf)</TD></TR> <TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmpd.local.conf)</TD></TR> <TR><TD>Description:</TD><TD>Load Average 1min </TD></TR> <TR><TD>Name:</TD> <TD>Load Average</TD></TR> </TABLE>

ここのページにWindowsのCPUやプロセス数のOIDが出てました。 http://www.syslog.gr/content/view/10/2/
CPU L