Apache+OpenSSLをご利用時に、Apache起動時のSSLのパスワードを取る方法

日本ベリサインで取得していただいた、秘密鍵をインストール後、アパッチの再起動を行うと、SSL起動時に毎回パスワードが聞かれます。
セキュリティはこちらの方が高いのですが、何かのタイミングで自動再起動した場合等に、wwwサーバーが起動しなくなりますので、注意が必要です。
そこで、以下の方法でパスワードなしで起動することが可能です。。
キーファイル名 2011key.pem からパスをとる方法をご紹介します。
2011key.pem はお客様の環境に応じて、変更してください。
# cd /etc/ssl/key ←カレントディレクトリをSSL鍵の位置へ移動
# /usr/bin/openssl rsa -in ./2011key.pem -out ./2011key_nopass.pem ←パスフレーズなしの鍵を生成:2011key_nopass.pemが生成されることになります。
#Enter pass phrase for ./2011key.pem: ←2011key.pemのパスワードを入力
writing RSA key

上記のコマンドで、2011key_nopass.pemが生成されますので、アパッチのhttpd.conf で指定されているkey.pemのファイル名を変更し、アパッチを再起動します。
この時、パスワード無しで、SSLが起動できているはずです。

ディレクトリのサイズを調べる

du -s target-dir

du -sm target-dir で単位メガバイトで調べる

ビットマスク

  ビットマスク サブネットマスク IP数
(実用は-2個、
ルータを除くと-3個)
クラスA /8 255.0.0.0 16,777,216
/9 255.128.0.0 8,388,608
/10 255.192.0.0 4,194,304
/11 255.224.0.0 2,097,152
/12 255.240.0.0 1,048,576
/13 255.248.0.0 524,288
/14 255.252.0.0 262,144
/15 255.254.0.0 131,072
クラスB /16 255.255.0.0 65,536
/17 255.255.128.0 32,768
/18 255.255.192.0 16,384
/19 255.255.224.0 8,192
/20 255.255.240.0 4,096
/21 255.255.248.0 2,048
/22 255.255.252.0 1,024
/23 255.255.254.0 512
クラスC /24 255.255.255.0 256
/25 255.255.255.128  128
/26 255.255.255.192 64
/27 255.255.255.224  32
/28 255.255.255.240  16
/29 255.255.255.248 8
/30 255.255.255.252 4
/31 255.255.255.254 2
/32 255.255.255.255 1

ネットワークを示す、先頭のIPアドレス、通知に利用する最後のブロードキャストアドレス、ゲートウェイアドレスを除くと、上記のIPから-3個したものが実質に使える数。ただし、/32や/31は、そのまま使える数だが何故かはよく知りません。

tarコマンドによる圧縮・解凍

圧縮
tar -cvf  sukina.tar dirA   
dirAをsukinata.tarという名前で圧縮します。

tar -cvzf  NANTOKA.tar.gz dirB dirBをNANTOKA.tarという名前で圧縮し、さらにgzipで固めます

解凍
tar -vxf file_A.tar tar形式で圧縮されたファイル(例ではfile_A.tar)を展開します。
tar -xvf file_A.tar file_B 圧縮された中から特定の名前のファイル(例ではfile_B)を展開します。
tar -xzvf file_A.tar.gz tar.gz形式のファイルを解凍と展開を一度に行います。

startup.sh の中身

#!/bin/sh
# —————————————————————————–
# Start Script for the CATALINA Server
#
# $Id: startup.sh 385888 2006-03-14 21:04:40Z keith $
# —————————————————————————–

# Better OS/400 detection: see Bugzilla 31132
os400=false
darwin=false
case “`uname`” in
CYGWIN*) cygwin=true;;
OS400*) os400=true;;
Darwin*) darwin=true;;
esac

# resolve links – $0 may be a softlink
PRG=”$0″

while [ -h "$PRG" ] ; do
ls=`ls -ld “$PRG”`
link=`expr “$ls” : ‘.*-> \(.*\)$’`
if expr “$link” : ‘/.*’ > /dev/null; then
PRG=”$link”
else
PRG=`dirname “$PRG”`/”$link”
fi
done

PRGDIR=`dirname “$PRG”`
EXECUTABLE=catalina.sh

# Check that target executable exists
if $os400; then
# -x will Only work on the os400 if the files are:
# 1. owned by the user
# 2. owned by the PRIMARY group of the user
# this will not work if the user belongs in secondary groups
eval
else
if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
echo “Cannot find $PRGDIR/$EXECUTABLE”
echo “This file is needed to run this program”
exit 1
fi
fi

exec “$PRGDIR”/”$EXECUTABLE” start “$@”



shutdown.sh の中身

#!/bin/sh
# —————————————————————————–
# Stop script for the CATALINA Server
#
# $Id: shutdown.sh 385888 2006-03-14 21:04:40Z keith $
# —————————————————————————–

# resolve links – $0 may be a softlink
PRG=”$0″

while [ -h "$PRG" ] ; do
ls=`ls -ld “$PRG”`
link=`expr “$ls” : ‘.*-> \(.*\)$’`
if expr “$link” : ‘/.*’ > /dev/null; then
PRG=”$link”
else
PRG=`dirname “$PRG”`/”$link”
fi
done

PRGDIR=`dirname “$PRG”`
EXECUTABLE=catalina.sh

# Check that target executable exists
if [ ! -x "$PRGDIR"/"$EXECUTABLE" ]; then
echo “Cannot find $PRGDIR/$EXECUTABLE”
echo “This file is needed to run this program”
exit 1
fi

exec “$PRGDIR”/”$EXECUTABLE” stop “$@”

Image::Magick のインストール

ムーバブルタイプ(MT)をサーバーにインストールすると、Image::Magick が利用できません。といった警告が出ることがあります。
主にCentOS系のサーバーにはデフォルトでImage::MagickをはじめとするPerl系のモジュールがインストールされていないためです。またimagemagick自体もインストールされていないかもしれません。
解決方法は、yumでimagemagickとperl系の関連モジュールを一括インストールさせればOKです。
■コマンド
yum install ImageMagick-perl

■実行結果(CentOS4への場合)
[root@××× ~]# yum install ImageMagick-perl
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Excluding Packages from CentOS-4 – Updates
Finished
Excluding Packages from CentOS-4 – Base
Finished
Excluding Packages from CentOS-4 – Addons
Finished
Excluding Packages from CentOS-4 – Extras
Finished
Parsing package install arguments
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for ImageMagick-perl to pack into transaction set.
ImageMagick-perl-6.0.7.1- 100% |=========================| 14 kB 00:00
—> Package ImageMagick-perl.i386 0:6.0.7.1-20.el4 set to be updated
–> Running transaction check
–> Processing Dependency: ImageMagick = 6.0.7.1-20.el4 for package: ImageMagick-perl
–> Processing Dependency: libMagick.so.6 for package: ImageMagick-perl
–> Restarting Dependency Resolution with new changes.
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for ImageMagick to pack into transaction set.
ImageMagick-6.0.7.1-20.el 100% |=========================| 44 kB 00:00
—> Package ImageMagick.i386 0:6.0.7.1-20.el4 set to be updated
–> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
ImageMagick-perl i386 6.0.7.1-20.el4 base 80 k
Installing for dependencies:
ImageMagick i386 6.0.7.1-20.el4 base 2.4 M

Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 2.4 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): ImageMagick-perl-6 100% |=========================| 80 kB 00:00
(2/2): ImageMagick-6.0.7. 100% |=========================| 2.4 MB 00:01
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: ImageMagick ######################### [1/2]
Installing: ImageMagick-perl ######################### [2/2]

Installed: ImageMagick-perl.i386 0:6.0.7.1-20.el4
Dependency Installed: ImageMagick.i386 0:6.0.7.1-20.el4
Complete!

Complete!でインストール成功です。


SPF(Sender Policy Framework) 送信ドメイン認証と呼ばれるなりすましメール対策

Yahooメール詳細ヘッダ

Yahooメール詳細ヘッダ

自社のメールサーバーから、Yahoo!やホットメール、gmailなどのフリーメールアドレスを持つお客様に対して、メールを送信した場合、スパムメールに振り分けられてしまい、困っていることはないでしょうか。

 主に、一般の消費者・個人を相手にしている企業では、お客様のアドレスの大半がフリーメールであるということはよくあることです。ある調査では、大手企業が出しているメールマガジンの80%が、スパムとして振り分けられたことがあるというデータもあります。

 今回は、自社メールからフリーメールアドレスに送ったときに、スパムと判定しにくくするというサーバー設定を紹介します。(スパム判定は、メールやタイトルのテキスト内容、キーワード、ページ無いURLの多さ、空き行スペースの多さ、HTMLメールか否かなど総合的に判定していますので、これだけでスパムと判定されなくなるわけではありません)

 まずは上記のYahoo!メールで届いているメールを開き、「詳細ヘッダ」を見てください。
上から4行目に

Received-SPF:

があります。SPFとは、Sender Policy Framework の略で、送信ドメイン認証の技術の一つです。

詳細はWikipediaでご確認ください。

http://ja.wikipedia.org/wiki/Sender_Policy_Framework

簡単に言えば、SPFを設定することによって、正規のDNSサーバーが、指定したIPアドレスから送信されたメールで、差出人アドレスを詐称していない(なりすましメール対策をしている)という証明が出来ます。

これはもう一つのドメインキーズと呼ばれる対策よりも、設定が簡単で、すぐに導入できます。
取りあえずこれだけでもスパム判定されることが減った事例も多いので、おすすめの対策です。

DNSのマスターのレコードファイルに以下のテキストを追加します。追加する場所はMXの下あたりで、どこでもいいと思います。

mail.設定するドメイン名.  IN  TXT  ”v=spf1 +ip4:192.168.1.1 -all”
ドメイン名.  IN  TXT  “v=spf1 +ip4:192.168.1.1 -all”

これで、192.168.1.1(=メールサーバーのIPアドレス)以外からは、メールを送りませんと宣言したことになります。
この設定をした後、DNSの変更が行き渡る数時間後に、Yahoo!メール等に自社かメールを送っていただくと、冒頭の挿入画像の「PASS」がでていると思います。ちなみに対策前は「none」と表示されています。

Gumblar対策

最近、大手サイトが感染したことで話題のガンブラーウィルスについてお問い合わせが増えてきましたので、まとめて報告いたします。

■主な特徴
Gumblarウイルスは、感染しているサイト(悪意あるスクリプトが埋め込まれている)を見に来たパソコンが知らない間に知らないサイトに誘導され、知らない間にウイルスに感染してしまいます。具体的には、iframeやJavascriptなどを使用して、別サイトのデータを読み込んでいます。ですので、閲覧者は一見、改竄されたサイトを見ているという意識はないはずです。
トレンドマイクロ等によると、Gumblarには、改竄されたサイト経由で感染する「TROJ_DROPR.GB」と、TROJ_DROPR.GBが感染先のパソコンに作成する「TSPY_KATES.SMOD」(Gumblarの本体プログラム)という2つがあるそうです。TSPY_KATES.SMODは、ユーザーがブラウザを起動して、アクロバットやFLASHなどのファイルを表示する時に起動されます。
このウイルスが起動すると、パソコン内にあるIDやパスワードが外部サーバーに送信されて、悪意ある者に盗まれることでホームページの改竄などが行われる仕組みとなっています。
FTPのログインパスワード等が盗まれた場合はそこに不正にログインされ、webサイトに不正なスクリプトが埋め込まれたり、webサイトの内容が改竄されるといった被害を受けます。
ここからは当社の見解です。
なぜ、FTPのIDやパスワードか盗まれるのかといえば、FTPのソフトの中で、これらのパスワードが暗号化されずに保存されているからだと思います。
FTPをしたことがある方ならご存じだと思いますが、FTP設定の中で、パスワード部分は、*****(アスタリスク)で保存されており、一見、暗号化されているような気がします。しかし、これは間違いで単純にアスタリスクで隠しているだけで実際は平文の状態で保存されます。たとえば、アスタリスクで隠してある文字を忘れてしまった場合、見えるようにする機能があるユーティリティも存在しています。
 ちなみに平文で通信しているという点は、サイトのログインIDやパスワードを入れるときも同じで、SSL通信でない限り、アスタリスクで隠されていても、その筋のプロが盗み見を本気でやろうと思えば見える状態です。
同様にFTP通信も、平文ですので、FTP通信を盗み見してネット上に流れるIDとPASSを盗むことが可能です。
おそらく今後は、こうしたことのないSFTPのニーズが高まることが予想されます。

■感染したパソコンの症例
・CPU、メモリ使用率が上昇、動作が遅くなる
・Microsoft Updateやアンチウイルスベンダーへのサイトにアクセスできなくなる
・cmd.exe、regedit.exeが起動できなくなる
・explorer.exeがときどき異常終了
・ウイルス対策ソフトのパターンファイルが更新不能になる

■悪用される主な脆弱性
・Adobe Acrobat およびAdobe Reader の脆弱性
・Adobe Flash Player の脆弱性
・Microsoft Office の脆弱性

■対策・予防方法
【全てのパソコン】
・Adobe ReaderやFlash Playerなどを含むブラウザのプラグインの最新パッチを適用
・記述した覚えの無いJavaScriptやiframeタグ等がないかチェック
・使用しているパソコンが感染していないかチェック
(ウイルスチェックソフトでパソコン全体を「完全」スキャン)

【FTPを設定しているサイト管理者】
・webサイトを管理するパソコン(FTPのIDやパスワード等の情報を保持するパソコン)を限定する。
・FTP接続にIPアドレスによる制限をかける。hosts.allowに書き込みます。

■万が一感染しているPCが見つかった場合
・FTPやカードデータなどのIDやパスワード(個人情報)をそのパソコンで扱っている場合、
 パスワードの変更や情報自体を削除。
・上記対策・予防方法を行う

■サーバーでの対策について
ガンブラーは、Windowsが対象です。
弊社サーバーで使用しているOSはLinuxで、随時弊社にて最新のセキュリティパッチをあてて脆弱箇所に対する処置を行っておりますため、 感染の報告はありません。

■ガンブラーを含むマルウェア全般におけるサイト改竄などの対策
ガンブラー(Gumblar)ウイルスなどのマルウェアは上記のような特徴がありますので、
「FTPサーバーに知らないパソコンからのアクセスが出来ないようにする」ことで
サイトの改竄を防ぐことが出来ます。
専用サーバーでは、設定したIPアドレス以外からのFTP接続を拒否することで、サイト改竄を防ぐことが可能です。






スパムアサシンのバグ(2010年1月1日発覚)

2010年1月1日以降に配信されたメールで、年号の繰り上がり(09年→10年)に関して、スパムアサシンで、下記のような判定が出るバグが見つかったようです。

FH_DATE_PAST_20XX The date is grossly in the future.

当社では、スコア3.4と加算されています。このスコア加算により、これまでスパムでなかったメールがスパムとして判定されることがありえます。
このバグに対しては、すでにルールのアップデートも行われています。

https://issues.apache.org/SpamAssassin/show_bug.cgi?id=6269

また、新しいファイルを直接みたい方は、下記をご参照ください。

http://svn.apache.org/viewvc?view=revision&revision=895073

Diff(変更点)は下記です。

http://svn.apache.org/viewvc?view=revision&revision=895073

また、ともかく無条件にアップデートしたいという場合は、root権限でサーバーにログインして、下記を実行してください。

/usr/bin/sa-update

該当箇所にファイルが見つからない場合は、
find / -name sa-update
等で検索してみてください。
適用後、メールのヘッダに

FH_DATE_PAST_20XX

の記述がなくなればOKです。