アーカイブ

‘Linux’ カテゴリーのアーカイブ

BlueQuartz → BlueOnyx

BlueQuartzってどうなったんだろ?とふと思い出して調べたらなくなっちゃったみたい?、代わりにBlueOnyxってのが引き継いでいる様子。(たぶん)
CentOS5ベースで動作するようなので、いろいろと便利そう・・・かも
VMwareにいれてみたところ、メールサーバはSendmail、MySQLは使えるがPostgreSQLは無さそう。逆にTomcatは使えるみたい。
ディスクはLVMで切られる仕様(tarからインストールの方法を見ると、/homeが分かれてればいいのかな)

OpenVZ,Virtuozzoのテンプレートもあるみたいですが、こちらは有償なのかな、昔BlueQuartzをOpenVZ上のCentOSで動かそうとしたとき、CCEだったかが起動できなくて挫折したような覚えがあるけど、どうだったかなぁ。

BlueOnyx

関係ないけど、昔、ブラックオニキスってゲームあったね(^^)

カテゴリー: Linux タグ:

Weave Server をたててみる

Firefoxの設定同期機能のAdd-OnのWeave Syncのサーバを自前で立てみるメモ。
使ってみようと思った動機は、会社と家でBookmarkが共有できたらいいかと思い使おうと思って調べると、Weave SyncはMozillaのサーバにデータが置かれるので、Mozillaのサーバも信頼してないわけではないのだけど、やっぱり外に出すのはちょっと。。と思ったので。ちなみにパスワードはRoboformに入れてるので、Firefoxには登録してない状態なのでBookMarkだけ同期できればいい。

んで、
Labs/Weave/Sync/1.0/Setup(mozilla wiki)が本物?なのかもしれないですが、ここにも書いてありますが、Weave Minimal Serverがオススメらしいのでこちらを使用してみる。

このページの中の「tarball is here. 」のところからtarballを落としてきて展開。READMEを読みながら進めます。

◆必要なパッケージ
PHPが5.2.0以下(たとえばCentOS5とか)だとPECLのJSONのパッケージが入ってないとダメだったかも。
個人的には、RPM派なので、パッケージでいれました。(epelにパッケージあるはず)

yum install php-pecl-json
か、
yum install php-pear 
pecl install json
かなたぶん、

◆/weaveにtarballを展開したフォルダをAlias 設定する。

Alias /weave /var/www/html/hoge/weave/index.php

#サイトは、SSLにするなり、クライアント証明書認証にするなりセキュリティはあったほうが良し

◆Alias設定したアドレスにアクセスする

https://ServerAddress/weave/1.0/blah/info/collection

blah ってユーザでパスワードはなんでもいいので適当にいれてログイン失敗すると、「weave_db」のSQLiteのファイルができる。
(tarball展開したフォルダはApacheで書き込みできないとダメかも)

◆ユーザの追加
「create_user」スクリプトを動かしてユーザ作成します。

cd /var/www/html/hoge/weave/
/usr/bin/php create_user
(c)reate, (d)elete or change (p)assword: c
Please enter username: test
Please enter password: ****
test created

◆Firefoxから接続
Weave Sync アドオンの設定から「Use a custom server」を選択して、「Server URL」「User Name」「Password」を入力して接続します。

<参考URL>
Mozilla、「Firefox」の設定を複数PCで同期する拡張機能「Weave Sync」v1.0を公開(窓の杜)
FireFox Weaveの自前サーバーを立てる(道具眼日誌:古田-私的記録)
Weave Minimal Server(Weave Minimal Server)

カテゴリー: Linux, Mozilla タグ:

vsftpd で FTPS (FTP Over SSL/TLS)

巷ではガンブラー(Gumblar)がはやっているようなので、FTPサーバのセキュリティを考えてみる。
まぁ、FTPSにしろ、SFTP,SCPにしても、クライアントソフトからID,パスワードを抜かれる場合もあるので、あんまり意味はないような気もするけど、FTPって脆弱だよねと考える機会になるといいかな?
で、

◆FTPS
今回のvsftpdでもそうだけど、オレオレ証明書でいいのであれば実装はいたって簡単。
しかし、重大な課題として、一般的な環境のクライアントがNAPT(普通のNATでも同じか)環境の場合、(暗号化されない通常の)FTPは対応してますが、パケットが暗号化されたFTPSになると、データポートのIPや番号のやりとりの際にNAPTルータが判断できないので、変換がうまくできず繋がらない状態になることがあげられます。(ログインだけできて、ファイル一覧が出ないとかファイル転送ができない)、なので、個人的な感じでは、あまり使われることはないのかなぁ。または、ルータでFTPSにどうにかして対応できるのがでてくるのかなぁ。

◆SFTP,SCP
SSHが基本なので、シェルでログインできないようにとか、ファイル転送のみにするとか、chrootしたいとか面倒そう。
rsshを使用してファイル転送だけにしたり、chrootできるようなのですが、chrootのやり方がスマートでないというか、昔のFTPサーバでやってたような面倒なやり方なので。。現状は×かな。
今後、そいうのを作ってくれるいい人に期待です(笑)

◆クライアント
WinSCPFileZillaあたりがどちらも対応しててフリーなので便利かな。(個人的にはWinSCPを使用)

◆vsftpdでFTPSの対応
サーバ証明書作成

cd /etc/pki/tls/certs
make vsftpd.pem

/etc/vsftpd/vsftpd.conf に以下を追記

#FTPS
ssl_enable=YES
force_local_data_ssl=NO
force_local_logins_ssl=NO
rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem

「force_local_logins_ssl」と「force_local_data_ssl」は、SSL通信を必須にするかどうか、暗号化しないFTPでも繋ぐ場合は、NOです。

<追記>
vsftpd 2.1.0以上(CentOS6など)の場合は、以下の設定も追加が必要

require_ssl_reuse=NO

</追記>

サーバ証明書の有効期限が1年(365日)なので延ばしておきたい場合
/etc/pki/tls/certs/Makefile

#/usr/bin/openssl req $(UTF8) -newkey rsa:1024 -keyout $$PEM1 -nodes -x509 -days 365 -out $$PEM2 -set_serial $(SERIAL) ; \
/usr/bin/openssl req $(UTF8) -newkey rsa:1024 -keyout $$PEM1 -nodes -x509 -days 3650 -out $$PEM2 -set_serial $(SERIAL) ; \
カテゴリー: Linux タグ:

CentOS5 で iSCSI Target (その2)

昔、CentOS5 で iSCSI Tagetで、iSCSI Enterprise Target(IET)をインストールしてみましたが、そもそも標準のパッケージscsi-target-utils → Linux target framework (tgt)もあるので、今回はそっちを使ってみるの巻。

OpenfilerとかFreeNASとかでもいいのですが、今回は、サーバ機で、メーカーさんのハード監視ツールとか一応いれておきたかったので、RHELクローンのCentOSで構築。

iSCSIターゲットのインストール

yum install scsi-target-utils

マシン起動時に開始するように設定

chkconfig tgtd on

基本はtgtadmコマンドで操作します。

新しいターゲットを作成します。(lun 0ができる)
tgtadm --lld iscsi --op new --mode target --tid 0 --targetname iqn.2010-01.com.example.iscsi:tgtd
確認
tgtadm --lld iscsi --op show --mode target

LUN 1の作成
tgtadm --lld iscsi --op new --mode logicalunit --tid 0 --lun 1 --backing-store /dev/sda3

アクセスできるイニシエータのアドレスを登録
tgtadm --lld iscsi --op bind --mode=target --tid=0 --initiator-address=ALL
tgtadm --lld iscsi --op bind --mode target --tid 0 --initiator-address 192.168.1.0/24

イニシエータアドレスの削除
tgtadm --lld iscsi --op unbind --mode target --tid 1 --initiator-address 192.168.1.0

上のコマンドは、再起動してしまうと消えるので、マシン起動時に作成する
/etc/tgt/targets.conf

<target iqn.2010-01.com.example.iscsi:tgtd>
        # List of files to export as LUNs
        backing-store /dev/sda3

        # Authentication :
        # if no "incominguser" is specified, it is not used
        #incominguser backup secretpass12

        # Access control :
        # defaults to ALL if no "initiator-address" is specified
        #initiator-address 192.168.1.2
</target>

参考URL
iSCSIを使ってみる@CenOS5.2 (ターゲット) + Windows XP (イニシエータ) (Mazn.net)
DRBD+iSCSI夢の共演(前編)(@IT)

カテゴリー: Linux タグ:

ifcfg-ethx メモ

2009 年 12 月 28 日 コメントはありません

DHCPでIPを取得したけど、resolv.confを書き換えて欲しくなくて調べたのでメモ。
(eth0でIPは固定なんだけど、テスト用にeth1でDHCPを取得したらresolv.confが書き換わってしまって困ったので)

/etc/sysconfig/network-scripts/ifcfg-ethx

PEERDNS=no

その他、ネットワークインタフェースファイルの説明
Red Hat Enterprise Linux 4: リファレンスガイド 章 8章. ネットワークインターフェース

sysconfigの中のファイルの説明

/usr/share/doc/initscripts-*/sysconfig.txt
カテゴリー: Linux タグ:

ファイルの復元(Linux)

2009 年 12 月 24 日 コメントはありません

後輩君からのネタ提供、バックアップ用のシェルを作っててできたと思ってテスト兼開発機で動かしたら、SEさんがテスト運用中だったのに、DBのデータフォルダ以下をサクっと消しちゃったらしい。(ちなみに最近のDBのバックアップも無いらしい)

シェルは確認しなかったけど、たぶん、

cd hoge
rm -r ./
cp -r /hoge2 ./

とかやって、本番のパスにしたら、hoge ディレクトリがなくてcd できてないのに、rmで消えちゃったんだろっ(-д☆)キラッ
自分もやったことあるからすぐわかったわ、わっはっは!
で、なんとかならんけ?とかって話で、消したものはムリでない?と言ってたのですが、復旧できてしまったので、メモ

ファイルを消してしまっても、「プロセスが終了していない場合」は/proc内にファイルディスクリプタの情報があるんで、そこからcpとかで取り出せば復旧可能らしい。

lsof | grep deleted | grep hoge
user01     1683  user01   10u      REG        8,1 4194312192     835691 /hoge.dat (deleted)
user01     1683  user01   11u      REG        8,1  786440192     835652 /hoge.dat2 (deleted)
のとき、
cp /proc/1683/fd/10 /tmp/hoge.dat
cp /proc/1683/fd/11 /tmp/hoge.dat2

のような感じ
cp /proc/プロセスID/fd/ファイル記述子 復元先

今回は、あわててサービスや、サーバの再起動をしなかったので、ファイルが残っていました。ファイル復旧後もデータベース的には壊れている状態なので、今度はDB屋さんが出てきてなんかコマンドいくつかいれて起動後、ダンプとれたのだけど、結局おかしくて、最終的にはシステムのバックアップからDBを戻して古いデータになったところに、なんとかとれたダンプで復旧できたみたいです。

<参考URL>
削除したファイルをlsofで復元する(DevIT)

カテゴリー: Linux タグ:

mod_fcgid(CentOS5 x86_64)

2009 年 11 月 25 日 コメントはありません

CentOSでx86_64版を入れて、前の記事のmod_fcgi & mod_fastcgi をいれてみる(CentOS5)のとおりmod_fcgidを入れようとおもったら、うまくいかなくて、よくみたらApacheのサブプロジェクトなってるみたいなので調べなおしたでござるの巻
mod_fcgid(Apache HTTP SERVER PROJECT)
必要なパッケージ

yum install perl-FCGI httpd-devel

コンパイル、インストール

mod_fcgid-2.3.4.tar.gz
cd mod_fcgid-2.3.4
./configure.apxs
make
make install

インストールされる場所

/usr/lib64/httpd/modules/mod_fcgid.so
/usr/lib/httpd/modules/mod_fcgid.so

設定ファイル
/etc/init.d/http.d/fcgid.conf

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
SocketPath /tmp/fcgid_sock/
IPCCommTimeout 120
AddHandler fcgid-script .fcgi
</IfModule>

◆MTの設定
mt-config.cgi

##### FastCGI #####
AdminScript     mt.fcgi
CommentScript   mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript    mt-search.fcgi
XMLRPCScript    mt-xmlrpc.fcgi
mv mt.cgi mt.fcgi
mv mt-comments.cgi mt-comments.fcgi
mv mt-tb.cgi mt-tb.fcgi
mv mt-search.cgi mt-search.fcgi
mv mt-xmlrpc.cgi mt-xmlrpc.fcgi

開発環境でコンパイル、インストールして、本番環境は、「mod_fcgid.so」だけもってきて配置しました。

カテゴリー: Linux タグ:

LogWatch がコケた

2009 年 11 月 12 日 コメントはありません

今朝のLogwatchがコケてCronさんからメールがきてたので調査

/etc/cron.daily/0logwatch:
postdrop: warning: uid=0: Illegal seek
sendmail: fatal: root(0): queue file write error

LogWatchで作成されたレポートの内容がデカすぎてPostfixではじいていました。ログの増えた原因はSMTPのログでスパマーのエラーが多かったみたいですね。
postfixのデフォルト値は10Mなので適当に増やしておく。

postconf -d | grep message_size_limit
message_size_limit = 10240000

50Mにしてみる。
/etc/postfix/main.cf

message_size_limit = 51200000
カテゴリー: Linux タグ:

LPIC3 対策本

2009 年 10 月 30 日 コメントはありません

あずき本も出るようです。

Linux教科書 LPICレベル3

著:中島 能和 , 他
参考価格:¥4,410
徹底攻略LPI問題集 Level3 [301/302]対応 (ITプロ/ITエンジニアのための徹底攻略)

編集:ソキウス・ジャパン
価格:¥3,360
LPI認定試験LPICレベル3(301/302)「最短合格」テキスト&問題集

著:アイダックLinuxチーム
価格:¥3,885
カテゴリー: Linux タグ:

CentOS5.4リリース

2009 年 10 月 23 日 コメントはありません

CentOS5.4がリリースされました、今回からKVMが含まれました。VT使えて遊べるマシンはあまってないので、試すのは難しですが、Xenは今後はポイッてことでしょうか、RHEL5のサポート期間は面倒みてもらえるでしょうけど(^^)
いまは、i386しか使ってないけど、そろそろx86_64にしてみようかしらん。
アナウンス
リリースノート(日本語)

カテゴリー: Linux タグ:

vsftpdで.htaccessが表示されない件

2009 年 10 月 17 日 コメントはありません

vsftpdでFTPでログインすると.htaccessとか.htpasswdとか表示されない件のメモ
クライアントはFFFTPです。
◆vsftpdで対処
/etc/vsftpd/vsftpd.conf

force_dot_files=YES

あとは、vsftpd再起動
service vsftpd restart
◆FFFTPで対処
設定変更->高度タブ->LISTコマンド
LISTコマンドでファイル一覧を取得のチェックを外す
あとは、
表示->.で始まるファイルを表示(D) にチェックがついていること
下のFFFTP Q&A集にあるように、Ver.1.92a移行からこの設定が変更になりました。自分のFFFTPはもっと前のから使っていてバージョンアップしてきたのと、新規でホストを登録する時に既存設定のをコピーし使っていたのでこの部分の変更に気がついてませんでした。あと、1.92a移行は、PASVも標準でONになっています。
<参考>
ドット(“.”)で始まるファイルが表示されません。(FFFTP Q&A集)

カテゴリー: Linux タグ:

ベーシック認証の途中解除(.htaccess)

Apacheでベーシック認証をかけてるときに、途中のフォルダから認証を解除したい場合のメモ
解除したいフォルダに.htaccessを設置して

Satisfy Any

Satisfy は Anyを使えば、OR条件のように、アクセス制御で、IP制限で認証なし、それ以外のIPは認証有とかにも使えそう。
<マニュアルの例>

Require valid-user
Order allow,deny
Allow from 192.168.1
Satisfy Any

Satisfy ディレクティブ(Apache コア機能)

カテゴリー: Linux タグ:

大量ファイルのコピー

サーバの移行案件がありまして、大量のファイルをもっていかないといけないのですが、ハマってますorz
・ファイル数は71万ファイル!
・容量にすると80GB
・オンラインで複製して、最後の移行する際に再度同期をとりたい
・サーバはRHEL3
・バックアップはしたことがない(爆)
ってことで、rsyncをだろうと思いきや、I/O性能がダメなのかrsyncすると通常運用がすんげ重くなってしまい影響がでてしまうorz
んで、rsyncは3系になるとすこし早いらしいと見つけたので、rpmでいれてあるのは「rsync-2.5.6」なので、ソースからとってきて3.0.6をコンパイルして試しにつかってみる
・・あんましかわらず(T_T)

/home/hoge/rsync --rsync-path="nice -n19 /home/hoge/rsync" -av -e ssh --delete svname:/hogehoge/  ./

今回は、RHEL3なので、Kernel2.4なんですが、Kernel2.6からだとioniceってコマンドがあるらしい。

rsync --rsync-path="ionice -c2 -n7 nice -n19 rsync" -av -e ssh --delete svname:/hogehoge/  ./

あとは、dump?

ssh svname  /sbin/dump 0uf - /hogehoge | restore rvf -

これもあんまりかわらず、残り50時間とかでた(^^;
他には、dd?

ssh svname  dd if=/dev/sda3 bs=256M | dd of=/dev/sdb1

bsパラメタでだいぶかわりそうだけど、どのくらいがいいんだろう。
ddだと途中経過がわからないのですが、他端末からkillでUSR1をなげてやると読み書きしたブロックがでるみたいです。しらんかった(^^)

kill -USR1 ddのPID

って、どれもあんまりかわらず、そもそもサーバの問題なのかなぁ。
Xeon 2.4G x 2 、メモリ2Gで普段はCPU全然つかってないし、I/Oも無いのだけど、DISKはAdaptec 2010SでRAID5でした。
あとは、NFSでマウントさせてコピーとかかなぁ・・

カテゴリー: Linux タグ:

LPICレベル3合格(Coreだけど(笑))

LPI 301 Core Examを合格しました(^^)/
有意性の期限(再認定ポリシー)の変更について(LPI-Japan)にもある通り前回の取得から5年たってしまうと、ACTIVEでなくなってしまい、さらに再取得するには、今までの試験をすべて受験しなおしという、振り出しに戻る状態なので。。。ということは分かっていたのですが、301試験はほとんどLDAPなので、あんまし使わないし、oidってSNMPもそうだけど、なんか苦手なんだよなーと、現実逃避していたのですが、そろそろ期限(2009/10)がきますよとメールがたびたび送られてくるようになったので、重い腰を上げて勉強して受けてきました。
で、結果は、610点でした、500点がボーダーなのでギリギリでもないけど、まぁそんなもんって感じ(^^;、下の本2冊で勉強してったけど、載ってないような問題もいくつかあったりと、合格するにはなんとかなりそうだけど、ちゃんと実機で勉強していったほうがいいですよ(笑)→環境作って試そうと思ったけど面倒になって本だけで勉強していきました(–;
302,303は、また期限の来る5年以内に受けよう(笑)

徹底攻略LPI問題集 Level3 [301/302]対応 (ITプロ/ITエンジニアのための徹底攻略)

編集:ソキウス・ジャパン
価格:\3,360
LPI認定試験LPICレベル3(301/302)「最短合格」テキスト&問題集

著:アイダックLinuxチーム
価格:\3,885
カテゴリー: Linux タグ:

mod_fcgi & mod_fastcgi をいれてみる(CentOS5)

<追記>
新しく書き直しました。
mod_fcgid(CentOS5 x86_64)
</追記>
MovableTypeが激重なのでfcgiなどで改善してみるテスト。CentOSで動くmod_fcgiやmod_fastcgiは無いようなのでポリシーに反するんだけどソースからコンパイルしてインストールする。
必要なパッケージ

yum install perl-FCGI httpd-devel

他、開発関係も必要かな。
◆mod_fcgi
http://fastcgi.coremail.cn/
http://sourceforge.net/scm/?type=cvs&group_id=174879

tar xzvf mod_fcgid.2.2.gz
cd mod_fcgid.2.2
make  top_dir=/usr/lib/httpd
make  top_dir=/usr/lib/httpd install

/etc/init.d/http.d/fastcgi.conf

LoadModule fcgid_module modules/mod_fcgid.so
<IfModule mod_fcgid.c>
SocketPath /tmp/fcgid_sock/
IPCCommTimeout 120
AddHandler fcgid-script .fcgi
</IfModule>

◆mod_fastcgi
http://www.fastcgi.com/drupal/
http://www.fastcgi.com/dist/(ダウンロード)

tar xvzf mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make top_dir=/usr/lib/httpd
sudo make top_dir=/usr/lib/httpd install
mkdir /tmp/fastcgi
mkdir /tmp/fastcgi/dynamic
chmod 777 /tmp/fastcgi
chmod 777 /tmp/fastcgi/dynamic

/etc/init.d/http.d/fastcgi.conf

LoadModule fastcgi_module modules/mod_fastcgi.so
<IfModule mod_fastcgi.c>
FastCgiIpcDir /tmp/fastcgi
AddHandler fastcgi-script .fcgi
</IfModule>

◆MTの設定
mt-config.cgi

##### FastCGI #####
AdminScript     mt.fcgi
CommentScript   mt-comments.fcgi
TrackbackScript mt-tb.fcgi
SearchScript    mt-search.fcgi
XMLRPCScript    mt-xmlrpc.fcgi
mv mt.cgi mt.fcgi
mv mt-comments.cgi mt-comments.fcgi
mv mt-tb.cgi mt-tb.fcgi
mv mt-search.cgi mt-search.fcgi
mv mt-xmlrpc.cgi mt-xmlrpc.fcgi

実際には、mod_fcgiを使用しました、あと本番環境は開発系がインストールされていないので、「/usr/lib/httpd/modules/」から、mod_fcgiやmod_fastcgiだけコピーしてきて使用してます。あとは、「mt.cgi」だけfcgi対応して、他のCGIはそのまま使用することにしました。
効果の程は、かなり早くなったように感じます。

カテゴリー: Linux タグ:

Windowsでrsync

WindowsのrsyncでLinuxへデータをバックアップしておこう。
cwrsyncってのがあるのでこれを使用します。
http://www.itefix.no/i2/cwrsync
要は、Cygwinからrsync.exeを動作するのに必要なファイルを詰め合わせたセットです。
ダウンロードはこちらから
http://sourceforge.net/project/showfiles.php?group_id=69227&package_id=68081(SOURCE FORGE.NET)
今回は、cwRsync_3.0.1_Installer.zip を使用します。
Linuxとかのrsyncを使えればオプションも同じなので難しくはないと思いますが、ノーパスで運用するときは、ssh-keygen.exeとかで作成したりとか、その辺は、Linuxと一緒なので適当に(^^;
一点、ハマったところ、パッケージに添付の「cwrsync.cmd」ってのがあってそれを使えばよかったのですが、rsync.exe ~ って感じでコマンドラインでテストしてたら、相手のLinuxのファイルのパーミッションがちゃんとつかなくて

d---------  2 user01 user01      4096 Apr 17 17:47 testdir
とか
----------  2 user01 user01      4096 Apr 17 17:47 test.txt

こんな感じに。。。
結構わからなくて調べたんですが、「cwrsync.cmd」の中を見てて、

SET CYGWIN=nontsec

って環境変数がないとイカンみたい。Cygwinはあんまし使ったことないので知らんかった。
なので、「cwrsync.cmd」の最終行にrysync.exeを書いてあげればOKでした。

rsync.exe -arvz --delete -e "ssh -i /cygdrive/c/cwRsync/test.key -l user01" "/cygdrive/d/rsyncdir" linuxsv:~/rsyncdir/

あと、添付の「chmod.exe」が「cygintl-8.dll」が無いって動作しないのだが、これは使わないのでどうでもいいのかな?
http://ftp.jaist.ac.jp/pub/cygwin/release/gettext/libintl8/
とかから持ってこれば一応動きます。

カテゴリー: Linux, Windows タグ:

CentOS の Apache でクライアント証明書認証(修正版)

<2010/02/13追記>
MTからWordpressにインポートした時に失敗していたようで、記事が途中できれてました(^^;
確認したい内容があって自分で調べてて気が付きました。修正しましたので最後まで見れるようになりました。

CentOSのApacheでクライアント証明書認証をしてみる。CentOS5の場合、ちょっと手順を工夫しないとIEでつながらなかったので一部修正しました。(OpenSSLのバージョンの関係だと思うけど。)
IEでクライアント証明書をインポートしてつなぐと、
「証明のパスの証明機関は証明書を発行する権限がないか、この証明書をエンドエンティティ証明書として使うないとができないため、この証明書は無効です。」
となってしまう件の対応です。
openssl.cnfで、「basicConstraints=CA:true」でCAを作成していないと出る様子。

作業は「/var/www/ssl」で行い、独自認証局のフォルダは「/var/www/ssl/hogeCA」に作ります。また証明書の期限は10年(3650日)にしてあります。

◆作業準備
作業フォルダ作成

mkdir -p  /var/www/ssl

破棄証明書用フォルダ作成

mkdir -p  /var/www/ssl/ssl.crl
touch /var/www/ssl.crl/cert.crl

opensslの設定
/etc/pki/tls/openssl.cnf (CentOS5)
/usr/share/ssl/openssl.cnf (CentOS4)

> dir             = ./demoCA              # Where everything is kept
< dir             = ./hogeCA              # Where everything is kept

証明書のポリシーを変えたい場合(デフォルトはcountryName,stateOrProvinceName,organizationNameがCAと一致しないとだめなのでCA組織外に発行する場合に困る)

policy          = policy_match

policy_matchを直下に定義してある「policy_anything 」に変えるとか、「policy_match」自体を変更するとか(下の例)
変更前

[ policy_match ]
countryName             = match
stateOrProvinceName     = match
organizationName        = match
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

変更後

[ policy_match ]
countryName             = supplied
stateOrProvinceName     = supplied
organizationName        = supplied
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional

ちなみに

match    CAと同じじゃないとダメ
supplied 入力必須
optional あってもなくてもいい

CSRを頻繁に作成してデフォルト値を決めておきたいときは以下の項目を変更しておくと入力が楽になります。

countryName_default             = JP
stateOrProvinceName_default     = 
localityName_default            = 
0.organizationName_default      = 

CA作成スクリプトコピー

cp -p /etc/pki/tls/misc/CA /var/www/ssl/ (CentOS5)
cp -p /usr/share/ssl/misc/CA /var/www/ssl/ (CentOS4)

/var/www/ssl/CA

#DAYS="-days 365"       # 1 year
DAYS="-days 3650"       # 10 year
#CADAYS="-days 1095"    # 3 years
CADAYS="-days 3650"     # 10 years
#CATOP=./demoCA
CATOP=/var/www/ssl/hogeCA

◆認証局CAの作成
/etc/pki/tls/openssl.cnf (CentOS5)

[ usr_cert ]
#MakeCA
basicConstraints=CA:true
nsCertType = sslCA, emailCA
keyUsage = cRLSign, KeyCertSign
cd /var/www/ssl
./CA -newca
CA certificate filename (or enter to create)
	止まるので改行をいれる


Making CA certificate ...
Generating a 1024 bit RSA private key
.............++++++
.......++++++
writing new private key to '/var/www/ssl/hogeCA/private/./cakey.pem'
Enter PEM pass phrase: CAの秘密鍵のパスフレーズ
Verifying - Enter PEM pass phrase: CAの秘密鍵のパスフレーズ確認
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: 国
State or Province Name (full name) [Some-State]: 県
Locality Name (eg, city) []: 市町村名
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 組織名
Organizational Unit Name (eg, section) []: 部署名
Common Name (eg, YOUR name) []:サーバ名(FQDN名)
Email Address []: メールアドレス

CAの秘密鍵のパスフレーズ除去

openssl rsa -in hogeCA/private/cakey.pem -out hogeCA/private/cakey.pem

破棄証明書の管理番号ファイルを作成(CentOS5で破棄証明書を使用する際必要)

echo '00' > hogeCA/crlnumber

◆apacheのサーバで使うサーバ証明書を作成
/etc/pki/tls/openssl.cnf (CentOS5)

[ usr_cert ]
#MakeCA
#basicConstraints=CA:true
#nsCertType = sslCA, emailCA
#keyUsage = cRLSign, KeyCertSign
#Server
basicConstraints = CA:FALSE
nsCertType = server

秘密鍵の作成

openssl genrsa  -des3 -out /var/www/ssl/server.key 1024

秘密鍵のパスフレーズの除去

openssl rsa -in /var/www/ssl/server.key -out /var/www/ssl/server.key

上で付けたパスフレーズを聞いてくるので入力する

CSRの作成

openssl req -new -days 3650 -key /var/www/ssl/server.key -out /var/www/ssl/server.csr
Country Name (2 letter code) [AU]: 国
State or Province Name (full name) [Some-State]: 都道府県
Locality Name (eg, city) []: 市町村名
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 組織名
Organizational Unit Name (eg, section) []: 部署名
Common Name (eg, YOUR name) []: サーバ名(FQDN名)
Email Address []: メールアドレス

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 適当にパスワード
An optional company name []: 適当にパスワード確認

CSRに作成した認証局で署名してサーバ証明書を作成

cd /var/www/ssl/
openssl ca -days 3650 -in server.csr -keyfile hogeCA/private/cakey.pem  \
        -cert hogeCA/cacert.pem -out server.crt

◆クライアント側の証明書を作成
/etc/pki/tls/openssl.cnf (CentOS5)

[ usr_cert ]
#MakeCA
#basicConstraints=CA:true
#nsCertType = sslCA, emailCA
#keyUsage = cRLSign, KeyCertSign
#Server
#basicConstraints = CA:FALSE
#nsCertType = server
#Client
basicConstraints = CA:FALSE
nsCertType = client, email

クライアント用秘密鍵作成

cd /var/www/ssl
openssl genrsa -des3 -out client.key 1024

秘密鍵のパスフレーズの除去

openssl rsa -in client.key -out client.key

上で付けたパスフレーズを聞いてくるので入力する

クライアント証明書のCSRを作成

openssl req -new -days 3650 -key client.key -out client.csr
Country Name (2 letter code) [AU]: 国
State or Province Name (full name) [Some-State]: 都道府県
Locality Name (eg, city) []: 市町村
Organization Name (eg, company) [Internet Widgits Pty Ltd]: 組織名
Organizational Unit Name (eg, section) []: 部署名
Common Name (eg, YOUR name) []: サーバ名(FQDN名)
Email Address []: メールアドレス

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []: 空欄でOK
An optional company name []: 空欄でOK

クライアント署名書にCAで署名する

openssl ca  -days 3650 -in client.csr -out client.crt

クライアント証明書をPEM形式からPKCS12形式形式へ変換

openssl pkcs12 -export -in client.crt              \
                       -inkey client.key           \
                       -certfile hogeCA/cacert.pem \
                       -out client.p12

できあがった「clcert.p12」をクライアントに配布しブラウザにインポートする
InternetExplorerの場合、ファイルをダブルクリックするだけ

◆Apacheの設定
/etc/httpd/conf.d/ssl.conf

DocumentRoot等は適当に。
以下SSLに必要な部分
SSLCertificateFile    /var/www/ssl/server.crt
SSLCertificateKeyFile /var/www/ssl/server.key
SSLCACertificatePath  /var/www/ssl/hogeCA
SSLCACertificateFile  /var/www/ssl/hogeCA/cacert.pem
#SSLCARevocationPath   /var/www/ssl/ssl.crl           ←破棄証明書を使用する場合(どちらか指定)
#SSLCARevocationFile   /var/www/ssl/ssl.crl/cert.crl  ←破棄証明書を使用する場合(どちらか指定)
SSLVerifyClient require
SSLVerifyDepth 1

◆その他
発行したクライアント証明書を失効させる場合

cd /var/www/ssl
openssl ca -gencrl -revoke client.crt -out ssl.crl/cert.crl

破棄証明書
破棄証明書を使用しているときは定期的に破棄証明書を更新してApacheのリロードを行わないと、破棄証明書の期限が切れてApacheが起動しなくなるので注意。

cd /var/www/ssl
openssl ca -gencrl  -out ssl.crl/cert.crl
/sbin/service httpd restart

CAの証明書ファイルをDER形式(ブラウザにインポートできるように)にエンコード

cd /var/www/ssl/
openssl x509 -inform PEM -outform DER -in hogeCA/cacert.pem -out CAcert.der

クライアント証明書の失効とCRL(apache)

カテゴリー: Linux タグ:

Postfix (Catch-All)

メールの受信テストでどんなメールでも受け付ける設定をしたくて調べたのでメモ、要はUserUnknown返さずにCatch-Allするアカウントを作成する方法。
/etc/postfix/main.cf

local_recipient_maps =
luser_relay = catchall
catchall は 受信したいアカウント名

「local_recipient_maps」で、ローカルユーザのリストを空にして、「luser_relay」に設定したアドレスへ配送先がなかったメールを転送する。
http://www.postfix-jp.info/trans-2.2/jhtml/postconf.5.html#luser_relay

カテゴリー: Linux タグ:

CentOS5.3 リリース

5.3になりました。大幅な変更はなさそうですが、アップデートの際は、x86はglibcを上げてから、x86_64はPerl.i386を削除してからじゃないと失敗するかも、(らしい)
[CentOS-announce] Release for CentOS-5.3 i386 and x86_64
http://wiki.centos.org/Manuals/ReleaseNotes/CentOS5.3/Japanese
<追記>
って、げーーーーー、OpenVZ内のCentOS5.2を5.3にしたらrpm,yumが使えなくなっちった、ヤバイorz

#yum update
Loaded plugins: fastestmirror
エラー: dbpath が設定されていません
エラー: /%{_dbpath} にある Package データベースをオープンできません。
Traceback (most recent call last):
File "/usr/bin/yum", line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 229, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 84, in main
base.getOptionsConfig(args)
File "/usr/share/yum-cli/cli.py", line 184, in getOptionsConfig
enabled_plugins=self.optparser._splitArg(opts.enableplugins))
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 191, in _getConfig
self._conf = config.readMainConfig(startupconf)
File "/usr/lib/python2.4/site-packages/yum/config.py", line 754, in readMainConfig
yumvars['releasever'] = _getsysver(startupconf.installroot, startupconf.distroverpkg)
File "/usr/lib/python2.4/site-packages/yum/config.py", line 824, in _getsysver
idx = ts.dbMatch('provides', distroverpkg)
TypeError: rpmdb open failed

/var/lib/rpm/ に __db.* も無いし問題なさそう。rpm –rebuilddbも –initdbも返事なし、そもそもrpm -qa も何も無しで終わっちゃうよ。
ホストがCentOS5.2上のOpenVZだからか???
とりあえず、rpmが上がるとrpm-4.4.2-48.el5 → rpm-4.4.2.3-9.el5 だめのようなことまでは確認。

=============================================================================
Package                 Arch       Version          Repository        Size
=============================================================================
Updating:
popt                    i386       1.10.2.3-9.el5   base               73 k
rpm                     i386       4.4.2.3-9.el5    base              1.2 M
rpm-build               i386       4.4.2.3-9.el5    base              303 k
rpm-libs                i386       4.4.2.3-9.el5    base              933 k
rpm-python              i386       4.4.2.3-9.el5    base               57 k

<追記2>
おぉ、RPMの件、なおったぜーーー(^^)/
udev関係の問題でした。こちらから。
OpenVZ (CentOS5 udev まとめ)

カテゴリー: Linux タグ:

パーティション操作(GParted)

さっそくAspireOneネタですが、購入すると隠しでリカバリ用領域はありますが、Cドライブ一本の構成です、CDROMなどはついてないので、USBでBootしてパーティションを切りなおすしかないようです。ということで、USBブートするGPartedを使ってみます。
Gnome Partition EditorのDownloadsの
Browse Stable releases of GParted Live here から、gparted-live-0.4.3-2.zip をダウンロードしてきて、USBメモリへ解凍します。

utils\win32\makeboot.bat

を実行するとsyslinuxを書き込んでUSBからBoot可能なGpartedができます。
注意点としては、USBメモリにいれて、USBメモリ内の「makeboot.bat」を起動しないと、そのドライブのブートパーティションが壊れます(たぶん)

カテゴリー: Linux タグ: