2008年12月20日土曜日

マインドマップ フリーソフト FreeMind

アイデアなどを図式化してツリー状に派生させていく。
単純ではあるが物事の繋がりが明確になり整理しやすくなります。
  
いろんな分野で使えるため、
・クライアントと打ち合わせ中に・・・
・ひらめきをひたすら書き留める・・・
・データベースやアプリケーションのベース設計など・・・とにかく何でも使える。
 
漠然と書き込んでいって関連する物事であとで紐付けていく!
ノートに羅列された事柄を整理するより、はるかにわかりやすい。
 

利用するにはFreeMindインストールする前にJava実行環境が必要になるため事前に準備しておく。

1.FreeMindのダウンロード
 http://freemind.sourceforge.net/wiki/index.php/Download
 上記サイトからインストールするOSに合ったのもを選ぶ(ここではWindows版)
 フル機能が使える「Windows Installer Max」からダウンロードします。
 現在0.8.1が最新版


2.EXEからインストール開始
 

2008年12月16日火曜日

MS SQLServer 2005 SP3

サービスパック3がリリースされました。
 
・修正される問題の一覧はこちら
 
・Readme ファイルはこちら
 
・ダウンロードはこちら

※Express Editionはこちら
 
・Books Onlineはこちら
 

 

2008年11月28日金曜日

デスクトップ項目 IEがない!

いつも聞かれたときに忘れてしまうため・・・ 
 
デスクトップにIEのアイコンを表示したいのに


あるはずの項目がない!実は隠れているだけで、デスクトップに表示させることはできる。

上記の画面表示中にAlt + I でチェックが付いたことになるのでその後OKで閉じれば

無事、デスクトップに表示される。

2008年11月15日土曜日

CentOS 5 インストーラーが起動しない

 
旧型のPCでACPIの電源管理システムに対応していない場合
インストーラーが起動できないことがある。
そんなときは、インストール開始画面にて以下のように指定するとよい。(テキストモードの場合)

boot: linux text noacpi
 
ちなみに・・・
VirtualPCへインストールする際、画面が横伸びしてしまうときにも対応できる。

GUIでインストールしたい場合
boot: linux vesa i8042.noloop psmouse.proto=imps clock=pit
 
 

2008年11月7日金曜日

PHP バージョン

あるサーバーにインストールされているPHPのバージョンがわからなくなった。
RPMでインストールされていれば #rpm -qa grep phpで調べられるが、
このサーバーはソースからインストールしたものなのでRPMコマンドは使えない。
phpinfo()で画面表示して見てもよいのだが、スマートではないので探してみよう。
 
何やら怪しいファイルが・・・
/usr/local/bin/にphp-configというファイル
中身を覗いてみると・・・
[--prefix--includes--ldflags--libs--extension-dir--include-dir--php-binary--version]
のオプション指定で調べられるようだ。
  
さっそくやってみよう。
# /usr/local/bin/php-config --version
※binまでのpathが通っていれば # php-config --version でOK

でた。
5.1.6

実は回答は全てこのphp-configに書いてある・・・
 
環境:CentOS4.7
 

2008年10月29日水曜日

FortiGate-110C

ローエンドモデルの最上位機種FortiGate110Cが発表されました。

ハイエンド機種と同様のASIC コンテンツプロセッサが採用され高速化されたようです。

●ハードウェア
・FortiASIC CPによるUTMアクセラレーション
・RAM 1024MB
・10/100/1000 WANポート×2
・10/100 スイッチポート×8
・コンソールポート×1
・USBポート×2
・19inラックマウントキット付属

●スループット
・ファイアーウォール:500Mbps
・IPSecVPN:100Mbps
・アンチウイルス:65Mbps
・IPS:200Mbps

というスペックなのでFortiGate200A(FW:150Mbps VPN:70Mbps)とFortiGate800(FW:1Gbps VPN:200Mbps)の中間に位置する機種です。
他社同等製品と比較しても最高のパフォーマンスと言えるでしょう。

ただ、残念なのが2009年早々に値上げ予定があるそうです。
 

2008年10月20日月曜日

次期Windowsの正式名称

次期OSの開発コード名称であった「Windows7」がそのまま製品の正式名称として採用されることになったそうです。単純に7番目のWindowsという意味らしいです。

PDC2008WinHECにて開発版が配布されるそうです。

元ねたはWindowsVistaの公式ブログ
 

2008年9月29日月曜日

DNS キャッシュポイズニング対策

当社では自社ドメインすべてを自前のサーバで管理していますが最近そのDNSサーバへ不正にアクセスしようとする不届き者が・・・。
 
キャッシュおよびコンテンツ(作成したゾーン)はアクセス制限しているためキャッシュを汚染されることは、まずないと思われるのですが、
キャッシュポイズニング対策として念のためキャッシュ機能は使わないように変更します。
 
キャッシュポイズニングとは簡単に言うとキャッシュされているDNS情報を不正に書き換えてしまう。
これにより問い合わせをしたとき本来とは違う回答を返してしまうため偽サイトに誘導されたりする。

 named.confを以下のように修正します。(bind9.2.4)

 options部分にrecursion no;を追記する。

 "."ゾーンを参照させないように変更する。
 zone "." IN {
      type hint;
 //    file "named.ca";
      file "/dev/null";
 };
 
 namedをrestartする。
 
 簡単にDNSサーバをチェックしてくれるサイトがあるので試してみましょう。
http://recursive.iana.org/の「Provide a domain namename to analyse」欄にドメインを入力してクエリ送信ボタンを押してみましょう。
 
 結果
 ・Safe 安全です
 ・Vulnerable 危険な状態
 ・Highly vulnerable 大変危険な状態

 Name Serverにはサーバごとに個別結果が表示されます
 ・Not recursive 安全です(ドメイン管理のみしている)
 ・is recursive 危険な状態(ドメイン管理以外にキャッシュサーバとしても機能している)
 ・could not detect source port randomisation 大変危険(ポートが固定化されている)
 ・Could not scan スキャンできない(正常稼動していないのでは・・・)
 ・Completely lame 機能に問題あり?
 

2008年9月16日火曜日

IE8 ベータ2  日本語版 リリース

IE7よりパフォーマンスは格段によいようです。

評判の悪い?IE7の信頼回復なるか!
 

blackholes.us 落ちてる?

国別のスパム対策のひとつとしてblackholes.usを利用しているが
どうやら日本時間9/13 15:00ぐらいから落ちているみたい・・・。
http://www.blackholes.us/にアクセスしても応答なし。

しばらくはblackholes.usを外すことにする。
 
設定している国
cn.countries.blackholes.us ※中国
kr.countries.blackholes.us ※韓国
tw.countries.blackholes.us ※台湾
pl.countries.blackholes.us ※ポーランド
de.countries.blackholes.us ※ドイツ
cz.countries.blackholes.us ※チェコ共和国
ru.countries.blackholes.us ※ロシア
gb.countries.blackholes.us ※イギリス
 
※2008/09/24 復旧を確認したため再度有効に変更
※2009/01/07 blackholes.usは度々落ちることがあり困るので
         使用中止してしばらくはS25R+Greylistingのみで対応する
 
 

2008年9月9日火曜日

架空請求

「サイト未納料金がございます。本日迄に連絡なき場合法的処置を取らせて頂きます㈱NJC 03-6672-0813 担当 嶋田」auのCメールでこんな文章が090-5807-1254から送られてきました。

auでは「電子メールを使用しての料金請求は法律で禁止されています。それに本当の料金請求なら封書で自宅に郵送しなければならないとのこと」と定められていますので無視するのがよいでしょう。
下手に連絡をすると相手の餌食になってしまいます。ご注意を!
 

2008年8月28日木曜日

CentOS /bootのディスク容量が・・・

 
/etc/cron.daily/yum.cronにて以下のようなエラーが吐き出される。
※LogWatch通知から抜粋
Error: Transaction Check Error:
installing package kernel-smp-×.×.×-×.×.×.EL needs ×MB on the /boot filesystem
 ・
 ・
 ・

カーネルが随時更新され古いカーネルが削除されず残ります。
起動に問題があったときなど古いカーネルでの起動をすることもできて非常に便利ですが当然ディスク容量に限界が出てきます。(/bootエリア)
そこで「yum-utils」を使い古いカーネルを削除してディスクに空きを確保します。

インストールされているかチェック
# rpm -qa | grep yum-utils

インストールされていなければ下記のようにyumでインストールします
# yum install yum-utils

Setting up Install Process
Setting up repositories
update 100% ========================= 951 B 00:00
base 100% ========================= 1.1 kB 00:00
addons 100% ========================= 951 B 00:00
extras 100% ========================= 1.1 kB 00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for yum-utils to pack into transaction set.
yum-utils-0.5-2.el4.cento 100% ========================= 7.1 kB 00:00
---> Package yum-utils.noarch 0:0.5-2.el4.centos set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
yum-utils noarch 0.5-2.el4.centos extras 45 k

Transaction Summary
=============================================================================
Install 1 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 45 k
Is this ok [y/N]:  y
Downloading Packages:
(1/1): yum-utils-0.5-2.el 100% ========================= 45 kB 00:21
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: yum-utils ######################### [1/1]

Installed: yum-utils.noarch 0:0.5-2.el4.centos
Complete!
インストール完了

古いカーネルを削除
※今動いているカーネルと1世代前のカーネルは残ります。(デフォルト設定)
# package-cleanup --oldkernels

※残しておきたいカーネル数を指定したい場合は以下のようにオプションを追加します。
# package-cleanup --oldkernels --count=残すカーネル数(現在のカーネルも含む)


削除対象のカーネルがリストアップされます 
Setting up yum
Not removing kernel 2.6.9-67.0.7.EL because it is the running kernel
I will remove the following 11 kernel related packages:
kernel-2.6.9-67.0.15.EL
kernel-2.6.9-67.0.4.EL
kernel-2.6.9-67.0.1.EL
kernel-2.6.9-67.EL
kernel-2.6.9-55.0.12.EL
kernel-2.6.9-55.EL
kernel-devel-2.6.9-67.EL
kernel-devel-2.6.9-55.0.12.EL
kernel-devel-2.6.9-67.0.4.EL
kernel-devel-2.6.9-67.0.15.EL
kernel-devel-2.6.9-67.0.1.EL
Is this ok [y/N]:

yで実行します。
 

2008年8月21日木曜日

ランキング(SQLServer 2005 分析関数の利用)

SQLServer2005の分析関数を利用して売上ランキングを作る

--売上テーブル(非現実的なテーブルですが・・・ご勘弁ください)
--ここではテーブル変数を利用します
DECLARE @UriageData TABLE (
GroupCD SMALLINT DEFAULT 0, --グループ
TantosyaCD SMALLINT DEFAULT 0, --担当者
UriageDate DATETIME, --売上日
Uriagegaku MONEY DEFAULT 0 --売上額
)

--売上データ
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(1, 1, '2008/01/01', 10000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(1, 2, '2008/01/02', 20000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(1, 3, '2008/01/01', 9000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(2, 4, '2008/01/01', 30000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(2, 5, '2008/01/03', 7000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(1, 1, '2008/01/10', 20000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(1, 2, '2008/01/12', 15000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(1, 3, '2008/01/11', 10000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(2, 4, '2008/01/11', 9000)
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(2, 5, '2008/01/10', 25000)

--ランキング(担当者別に売上額の高い順にソートして順位を付ける)
SELECT RANK() OVER(ORDER BY SUM(Uriagegaku) DESC) AS 'ランク',
    TantosyaCD AS '担当者', SUM(Uriagegaku) AS '売上額'
FROM @UriageData
GROUP BY TantosyaCD






--順位が同じだったら・・・
--担当者1と2を同額になるようにデータを調整
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(1, 1, '2008/01/11', 5000)



担当者1と2共に2位となります。そのとき3位は歯抜けとなる



--RANK()の変わりにDENSE_RANK()を使うと歯抜けをしない形で返る
SELECT DENSE_RANK() OVER(ORDER BY SUM(Uriagegaku) DESC) AS 'ランク',
    TantosyaCD AS '担当者', SUM(Uriagegaku) AS '売上額'
FROM @UriageData
GROUP BY TantosyaCD





--結果からトップ3を抽出する
SELECT AllData.rank AS 'ランク', AllData.tanto AS '担当者', AllData.uriage AS '売上額'
FROM (SELECT DENSE_RANK() OVER(ORDER BY SUM(Uriagegaku) DESC) AS rank,
TantosyaCD AS tanto, SUM(Uriagegaku) AS uriage
FROM @UriageData
GROUP BY TantosyaCD
) AS AllData
WHERE AllData.rank BETWEEN 1 AND 3





--グループ内でそれぞれランキングを付ける(PARTITION BYを付加します)
--その前にわかりやすい結果になるようちょっとデータを直します
INSERT INTO @UriageData(GroupCD, TantosyaCD, UriageDate, Uriagegaku) VALUES(1, 1, '2008/01/11', -5000)

SELECT RANK() OVER(PARTITION BY GroupCD ORDER BY SUM(Uriagegaku) DESC) AS 'ランク', GroupCD AS 'グループ', TantosyaCD AS '担当者', SUM(Uriagegaku) AS '売上額'
FROM @UriageData
GROUP BY TantosyaCD, GroupCD





--余談ですがROW_NUMBER()を使うと単純に結果レコードに番号を振ります
SELECT ROW_NUMBER() OVER(ORDER BY SUM(Uriagegaku) DESC) AS 'No',
    TantosyaCD AS '担当者', SUM(Uriagegaku) AS '売上額'
FROM @UriageData
GROUP BY TantosyaCD

2008年8月12日火曜日

大文字小文字区別するSQL(SQLServer)

今さらですが・・・通常大文字と小文字を区別するかどうかはSQLserverのインストール時に決定されるが、
もし区別しない形式でインストールしてしまった場合は、COLLATE句を付けてSQL文を記述するとよい。

SELECT * FROM testTB WHERE name = 'STDMAN' COLLATE Japanese_CS_AS_KS_WS

・CI 大文字、小文字を区別しない。全角アルファベットの大文字、小文字も区別しない
・CS 大文字、小文字を区別する。全角アルファベットの大文字、小文字も区別する
・AI アクセント、濁音、破裂音を区別しない。
・AS アクセント、濁音、破裂音を区別する。
・KS ひらがなとカタカナを区別する。半角でも区別する
・WS 文字幅を区別する。(全角半角を区別する)

詳しくはSQLServer開発チームのブログ(2008/06/16)を参考にしてください。


また、サーバー照合順序はインストール後でも変更することはできるが、大変そうです。
SQLServer2005:http://msdn.microsoft.com/ja-jp/library/ms179254.aspx

2008年8月5日火曜日

FORTINET ドキュメント

http://docs.fortinet.com/から色々なマニュアルがダウンロードできます。
 
ちょっと覗いてみると・・・fortigate-30Bなんてのもあるんですね。
 

2008年7月31日木曜日

FortiGate SSL VPN Tunnel モード

2013/09/26 FortiOS V4.0 MR3での設定を作成しました。
良ければご参考にどうぞ!ただしWebAccessのみですが・・・
http://stdman.blogspot.jp/2013/09/fortigate-ssl-vpnwebaccess.html


FortiOS V3.0 MR7によるSSLVPNをトンネルモードで動作させる基本的な設定です。
FortiGate60B V3.0 MR7 build0726を使います。
設定はすべてWebから行うことができます。

●ネットワーク構成
INTERNAL アドレス  :192.168.0.1
INTERNAL ネットワーク:192.168.0.0/24(LocalNetとしてアドレス定義)
WAN1   アドレス  :10.1.111.32(仮想グローバルIPとしてスタティック設定)
SSLVPN ネットワーク :192.168.99.0/24


●手順
・SSL VPNの有効化
・ユーザの作成
・ユーザグループの作成
・ファイアウォールポリシーの作成
・トンネルモードの設定

1.SSL VPNの有効化 メニュー:VPN>SSL
「SSL-VPNを有効にする」にチェックを入れて有効化する。
「トンネルIP範囲」トンネルモードで使われる仮想IPレンジです。
※トンネルモードを利用しない場合は、0.0.0.0-0.0.0.0でよい。




2.ユーザの作成 メニュー:ユーザ>ローカル
 ユーザ名とパスワードを設定する。これがログインするユーザとなります。



3.ユーザグループの作成 メニュー:ユーザ>ユーザーグループ
 2で作成したユーザをメンバーに加える。
 「SSL-VPNトンネルサービスを有効にする」にチェックを入れる。
 「ウェブアプリケーションを有効にする」にチェックを入れ必要なサービスを有効にする。



4.ファイアウォールポリシーの作成 メニュー:ファイアウォール>ポリシー
 WAN1->INTERNAL サービス:ANY アクション:SSL-VPN 
 ユーザグループを許可する。



 作成したポリシーは最上位にすること。


この時点で、Webモードとして利用できます。
実際に確認してみましょう。https://10.1.111.32:10443/にアクセスします。
デフォルトでは10443ポートを利用しますが、システム>管理者>設定のSSLVPNログインポートで
任意に設定することができます。ただし443を指定することはできません。

※IEでアクセスすると読み込み中のまま止まってしまうことがあります。
その場合はリロードすればログイン画面が表示されます。
2008/09/01補足
アドレスは/remote/login まで指定したほうがいいみたいです。
(ここではhttps://10.1.111.32:10443/remote/login のように指定する)



ログイン直後画面


接続テスト(PING)を実行してみよう。
下のツール内にある「接続テスト(PING)」に接続先のIPを入力して「GO」を押します。
以下のメッセージが表示されれば通信は問題ないと思われます。



トンネルモードを設定してみる
接続先をプロキシとしてゲートウェイにする。

5.SSLVPNネットワークからINTERNALネットワークへ通信できるようにポリシー設定する
  SSLVPNネットワークからWAN1へ通信できるようにポリシー設定する

 SSLVPNのアドレスをSSLVPN_Usersとしてアドレス定義する ファイアウォール>アドレス
 ※インターフェイスにssl.rootを選択



 SSLVPNからINTERNALを許可



 SSLVPNからWAN1を許可(NATにチェック) これがゲートウェイとして機能します。



 ポリシー一覧



 プロキシ設定 ルータ>スタティックルート
 SSLユーザーのIPレンジを設定します。



 
これで環境は整いましたので再ログインして左上にある「SSL-VPNトンネルモードを有効にする」を押してください。以下のように接続状態が表示されます。
またゲートウェイアドレスが接続先になっているか、ddo.jpなどにアクセスして確認してみてください。



接続終了
「Disconnect」を押す。(トンネルモードのみ解除されます)
※ネットワーク接続に「fortissl」というダイヤルアップが作成されますので
接続終了後不要な方は「Disconnect」を押した後に「Uninstall」を押してダイヤルアップを削除してください。
を押してログアウトします。

2008年7月29日火曜日

FortiOS V3.00 MR7 (build0726)

2008/7/18 FortiOS V3.00 MR7がリリースされました。

早速、support.fortinet.comからダウンロード(FortiGate200用のFGT_200-v300-build0726-FORTINET.out)しアップデートして状態を確認してみた。
※アップデート前はV3.00 MR6 build0660

メモリ使用率は40%台で安定している。また以前V3.00 MR6 build0660でのHTTPS接続に問題があったが
今回は大丈夫なようですね、IPsec VPNも問題ない。

「FortiOS v3.0 MR7 SSL VPN User Guide」
http://docs.forticare.com/fgt/techdocs/FortiGate_SSL_VPN_User_Guide_01-30007-0348-20080718.pdf

SSLVPN用のFortiClientなんてものもあるんですね。






さらにSSLVPN VirtualDesktopというものまで。






SSLVPNを構築したら試してみたいと思います。


ボソボソ:社内のActiveDirectory再構築!
1台のNT4.0で構築されていたものを前任者がWindowsServer2000にアップしてさらにWindowsServer2003へアップしていたがどうやらシステム上致命的な問題があり複製も作れない状態!最悪。
どうせなので新たにActiveDirectoryを新規構築してクライアント(約100台)をすべて移行した。
 

2008年7月9日水曜日

メールの文字化け

たまにメールが$B$3$l$O(JJIS$B$NJ8$G$9!#(J のように化けることがあります。

原因は色々考えられますが・・・
そんなとき以下のサイトを利用してみてください。
http://masaka.dw.land.to/mr/jmr.php

文字化け部分を貼り付けるだけで解読してくれます。
ツールの作者masakaさんに感謝です。
 

2008年6月30日月曜日

WindowsXP SP3適用後

「SP3適用後にWindows UpdateやMicrosoft Updateが正常にインストールできない。」

●Windows の Wups2.dll ファイルを登録する
 1.自動更新サービスを停止します
   [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします
   [名前] に cmd と入力し、[OK] をクリックします
   コマンド プロンプトでnet stop wuauservを入力し、Enter キーを押します

 2.Wups2.dll ファイルを登録します
   コマンド プロンプトで次のコマンドを入力し、Enter キーを押します
   regsvr32.exe %windir%\system32\wups2.dll
   ※"\"(バックスラッシュ)は"¥" (円記号)を入力してください

   64bit版は以下のように入力してください
   regsvr32.exe %windir%\syswow64\wups2.dll

 3.コマンド プロンプトで次のコマンドを入力し、Enter キーを押して自動更新サービスを開始します
   net start wuauserv

 4.コマンド プロンプトを終了します


Windows UpdateまたはMicrosoft Updateを実行して更新がインストールされるか確認
ほとんどはこれで解決されます。

ここでは書きませんが、上記を実行しても解決できない場合はWindows Updateエージェントをインストールする必要がありますので
http://support.microsoft.com/kb/953541/の手順2を参考にしてください。

現在は通常のXP(32bit版)ならこちらからダウンロードできます。

例としてCドライブ直下に置いた場合の手順
コマンドプロンプトを開き以下のコマンドを実行する。

C:\> WindowsUpdateAgent30-x86.exe /wuforce

再起動

2008年6月26日木曜日

BINDのUPDATE

YUMは非常に便利ですが、BINDのUPDATEには注意が必要です。

既存のnamed.confがnamed.conf.rpmsaveにリネームされ
デフォルトのname.confに入れ替わってしまいます。

named.conf.rpmsaveの内容を確認してからnamed.confへ上書きコピー、
その後BINDを再起動すれば元に戻ります。

気づかずにそのままにしておくといつの間にか名前解決ができない状態になります。
 

2008年6月17日火曜日

FortiGate ウイルス削除メッセージ(Message meets Alert condition)

外部メールサーバからPOPによる受信時にウイルスを削除した。
※外部POPサーバーからなので、Internal → ExternalにPOPをチェックするようプロファイルを作成してある。

メッセージ内容
Message meets Alert condition

Virus/Worm detected: W32/Agent.CYU!tr (見つかったウイルス)
Protocol: "pop3" (POP経由)
Source IP: 10.*.*.* (ローカルIP:受信者)
Destination IP: 61.*.*.* (グローバルIP)
Email Address From: "elyse.davie@***.at" (送信元メールアドレス※偽装の確立が高い)
Email Address To: "info@***.com" (受信メールアドレス)
http://www.fortinet.com/ve?vn=W32%2FAgent.CYU%21tr
2008-06-16 10:32:39
device_id=FGT*****
log_id=1
type=virus
subtype=infected (感染している)
pri=warning
vd=root
policyid=1 (ポリシーID1で検知された)
serial=1
user="N/A"
group="N/A"
src=10.*.*.*
sport=1074
src_int="internal"
dst=61.*.*.*
dport=110
dst_int="external"
service="pop3"
status=blocked (削除しました)
from="elyse.davie@***.at"
to="info@***.com"
file="xjolie.zip"
virus="W32/Agent.CYU!tr"
ref="http://www.fortinet.com/ve?vid=431097"
msg="File is infected."

------------------------------------------------------------------------------------
virus="Suspicious"という場合は疑いがあるということでその場合のほとんどが、
status=passthroughとなってそのまま通過します。
まぁ注意してくださいということですね。
 

マネーフォーマット(3桁ごとのカンマ区切り)

数値を999,999,999形式に変換し戻り値は文字列とする。
ここではSQL文の中に組み込みやすいユーザ定義関数(スカラ関数)を利用します。


CREATE FUNCTION [dbo].[MoneyFormat]
(
@value money --対象数値
)
-- 三桁カンマのある文字列形式で返します
RETURNS varchar(20)
AS
BEGIN
-- moneyデータ型からvarchar に変換します
-- 最後に .00 を削除します
RETURN REPLACE(CONVERT(varchar, @value, 1), '.00', '')
END

--実行してみる

select dbo.MoneyFormat(999999999) AS res

0"ゼロ"フォーマット

数値を000001形式に変換し戻り値は文字列とする。
ここではSQL文の中に組み込みやすいユーザ定義関数(スカラ関数)を利用します。

CREATE FUNCTION [dbo].[IntZeroFormat]
(
@value INT, --対象数字
@size INT  --桁数
)
RETURNS varchar(20)
AS
BEGIN
  RETURN RIGHT(REPLICATE('0', @size) + CONVERT(VARCHAR(26), @value), @size)
END

--実行してみる。
--10 → 00010に変換する。

SELECT dbo.IntZeroFormat(10, 5) AS res

SQLServer ストアドの実行権限を与えるストアド

通常はストアドを作成後、実行できるユーザを設定します。
しかしDBを他のサーバに移した場合など再設定が必要な場合があります。
ひとつずつ設定するのは面倒なので、指定ユーザを一気に設定するストアドを作ってしまおう。
※エラー処理は省略しています。必要な方はご自分で考えてみてください。

CREATE PROCEDURE [dbo].[GRANT_ADD]
 (
   --パラメータ 許可を与えるユーザーを指定します(DBに存在しログインできる状態のユーザ)
   @UserName NVARCHAR(256) = ''
 )
AS
--[DBユーザ]に実行権限を与える

 SET NOCOUNT ON

 --変数定義
 DECLARE @objectname NVARCHAR(256), @cur_cnt INT, @loop_cnt INT
 DECLARE @sql NVARCHAR(100)

 --カーソル定義(ストアド名を抽出)
 DECLARE Cur CURSOR LOCAL SCROLL STATIC
 FOR
 SELECT NAME FROM sysobjects WHERE OBJECTPROPERTY(id, N'IsProcedure') = 1
                             AND name NOT LIKE 'dt_%'

 --カーソルをオープンする
 OPEN Cur

 SET @loop_cnt = 0

 IF (@@CURSOR_ROWS <> 0)
 BEGIN

  --@@が付くときはグローバルなので念のため別途保持しておく
  SET @cur_cnt = @@CURSOR_ROWS
  
  WHILE (@cur_cnt <> @loop_cnt)
  BEGIN
    --ストアド名を@objectnameへ
    FETCH NEXT FROM Cur INTO @objectname

    --実行権限を与えるSQLの発行
    SET @sql = 'GRANT EXECUTE ON [dbo].[' + @objectname + '] TO [' + @UserName + ']'
    --SQL実行
    EXEC sp_executesql @sql

    --次のストアドへ
    SET @loop_cnt = @loop_cnt + 1
  END
 END
 ELSE
 BEGIN
   PRINT 'ストアドが見つかりません'
 END

----------------------------------------------------------------------------------

あとは以下を実行して完了!(ただしログインユーザは先に作っておいてね)
EXEC GRANT_ADD @UserName = 'ExecUser'

※ExecUserは自分の環境に合わせてください。

2008年6月16日月曜日

yumでエラーが発生してupdateできない

/etc/cron.daily/yum.cron:
Error: failure: repodata/primary.xml.gz from dag: [Errno 256] No more mirrors to try.

//手動でyum updateすると・・・
[root@centos ~]# yum update
Loading "fastestmirror" plugin
Setting up Update Process
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 709 kB 00:55
http://apt.sw.be/redhat/el4/en/i386/dag/repodata/primary.xml.gz: [Errno -1] Metadata file does not match checksum
Trying other mirror.
Error: failure: repodata/primary.xml.gz from dag: [Errno 256] No more mirrors to try.

こんなログ(手動でのエラー)が、発生して何日も解決しない場合は

リポジトリが壊れている。またはyumのデータベースが壊れている可能性がある。

対処方法
1.yum clean all を実行してから yum updateを実行してみる。

2.それでも改善されない場合はリポジトリが壊れている可能性が高いので対象のリポジトリを
 アクセス除外してみる。
 今回はdagリポジトリなので/etc/yum.repo.d/dag.repo内のenabled=1を0に変更して
 アクセスしないように設定する。

 yum updateを再度実行してみる。

3.dagリポジトリの修復
 /etc/yum.repo.d/dag.repを開きアクセス先を変更してみる。
 enabledも1に戻す。

 [dag]
 name=Dag RPM Repository for Red Hat Enterprise Linux
 #baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag
 baseurl=http://ftp.riken.jp/Linux/dag/redhat/el4/en/$basearch/dag/
 gpgcheck=1
 enabled=1
 includepkgs=インクルードしたパッケージが表示される(proftpd など)


 次にGPGキーをインポートする
 rpm --import http://ftp.riken.jp/Linux/dag/packages/RPM-GPG-KEY.dag.txt

 yum updateを実行してみる。
 

「MS08-031 : Internet Explorer の重要な更新」がインストールできない

なぜか更新MS08-031のインストールに失敗する・・・

そんなときはMicrosoftから別途プログラムをダウンロードしてexeを実行しよう。

以下からお使いOS、IEに一致するプログラムを選択。
ここからダウンロードページに行けます
 

yumコマンドでCentOS4.5にMySQL5

CentOS4のデフォルトではMySQLは4.1となります。
enablerepoレポジトリにはMySQL5.0が登録されているためそれを使います。

# yum --enablerepo=centosplus install mysql-server

PHPも同様に、php4.3をphp5.1にすることができます。
# yum --enablerepo=centosplus install php

※yumが使えない・・・
そもそもyumを使うためには、GPG KEY をインポートする必要があります。
# rpm --import http://ftp.riken.jp/Linux/caos/centos/RPM-GPG-KEY-CentOS-4


ボソボソ:忘れっぽくなったな~ あれっ昨日何食べたっけ。。。。。
 

2008年6月12日木曜日

Virtual PC コンソール 表示されない!

Virtual PC コンソールが表示されなくなった。 (Virtual PC 2007)

タスクバーにはあるのだがデスクトップ上に見当たらない、というときは以下の手順を実行してみよう。

1.タスクバーにある「Virtual PC コンソール」を右クリックして「移動」を選択します。
2.おそらくカーソルが画面左上に行くと思います。
3.「→」や「 ↓ 」キーを押しているとあら不思議、見えてきます。

Virtual PC 2007 SP1(ダウンロード)を適用してみると対策になるかも。

<追記事項 >
●2009/02/20 SP1用の修正プログラム (ダウンロード
機能アップやいくつかの不都合が改善がされています。
「ネットワークのパフォーマンスアップ、安定性の向上」「解像度は 2048 x 1920 (32 ビット) まで対応」など・・・適用後のバージョンは「6.0.210.0」となります。

更新は必ずSP1を適用してから行うこと!

●2009/07/15 SP1用のセキュリティ更新プログラム KB969856(ダウンロード

2008年5月27日火曜日

SQLServer トランザクションログ 肥大化

気がついたら、トランザクションログファイル(拡張子LDF)が××Gb!

通常は、トランザクションログファイルのバックアップを実行すると、ログの切捨てが自動で行われ圧縮されるのですが、バックアップ中にドライブの空き領域が不足してバックアップが実行できない!なんてことがあります。

ログの管理が不要であれば、ログだけ切り捨てる方法があります。

以下のSQLを実行
ただし、データベースファイルがひとつの場合に限定されますので注意

BACKUP LOG データベース名 WITH TRUNCATE_ONLY



これを実行すると、ログの切捨てが即実行されます。
ただし物理的にファイルは小さくはなりませんので次にデータベースの圧縮を行います。


以下のSQLを実行

DBCC SHRINKFILE( ’ 論理ファイル名 ’)

これによって圧縮が行われます。

※トランザクションログも定期的にバックアップしておきましょう。

例)
データベース名がmydbの場合

use mydb

--圧縮前のサイズ確認など
SELECT * FROM sys.database_files

--理論ファイル名の取得
DECLARE @FileName varchar(max)
SELECT @FileName = name FROM sys.database_files

--ログ切り捨て
BACKUP LOG mydb WITH TRUNCATE_ONLY

--ファイルの圧縮
DBCC SHRINKFILE( @FileName )

--圧縮後のサイズ確認など
SELECT * FROM sys.database_files

GO

2008年5月20日火曜日

google検索でブラウザが落ちる

AVG8.0利用者が対象となる。

AVG8.0から「リンクスキャナ」という機能が付いたのですが、
これに含まれる「サーチシールド」機能にバグがあるようです。

現在開発元で調査および修正をしているらしいが、とりあえずの策として
「サーチシールド」を無効にして回避します。

「サーチシールド」無効化の手順

IEの場合
1.IEを起動する
2.「ツール」メニュー内の「インターネットオプション」を選択する
3.「プログラム」タブ内の「アドオンの管理」をクリックする
4.「AVG Safe Search」を選択後、画面下部「設定」欄で「無効」を選択する
5.「OK」をクリックする
6.IEを終了後、IEを再起動する

Firefoxの場合
1.Firefoxを起動する
2.「ツール」メニュー内の「アドオン」を選択する
3.拡張機能内「AVG Safe Search 8.0」の「無効」をクリックする
4.Firefoxを終了後、Firefoxを再起動する
 
 

2008年5月16日金曜日

WindowsXP SP3 注意!

先日SP3が正式にリリースされましたが、AMD社製CPUの搭載した一部のPC(特にHP社?)に
SP3をインストールすると再起動を繰り返す? 最悪はブルースクリーン・・・
どうやら起動時に読み込むIntelPPMドライバに問題がありSP3自体にはバグはないという。
もし再起動を繰り返すようになってしまった場合はXPの起動時クラッシュでの再起動設定を
解除するなどの対応でとりあえずは起動できるようになるという。
またこのドライバを無効化してしまう方法もあるらしいが再起動設定の解除方法をご紹介します。
ただし状態が悪化しても当方では一切の責任を負いませんので必ず自己責任でお願いします。

1.PCの電源ON直後にF8を押す。
2.起動メニューが表示されるので「システム障害時の自動的な再起動を無効にする」を選択する。   







3.次にOS選択画面に移るので指定のOSを選択すればよい 。
 運良く(?)起動できたらSP3をアンインストールして再起動する。


詳しくはジェスパー・ヨハンソンという方のブログに掲載されている。

http://msinfluentials.com/blogs/jesper/archive/2008/05/08/does-your-amd-based-computer-boot-after-installing-xp-sp3.aspx

2008年5月9日金曜日

FortiGate 200 戻ってきました。

内臓HD故障のため修理に出していたFortiGateが戻ってきたが、なんと新品のFortiGateが送られてきた。 しかも費用は0円です。(実質故障したハードの送料のみ負担)
保守のありがたみを感じました。
でも修理依頼に出してから結局約1ヶ月も掛かった・・・海外製品だから仕方ないのかな~

デフォルトではFortiOS V2.8なので V3.0 MR6にファームウェアアップして早速、
バックアップしてあった設定ファイルをリストアして稼動開始!。

ボソボソ:FortiOS V3.0のbuild0662(patch_1)がリリースされていたので適用してみた。
ところが・・・HTTPSでのセッションが弾かれるようになってしまった。(入札システムなど)
詳しく調べてる時間がないのでbuild0660にダウン。時間のあるときに調べようっと。

2008年5月7日水曜日

PostgreSQL トリガー処理で履歴保存(plpgsql)

特定フィールドの値が変更されたら変更前の状態でログを取る。

--テーブル
CREATE TABLE table1(
id serial NOT NULL,
code smallint NOT NULL DEFAULT 0,
name character varying(20),
CONSTRAINT pk_id PRIMARY KEY (id)
)WITH (OIDS=FALSE);

--ログテーブル
CREATE TABLE table1_log(
log_id serial NOT NULL,
id integer NOT NULL DEFAULT 0,
code smallint NOT NULL DEFAULT 0,
name character varying(20),
CONSTRAINT pk_log_id PRIMARY KEY (log_id)
)WITH (OIDS=FALSE);

--仮データ作成
INSERT INTO table1(code, name) VALUES(1, '名前1');
INSERT INTO table1(code, name) VALUES(2, '名前2');
INSERT INTO table1(code, name) VALUES(3, '名前3');

--プロシージャ
CREATE OR REPLACE FUNCTION table1_rireki()
returns "trigger"
AS '
--codeが変更されたら更新前の状態でログテーブルへ追加
IF (OLD.code <> NEW.code) THEN
INSERT INTO table1_log(id, code, name)
SELECT id, code, name FROM table1 WHERE id = OLD.id;
END IF;

RETURN NEW; --NEWにしないとtable1のデータが反映されない

END;
'
language 'plpgsql';


--トリガ定義
--table1にてupdate処理前にtable1_rireki()を実行させる
CREATE TRIGGER table1_rireki
before update on table1
for each row
execute procedure table1_rireki();

 

WindowsXP SP3 ダウンロード提供の開始

WindowsUpdateからインストール可能になりました。
 

2008年5月4日日曜日

WindowsXP SP3 ダウンロード提供の延期

Web公開予定だったSP3が延期されました。どうやらRMS(情報保護に関するサーバー機能)というシステムの互換性に問題があるらしい。元ネタ

参考までに・・・
SP3はXP最後のサービスパックと言われているもので、今までリリースされてきた更新プログラム(SP1,SP2の内容含む)の集積です。従って今までキチットWindowsUpdateを行っている方にはほとんど意味がないと思います。ただし一部WindowsServer2008対応の機能が新たに追加されていますので企業レベルでは必要になるかもしれません。
尚、SP3にはIE7は含まれていない。
 

2008年4月27日日曜日

SQLServer MDF LDFファイルからの復旧

SQLServerマシンが故障!

幸いハードディスクの中身はみられるようだ。
バックアップを取っていなかったデータベースが・・・だが、MDFとLDFファイルは救えた。
新サーバにそのファイルを配置して以下のSQLを実行。

EXEC sp_attach_db
     @dbname = N'データベース名',
     @filename1 = N'パス指定¥***.MDF',
     @filename2 = N'パス指定¥***.LDF'

救出したMDFとLDFがそのまま使えるようになります。

2008年4月24日木曜日

PostgreSQL トリガー処理サンプル(plpgsql)

--プロシージャの作成
CREATE OR REPLACE FUNCTION delete_data()
RETURNS "trigger"
AS '
  DECLARE
    Cnt INT4;
  BEGIN
    Cnt := (SELECT COUNT(*) FROM table2 WHERE table2.id = OLD.id);
    IF (Cnt > 0) THEN
      DELETE FROM table2 WHERE table2.id = OLD.id;
    END IF;

    RETURN OLD;
  END;
'
LANGUAGE 'plpgsql';


--トリガーの作成(table1のレコードを削除した後に指定プロシージャを実行)
CREATE TRIGGER delete_data
after delete on table1
for each row
EXECUTE PROCEDURE delete_data();
 

2008年4月17日木曜日

DELL社製PCにてキーボード入力文字の表示が遅い!

通常であればコンパネ→キーボード→速度→文字の入力で
表示までの待ち時間、表示間隔あたりで調整するのですが、全く改善されない・・・・・
Office2007がインストールされておりIME2007が問題?それを疑ったが これも全く関係ない・・・
仕方がないのでDELL社に問い合わせたところ・・・・・
「PCMServiceがメモリを正しく開放しないためメモリ消費を引き起こす起因となっております。」という回答を頂きました。 要するにメモリリークですな。
DELL固有の常駐プログラム(PCMService)が問題だったようです。
※PCM ServiceはMedia Direct3関連のサービス

解決方法
その常駐ソフトを起動させないようにする
ファイル名を指定して実行→msconfig→スタートアップ内のPCMServiceのチェックを外す。
適用→OK→再起動

入力がスムーズになりました。(^^)
ちなみに修正パッチはリリースされていないようで、DELLでは常時解除した状態でので使用を推奨しているようです。

2008年4月9日水曜日

FortiGate 200 故障!

突然インターネットが使えなくなった!

落ち着いて、まずゲートウェイサーバーへping・・・大丈夫のようだ。
DNSかな?ということでnslookup stdman.blogspot.com・・・応答がある。(LAN内にDNSキャッシュサーバあり)
ルーター(FortiGate)へping・・・んっ!応答なし。

FortiGate本体を見てみると電源は付いているがSTATUSランプが点滅してる。
とりあえず再起動してみたが状況変わらず。一体何が起こっているのか・・・。

コンソール画面で起動処理の内容を見てみるためハイパーターミナルを使いCOM接続。
そして起動中のコンソール画面をみると・・・ CRC Errorという文字が! ディスクの読み書きができないようだ。
とりあえず電源OFFにして1時間ぐらい放置してからONしたらなんと起動できた。

とりあえず復旧したので一安心
だがログには「Log disk failure is imminent」HDがそろそろ壊れますっだってよ!おいおい頼むよ~
仕方がないので今のうちにFortiGate60を代替機として稼働させ修理決行!

ボソボソ:公開サーバが4台あるので、こういう障害は来て欲しくない!ていうかあってはならない!
迷惑を掛けないためにも副回線を確保して状況に応じて切り替えるようにした方ががいいかな・・・

2008年4月7日月曜日

IE7でのファイルダウンロード

Windows XP で Internet Explorer 7 を使用してファイルをダウンロードできないことがあります。
たとえば、[ファイルのダウンロード] ダイアログ ボックスで [保存] をクリックした後に、ファイルがダウンロードされない。
更新プログラムを適用する。 くわしくはこちらのマイクロソフトサポートページをどうぞ
 

2008年4月4日金曜日

PHP + MSSQL (Microsoft SQLServer)

環境:
CentOS 4.5
Apache-2.2.4
PHP-5.1.6 + Zend Optimizer v3.3.0
FreeTDS-0.64
libiconv-1.10 with JpPatch


CentOSのインストールは・・・
1.テキストインストールを基本とする。
2.パッケージは一切インストールしない。
とにかく余計なものはインストールしないことが基本です。
インストール後、開発ツールのみyumにてインストールしておきます。

OSのインストールができたところで必要なソフトをソースからインストールします。

●Webサーバのインストール
# wget http://archive.apache.org/dist/httpd/httpd-2.2.4.tar.gz
# tar zxvf ./httpd-2.2.4.tar.gz
# ./configure --prefix=/usr/local/apache --enable-so --enable-mods-shared=all
# make;make install
※Zend Optimizerを後でインストールするためMPMはpreforkとする(preforkのみ対応のため)

●libiconv 1.10 with JP-Patch
# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.10.tar.gz
# wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.10-cp93.patch.gz
# gzip -dc libiconv-1.10.tar.gz tar xvf -
# cd libiconv-1.10
# gzip -dc ../libiconv-1.10-ja-1.patch.gz patch -p1
# ./configure
# make;make install
※参考ページhttp://www2d.biglobe.ne.jp/~msyk/software/index.html

●FreeTDS ※2008/04/04現在0.64が最新
# wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
# tar zxvf freetds-stable.tgz

EUCJP-MSを使う必要がある場合
# wget http://www.komine.biz/downloads/freetds-0.64.patch
# patch -p0 < freetds-0.64.patch

# ./configure --with-msdblib --with-libiconv-prefix=/usr/local --prefix=/usr/local/freetds
# make;make install

DB接続情報の作成
# vi /usr/local/freetds/etc/freetds.conf
[SQL2005]
    host = DBServerIP
    port = 1433
    tds version = 8.0
    client charset = CP932

●PHP5.1.6
# tar zxvf php-5.1.6.tar.gz
# cd php-5.1.6
# ./configure
--with-apxs2=/usr/local/apache/bin/apxs
--enable-mbstring
--with-mssql=/usr/local/freetds
--enable-pdo=shared
--with-sqlite=shared
--with-pdo-sqlite=shared
--with-pdo-dblib=shared,/usr/local/freetds
--enable-calender
--with-xmlrpc=shared
# make;make install
# cp ./php.ini-dist /usr/local/lib/php.ini
# vi /usr/local/lib/php.ini
    output_buffering = off → 4096

    extension=/usr/local/lib/php/extensions/no-debug-non-zts-20050922/pdo.so
    extension=/usr/local/lib/php/extensions/no-debug-non-zts-20050922/pdo_dblib.so
    extension=/usr/local/lib/php/extensions/no-debug-non-zts-20050922/xmlrpc.so
    ;extension=/usr/local/lib/php/extensions/no-debug-non-zts-20050922/pdo_sqlite.so
    ;extension=/usr/local/lib/php/extensions/no-debug-non-zts-20050922/sqlite.so

    date.timezone = Asia/Tokyo

    session.gc_maxlifetime = 1440 → 72000 (必要に応じて)
    session.cache_limiter = nocache → private

    [mbstring]
        mbstring.***のコメント解除
        ただしmbstring.http_output は SJIS → EUC-JPにする。

PEARモジュールのインストール
# pear install db date install

こんな感じで表示されます。↓
ok: channel://pear.php.net/Date-1.4.7 install
ok: channel://pear.php.net/DB-1.7.13

●Zend Optimizer
# gunzip -c ZendOptimizer-3.3.0-linux-glibc21-i386.tar.gz tar xf -
# cd ZendOptimizer-3.3.0-linux-glibc21-i386
# ./install あとは画面に沿って設定していく。

info.phpで以下の内容が表示されているか確認
「with Zend Extension Manager v1.2.0, Copyright (c) 2003-2007, by Zend Technologies with Zend Optimizer v3.3.0, Copyright (c) 1998-2007, by Zend Technologies」

●MSSQLへの接続テスト
ここではFreeTDS付属のtsqlを使ってテストしてみます。
# /usr/local/freetds/bin/tsql -S [SQL2005(freetds.conf定義)] -p [1433(port)] -U [DBユーザ]
locale is "en_US.UTF-8"
locale charset is "UTF-8"
Password: *****(DBユーザのパスワード)
(以下のようになるとログイン成功です)
1>
では実際にデータを取得してみる。
1>use DBNAME
2>select * from TBNAME
3>GO
データが表示されればOK


補足
SQLServer:SJIS
PHPソース:EUC-JP








2008年3月29日土曜日

Ajaxメールフォーム

PHP+Ajaxを利用したメールフォームAjaxMail
なかなかカッコいい!
住所入力の補完機能もあるのですが郵便番号辞書はJavaScriptライブラリ化しているため定期的な更新が必要なようです。

2008年3月28日金曜日

公開

Linux&DBと格闘の日々・・・設定に関するとこや構築など覚書として書き込んでいこうと思います。

Google検索