Archive for the ‘Linux’ Category

BUFFALOより、iSCSI対応HDDということで、TeraStationが出ましたが、ちょうどいい案件があったので、購入してCentOS5と繋いでみた、んで、試したところ1000BASE-TのLANでだいたいカタログ値の65MB/sぐらいでてるみたいでした。

◆Linux(CentOS5)側はiSCSIイニシエータをインストール

yum install iscsi-initiator-utils

◆サービスの開始

service iscsi start
chkconfig iscsi on

◆登録済みのノードを見る

iscsiadm -m node

◆ターゲット名を調べる

iscsiadm -m discovery -t sendtargets -p 192.168.1.1

◆ログイン

iscsiadm -m node -T iqn.2004-08.jp.buffalo:TS-RIGLXXX-XXXXXXXXXXXXXXXX:vol1 -p 192.168.1.1 --login

◆情報確認

iscsiadm -m node -T iqn.2004-08.jp.buffalo:TS-RIGLXXX-XXXXXXXXXXXXXXXX:vol1 -p 192.168.1.1

◆パーティション作成、初期化とか

fdisk /dev/sdb
mkfs.ext3 /dev/sdb1 などなど

◆自動マウント(fstab)

/dev/sdb1 /mnt/iscsi ext3 _netdev 0 0

「_netdev」オプションをつけるとネットワーク起動後マウントされる。

TeraStation IS RAID HDD ラックマウント対応 2TB

メーカー:バッファロー
参考価格:¥178,500
価格:¥154,060
TeraStation IS RAID機能搭載 HDD 2TB

メーカー:バッファロー
参考価格:¥168,000
価格:¥160,924

X-Windowの0番の画面をVNCで接続してみるのにx0vncserverを使ってみる。普段はX-Windowは使わないのだけど、ちょっと必要があったのでやってみた

VNCのパスワードファイル作成

vncpasswd [パスワードファイル]

パスワードファイルを指定しないと「~/.vnc/passwd」とかにできる。

サービスの起動

# x0vncserver -PasswordFile=/root/.vnc/passwd -rfbport=5900 &

-rfbportは待ちうけポートの指定、デフォルト5900

ラック搭載済みのSWにシリアルでつなごうと思ったがWindowsの端末を持ってくのが面倒で、一緒にラックにはいってるLinuxサーバからつないでみようと思ってメモ
CentOS(RHEL)ならminicomが最初からインストールされてそうなのでこれを使ってみる

初期設定を行う

minicom -s
+--------------[設定]--------------+
| ファイル名とパス名               |
| ファイル転送プロトコル           |
| シリアルポート                   |
| モデムとダイヤル                 |
| 画面とキーボード                 |
| "dfl" に設定を保存               |
| 新規に設定を保存                 |
| 終了                             |
| Minicom を終了                   |
+------------------------------------+

シリアルポートを選択

+----------------------------------------------+
| A -    シリアルデバイス   : /dev/modem       |
| B - ロックファイルの位置  : /var/lock        |
| C -   Callin Program      :                  |
| D -  Callout Program      :                  |
| E - 速度/パリティ/ビット  : 38400 8N1        |
| F - ハードウェア流れ制御  : はい             |
| G - ソフトウェア流れ制御  : いいえ           |
|                                              |
|    どの設定を変更しますか?                   |
+----------------------------------------------+

A シリアルデバイス を選んで「/dev/ttyS0」
E 速度/パリティ/ビット を選んで「9600 8N1」
ESCで画面戻って「”dfl” に設定を保存」デフォルト設定に保存

モデムの初期化コマンド(ATコマンド)を入れずに接続「-o」を付けて接続

minicom -o

サブネットとか計算してくれるツールをたまたま発見したのでメモ
◆必要なパッケージ

yum install perl-Net-IP

◆サブネットの計算した表を表示

$ iptab
+----------------------------------------------+
| addrs   bits   pref   class  mask            |
+----------------------------------------------+
|     1      0    /32          255.255.255.255 |
|     2      1    /31          255.255.255.254 |
|     4      2    /30          255.255.255.252 |
|     8      3    /29          255.255.255.248 |
|    16      4    /28          255.255.255.240 |
|    32      5    /27          255.255.255.224 |
|    64      6    /26          255.255.255.192 |
|   128      7    /25          255.255.255.128 |
|   256      8    /24      1C  255.255.255.0   |
|   512      9    /23      2C  255.255.254.0   |
|    1K     10    /22      4C  255.255.252.0   |
|    2K     11    /21      8C  255.255.248.0   |
|    4K     12    /20     16C  255.255.240.0   |
|    8K     13    /19     32C  255.255.224.0   |
|   16K     14    /18     64C  255.255.192.0   |
|   32K     15    /17    128C  255.255.128.0   |
|   64K     16    /16      1B  255.255.0.0     |
|  128K     17    /15      2B  255.254.0.0     |
|  256K     18    /14      4B  255.252.0.0     |
|  512K     19    /13      8B  255.248.0.0     |
|    1M     20    /12     16B  255.240.0.0     |
|    2M     21    /11     32B  255.224.0.0     |
|    4M     22    /10     64B  255.192.0.0     |
|    8M     23     /9    128B  255.128.0.0     |
|   16M     24     /8      1A  255.0.0.0       |
|   32M     25     /7      2A  254.0.0.0       |
|   64M     26     /6      4A  252.0.0.0       |
|  128M     27     /5      8A  248.0.0.0       |
|  256M     28     /4     16A  240.0.0.0       |
|  512M     29     /3     32A  224.0.0.0       |
| 1024M     30     /2     64A  192.0.0.0       |
| 2048M     31     /1    128A  128.0.0.0       |
| 4096M     32     /0    256A  0.0.0.0         |
+----------------------------------------------+

◆IPの範囲をいれるとサブネット等を計算してくれる
IPの範囲でフィルタしたりするとき便利?

$ ipcount 192.168.0.0 - 192.168.10.0
      192.168.0/21        192.168.0.0 - 192.168.7.255   [2048]
      192.168.8/23        192.168.8.0 - 192.168.9.255   [512]
   192.168.10.0/32       192.168.10.0 - 192.168.10.0    [1]

192.168.0.0/21,/23,/32        192.168.0.0 - 192.168.10.0    [2561]

◆サブネットからIPの範囲を計算してくれる

$ ipcount 192.168.0.0/16
        192.168/16        192.168.0.0 - 192.168.255.255 [65536]
$ ipcount 192.16.0.0/12
         192.16/12         192.16.0.0 - 192.31.255.255  [1048576]
$ ipcount 10.0.0.0/8
              10/8           10.0.0.0 - 10.255.255.255  [16777216]

メールサーバ(Postfix)にDKIM(DomainKeys)の対応をしてみる。SPFと違い出ていくメールにも仕掛けが必要、今回はdkim-milterとdk-milterを使用する。また、稼働環境は開発環境がインストールされていないのでRPMを作成してインストールする。

SPF対応はこちら

追記(2008/06/17)
ある先からメールが来ないらしく、以下のようなログが出てたので対応

Jun 17 16:11:11 server postfix/cleanup[32502]: 41B331E789E: milter-reject: END-OF-MESSAGE from hoge.example.com[xxx.xxx.xxx.xxx]: 4.7.1 Service unavailable - try again later; from= to= proto=ESMTP helo=

ダメなメールをみるとDKIM-Signature,DomainKey-Signature,SPF が全部入るパターンなのですが、よくわからず、「dkim-milter-2.4.4 + dk-milter-0.6.0」から「dkim-milter-2.6.0 + dk-milter-1.0.0」へバージョンアップしたところ通過するようになりました。

必要なパッケージのインストール(パッケージ作成用)

yum groupinstall "Development Tools"
yum install sendmail-devel openssl-devel checkinstall

ソースのダウンロード

http://sourceforge.net/projects/dkim-milter/
http://sourceforge.net/projects/dk-milter/ 

バイナリの作成とRPMパッケージの作成

tar xvzf dk-milter-1.0.0.tar.gz
tar xvzf dkim-milter-2.6.0.tar.gz

dkim-milterにdk-milterもリンクさせる
(DomainKeysのチェックもできるようにする)

cd dkim-milter-2.6.0
ln -s ../dk-milter-1.0.0/libdk ./

設定ファイルの作成

cp site.config.m4.dist devtools/Site/site.config.m4

DomainKeysも検査するようにする
define(`bld_VERIFY_DOMAINKEYS', `true')

最終行にでも追加Manページの場所を変更
define(`confMANROOT', `/usr/share/man/man')

コンパイル

sh ./Build

RPMパッケージファイルの作成

checkinstall -R

インストール

rpm -ihv /usr/src/redhat/RPMS/i386/dkim-milter-2.6.0-1.i386.rpm

dkim-milter用ユーザの作成(groupはmailにする)

useradd -g mail -m -d /var/milter -s /sbin/nologin milter
chmod 755 /var/milter

秘密鍵、証明書の作成
今回は「/etc/pki/dkim-milter」に必要なファイルを作成します。

mkdir /etc/pki/dkim-milter
cd /etc/pki/dkim-milter
dkim-genkey -s セレクタ名 -d ドメイン名
ex) dkim-genkey -s selector -d example.com

chmod 440 selector.private
chown milter:mail selector.private

署名をつけるInternalネットワークのリストを設定

/etc/pki/dkim-filter/ilist
127.0.0.1
192.168.1.0/24
chmod 440 ilist
chown milter:mail ilist

DNSへの設定
DNSのゾーン情報に情報を追加します。selectorの行は上のdkim-genkeyでできるselector.txtの中身をそのまま貼り付けます

_policy._domainkey IN TXT "t=y; o=~"
_domainkey IN TXT "t=y; o=~"
selector._domainkey IN TXT "v=DKIM1; g=*; k=rsa; p= ~省略~" ; ----- DKIM selector for example.com

dkim-milterの起動スクリプト作成
/etc/init.d/dkim-milter

#!/bin/bash
#
#
# dkim-milter:
#
# chkconfig: 2345 75 35
# processname: dkim-milter
# description: dkim milter
source /etc/rc.d/init.d/functions

PROG=/usr/bin/dkim-filter

PID=/var/milter/dkim-milter.pid
SOCKET=inet:10026
#SOCKET=/var/milter/dkim-milter.socket   #Socketの場合

DOMAINLIST="example.com"  #カンマ区切り
SELECTOR="selector"       #セレクタ名
KEY="/etc/pki/dkim-milter/${SELECTOR}.private"
ILIST="/etc/pki/dkim-milter/ilist"

RETVAL=0

start() {
    echo -n $"Starting dkim-milter: "
    daemon --user milter \
        "umask 117; $PROG -p $SOCKET -d $DOMAINLIST -k $KEY -l -P $PID -s $SELECTOR -i $ILIST"
#        "umask 117; $PROG -p local:$SOCKET -d $DOMAINLIST -k $KEY -l -P $PID -s $SELECTOR -i $ILIST"   #Socketの場合
    RETVAL=$?
    echo
    [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dkim-milter
    return $RETVAL
}

stop() {
    echo -n $"Shutting down dkim-milter: "
    killproc $PROG
#    rm -f $SOCKET
    RETVAL=$?
    echo
    [ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/dkim-milter
    return $RETVAL
}

restart() {
    stop
    start
}

case "$1" in
  start)
    start
    ;;

  stop)
    stop
    ;;
  restart)
    restart
    ;;
  status)
    status $PROG
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $0 {start|stop|restart|status}"
    RETVAL=1
esac

exit;
chmod 755 dkim-milter
chkconfig --add dkim-milter
chkconfig dkim-milter on

/etc/postfix/main.cf

#DKIM
smtpd_milters = inet:10026
#smtpd_milters = unix:/var/milter/dkim-milter.socket  #Socketの場合
non_smtpd_milters = $smtpd_milters
milter_default_action = accept

「milter_default_action」はdkim-milterが死んでいたときはスルーさせるため「accept」にしておく

その他
amavisとかPostfixで他のポートへも転送したりしているものもある場合は、それぞれに「smtpd_milters」の設定をはずしておかないとダメかも

smtp-amavis unix -    -    n    -    2  smtp
    -o smtp_data_done_timeout=1200
    -o smtp_send_xforward_command=yes
    -o disable_dns_lookups=yes
    -o smtpd_milters=
127.0.0.1:10025 inet n    -    n    -    -  smtpd
    -o content_filter=
    -o local_recipient_maps=
    -o relay_recipient_maps=
    -o smtpd_restriction_classes=
    -o smtpd_client_restrictions=
    -o smtpd_helo_restrictions=
    -o smtpd_sender_restrictions=
    -o smtpd_recipient_restrictions=permit_mynetworks,reject
    -o mynetworks=127.0.0.0/8
    -o strict_rfc821_envelopes=yes
    -o smtpd_error_sleep_time=0
    -o smtpd_soft_error_limit=1001
    -o smtpd_hard_error_limit=1000
    -o smtpd_milters=
policy  unix  -       n       n       -       0       spawn
  user=nobody argv=/usr/bin/perl /usr/local/lib/policyd-spf-perl
    -o smtpd_milters=

確認
DKIMに対応しているアドレス(gmailなど)とやりとりしてヘッダーにDKIMの情報があるか確認

Authentication-Results: hoge.example.com; domainkeys=pass (testing) header.sender=hoge@gmail.com
Authentication-Results: hoge.example.com; dkim=pass (1024-bit key) header.i=@gmail.com

DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple;  ~省略

以下のアドレスへメールを送るとチェックしてメールが返信されてくる。(SPF,DKIM,DomainKeysなどがチェックできる)

check-auth@verifier.port25.com
sa-test@sendmail.net
http://senderid.espcoalition.org/

参考URL
CentOS5へのメール環境構築 (2007/11/01)(TOSAKA.ORG)
CentOS5で,DKIM/SPF/Domainkeyなど使ってみる(Hizumi Blog)
dkim-milter 2.4.2へのアップデート(yellowback’s blog)

メールサーバ(Postfix)をSPF(Sender Policy Framework)の検査に対応してみる。相手にチェックさせるだけであればDNSにレコードがあるだけでいいので、DKIM,DomainKeysと比べて実装はしやすい。自身に届くメールのチェックをするにはPosftfixの「check_policy_service」でチェックするようにする。

DKIM(Domainkeys)対応はこちら

必要なパッケージのインストール

yum install perl-Mail-SPF

SPFのチェック用のモジュールはパッケージではないのでソースをダウンロードしてくる(perlスクリプト)
http://www.openspf.org/Softwareのあたりから、postfix-policyd-spf-perl-2.005.tar.gzをダウンロードしてくる。

ファイルの配置

tar xzvf postfix-policyd-spf-perl-2.005.tar.gz
cp postfix-policyd-spf-perl-2.005/postfix-policyd-spf-perl /usr/local/lib/policyd-spf-perl

/etc/postfix/master.cf

policy  unix  -       n       n       -       0       spawn
  user=nobody argv=/usr/bin/perl /usr/local/lib/policyd-spf-perl

/etc/postfix/main.cf(Postgreyと併用)

smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023, check_policy_service unix:private/policy
policy_time_limit = 3600

DNSのレコードにSPFの情報を記述(例)

spf01   IN TXT "v=spf1 +ip4:xxx.xxx.xxx.xxx/24 ~all"
spf02   IN TXT "v=spf1 +ip4:yyy.yyy.yyy.yyy/24  ~all"
@       IN TXT "v=spf1 include:spf01.example.com include:spf02.example.com ~all"

確認
SPFに対応しているアドレス(gmailなど)とやりとりしてヘッダーにSPFの情報があるか確認

Received-SPF: none  ~
Received-SPF: pass  ~
Received-SPF: softfail ~

以下のアドレスへメールを送るとチェックしてメールが返信されてくる。(SPF,DKIM,DomainKeysなどがチェックできる)

check-auth@verifier.port25.com
sa-test@sendmail.net
http://senderid.espcoalition.org/

えぇ、RH300受けてきましたよ。

重要:本コースは難解です
本コースは、実務としてシステム管理者を経験している方や、Linux(あるいはUNIX)のパワーユーザであ
る方を対象としています。上記前提条件は、本コース受講にあたり必須の条件となります。

とかって書いてあるし、なんせRHCEの受験料込みで346,500円という高額商品です。いくら会社のお金とはいえ、ちょっとびびって受講したのですが、講習の内容的には基本的なものが多く、個人的には、なんの問題もなかったのですが、試験のほうは実技試験のみなので、ハマるとどうしようと心配だったのですが、案の定、いつも使わないやつでハマってしまい満点合格とはいきませんでした。しかも83.9って思ったより低かったのだけど、他にも減点されたのかな~。とりあえずRHEL5なので当分カレント状態なのでよかったよかった。

SECTION I:    TROUBLESHOOTING AND SYSTEM MAINTENANCE
RHCE requirements:  completion of compulsory items (50 points)
                    overall section score of 80 or higher
RHCT requirements:  completion of compulsory items (50 points)

Compulsory Section I score:                        50.0
Non-compulsory Section I score:                    50.0
Overall Section I score:                           100

SECTION II:  INSTALLATION AND CONFIGURATION
RHCE requirements: score of 70 or higher on RHCT components (100 points)
                   score of 70 or higher on RHCE components (100 points)

RHCT requirement:  score of 70 or higher on RHCT components (100 points)

RHCT components score:                             100.0
RHCE components score:                             83.9

RHCE Certification:                                PASS

RH300 RHCE (Red Hat Certified Engineer)
速習エキスパートコース + RHCE認定試験
(RedHat)

RH300/RH301 履修項目 RHEL5対応(Redhat)

スクリプトの準備
http://isoredirect.centos.org/centos/build/からmkdvdiso.shをとってくる

cd /home/hoge/
wget http://isoredirect.centos.org/centos/build/mkdvdiso.sh

必要なパッケージをインストール

yum install mkisofs anaconda-runtime

isoイメージを「/home/hoge/CentOS5」へ入れる

/home/hoge/CentOS5
CentOS-5.1-i386-bin-1of6.iso
CentOS-5.1-i386-bin-2of6.iso
CentOS-5.1-i386-bin-3of6.iso
CentOS-5.1-i386-bin-4of6.iso
CentOS-5.1-i386-bin-5of6.iso
CentOS-5.1-i386-bin-6of6.iso

結合

cd /home/hoge/
sh ./mkdvdiso.sh CentOS5/ /home/hoge/CentOS-5.1-i386-bin-DVD_New.iso

rootで実行しないとマウントできないので失敗するのと、作成するDVDイメージへのパスは絶対パスにしないと失敗するので注意!

CentOSのApacheでクライアント証明書認証をしてみる。前にDebianでやったので基本は同じだけど、ファイルのパスが違ったりするので再度メモ
作業は「/var/www/ssl」で行い、独自認証局のフォルダは「/var/www/ssl/hogeCA」に作ります。また証明書の期限は30年(10950日)にしてあります。

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

mkdir -p  /var/www/ssl

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組織外に発行する場合に困る)<br />

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 あってもなくてもいい

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 10950"
CADAYS="-days 10956"
CATOP=/var/www/ssl/hogeCA

◆認証局CAの作成

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

◆apacheのサーバで使うサーバ証明書を作成

秘密鍵の作成

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 10950 -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 10950 -in server.csr -keyfile hogeCA/private/cakey.pem  \
        -cert hogeCA/cacert.pem -out server.crt

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

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

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

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

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

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

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

openssl req -new -days 10950 -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で署名する

vi /etc/pki/tls/openssl.cnf
以下をコメントをはずす(Netscapeの為の対応らしい?)
 nsCertType = client,email
openssl ca  -days 10950 -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

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

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

クライアント証明書の失効とCRL(apache)
Apache2でクライアント証明書認証(Debian Sarge)

bashのhistory機能、HISTTIMEFORMATでコマンドの履歴に日付や時間を表示することができる。複数人でroot権限を持ってる場合、サーバがおかしくなった時、変なコマンドいれてないか確認できると思って便利だとおもったのでメモ
~/.bashrcに書いておく

HISTSIZE=10000
HISTFILESIZE=10000
HISTTIMEFORMAT='%y/%m/%d %H:%M:%S  '   #←日付、時間
HISTTIMEFORMAT='%H:%M:%S '             #←時間
HISTIGNORE=ls:history                  #←historyに記録しないコマンド

で、どのマシンでもきるとおもいきや、bashが3系になっていないとダメのよう。実はRHEL2のサーバで使いたかったのだけど。。orz

RHEL2.1,CentOS2
bash -version
GNU bash, version 2.05.8(1)-release (i386-redhat-linux-gnu)

RHEL3,CentOS3
bash -version
GNU bash, version 2.05b.0(1)-release (i386-redhat-linux-gnu)

RHEL4,CentOS4
bash -version
GNU bash, version 3.00.15(1)-release (i386-redhat-linux-gnu)

RHEL5,CentOS5
bash -version
GNU bash, version 3.1.17(1)-release (i686-redhat-linux-gnu)

OpenVZは便利に使わせてもらってますが、社名変更されるそうです。仮想化市場では、やはりVMWareがトップといえばそうなんですが、XenやVirtuozzo、KVMとか、それぞれいいとこ、わるいとこあるわけで、使うほうからするとどれが一番というより適材適所、どれもがんばってほしいですね。

仮想化製品のSWsoftが社名をParallelsに変更へ(CNET Japan)

CentOS5.1がリリースされました。今回はServerCDというわけではありませんが、ネットワークインストール用としてCentOS-5.1-i386-netinstall.isoというのが増えたようです。DVDの「/images/boot.iso」と同じものじゃないかと思いますがどうなんでしょう、未確認。そういやプロキシ経由でネットワークインストールできないような気がするのだけどやりかたどっかに書いてないかなー
[CentOS-announce] Release for CentOS-5.1 i386 and x86_64

追記
「CentOS-5.1-i386-netinstall.iso」と「/images/boot.iso」は同じでした。

ef1ef0b841964a1bbdd4286b157fb99f  CentOS-5.1-i386-netinstall.iso
ef1ef0b841964a1bbdd4286b157fb99f  boot.iso

余ってるSPARCのマシンでDebian運用中なのですが、ディスプレイがデカいのでその辺のPCの切り替え機につないで省スペース化しようと思い、標準は変な?解像度なので、普通ぐらいのに落としてつないでみようと思ったメモ

やり方は、STOP+AでOpenBootのプロンプトへ落ちて

setenv output-device screen:r1024x768x60
reset-all

で、OpenBootからの解像度を変更できます。ちなみにうちのはCreatorなんちゃらというカードらしい。

ちなみにデフォルトに戻すときは、

setenv output-device screen
reset-all

です。

しかし、映そうとした液晶CRTだと映らず、ブラウン管のやつならOKでした。ワークステーション系はSync on Greenとかってやつに対応のでないとダメらしい。

CentOS5はiSCSIデバイスへインストールできるので試しにやってみようというメモ。といいつつ本当に試しなので、VMWareでインストールしてみる。
しかし、CentOS5のDVDイメージからのインストールでiSCSIを選択すると、なんかうまくいかない(どうもインストーラーのバグくさい)、ネットワークブートでインストールするとちゃんと選択できました。
画面のイメージは、RHEL5とだいたい同じなので、こんな感じ
4.16. 高度なストレージオプション(Red Hat Enterprise Linux インスト-ルガイド)

んで、試しに「/」一本でiSCSIへいれたので、インストール後はブートできず死亡しました、iSCSI対応NICでもないのであたりまえだ(笑)
次回は、iSCSIデバイスからbootしてみる予定

VistaでもiSCSI Initiatorの機能が標準装備なので CentOS5でiSCSI Targetを作ってみる。

iSCSI Initiator :クライアント側
iSCSI Target    :ホスト側

※必要そうなパッケージ

yum groupinstall 'Development Tools'
yum install openssl-devel

※ソースのダウンロード
iSCSI Enterprise Target Projectのlatest stable versionのリンクからSourceForgeへ飛んでソースをダウンロード。

tar xzvf iscsitarget-0.4.15.tar.gz
cd iscsitarget-0.4.15
make
make install

※パッケージの更新停止
yumでKernelをアップデートしちゃうとダメになるので更新されないようにする。Kernelを更新した際はコンパイルからやりなおしです。

/etc/yum.conf
exclude=kernel

※iSCSI Targetの設定ファイル
とりあえず、動くようにするだけの設定
iqn(iSCSI Qualified Name)はタイプ識別子「iqn.」、ドメイン取得日、ドメイン名、ドメイン取得者が付けた文字列としてつけるらしい。
「/dev/strage/lvtest」はiSCSIにするパーティション名

/etc/ietd.conf
Target iqn.2007-11.com.exsample:storage.lvtest
    IncomingUser
    OutgoingUser
    Lun 0 Path=/dev/strage/lvtest,Type=fileio

※サービスの起動

service iscsi-target start

chkconfig --add iscsi-target
chkconfig iscsi-target on

※その他
iSCSI Targetをつくれるもの、Strage Server用のDISK装置についてる事がおおいのかな。
open-e

Linuxの場合は簡単にNICを負荷分散、冗長化できるのでメモ、NICのメーカーや型番でも問題ありません、スイッチも特別なものでなくても大丈夫、別のスイッチすれば尚二重化効果は大です。ただし、リピータハブに刺すのはダメなので注意。Windowsだと、Teamingと呼ばれる事が多いと思いますが、こちらはドライバにその機能がついてれば可能です(やったことないけど(笑))

※ネットワーク関係の設定 bond0でeth0とeth1をbonding

/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=none
ONBOOT=yes
NETWORK=192.168.1.0
NETMASK=255.255.255.0
IPADDR=192.168.1.10
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

※bond0のモジュール設定、modeはタイプによっていろいろあるのでRHEL4のマニュアル参照(以下抜粋)

/etc/modprobe.conf
alias bond0 bonding
options bond0 mode=0 miimon=200
mode=  bondingモジュールに許可された 4つのポリシーの中から1つを指定します。このパラメータに有効な値は次の通りです。
      0  耐障害性と負荷バランシングに対するラウンド ロビン ポリシーを設定します。ボンディングされたスレーブインターフェイスは使用できるものから順に、送受信を順次行ないます。
      1  耐障害性に対するアクティブ バックアップ ポリシーを設定します。最初に使用できるボンディングされたスレーブインターフェイスによって送受信が行なわれます。ボンディングされた他のスレーブインターフェイスはアクティブなスレーブインターフェイスが失敗した場合のみ使用されます。
      2  耐障害性と負荷バランシングに対する XOR (exclusive-or)ポリシーを設定します。この方法では、インターフェイスによって1スレーブ NIC の MACアドレスと受信要求の MACアドレスが適合されます。このリンクが確立されると、最初に使用できるインターフェイスから送信を順次行ないます。
      3  対障害性用のブロードキャストポリシーを設定します。全ての送信は、全てのスレーブインターフェイスで送られます。
      4  IEEE 802.3ad ダイナミックリンク集合ポリシーを設定します。同じスピードとデュープレックス設定を共有する集合グループを作成します。アクティブな集合体内の全てのスレーブ上で送信と受信をします。そして802.3ad 対応のスイッチを必要とします。
      5  対障害性とロードバランシング用の送信ロードバランシング (TLB)ポリシーを設定します。外部への送信は、各スレーブインターフェイス上の現在のロードに従って配信されます。受信は現在のスレーブにより受け付けられます。もし受信するスレーブに障害があるともう一つのスレーブが問題のスレーブの MAC アドレスを引き取ります。
      6  対障害性とロードバランシング用のアクティブロードバランシング (ALB)を設定します。IPV4 通信用の送信および受信ロードバランシングを含んでいます。受信のロードバランシングは ARP ネゴシエーションによって達成されます。 

※状態の確認

ifconfig
cat /proc/net/bonding/bond0

A.3. イーサネットパラメータ(Red Hat Enterprise Linux 4: リファレンスガイド)

Ubuntu 7.10が予定通りリリース、日本語ローカライズもほぼ同時にリリースされています。最近は基本的にCentOSでサーバ用途が多いんでDebian系は触ってないのですが、デスクトップで使うんだったらUbuntuが1番になりそうです。ダウンロードして試してみようかなー
Ubuntu Japanese Local Community Team

OpenPNEで携帯メール投稿したときのメモ
(サーバはPostfixで別ドメインで運用中)

メールの宛先になるドメイン名(当然MXかAレコードなどで引けること)

config.php
// メールサーバードメイン
// 携帯メール投稿の宛先などのドメイン名に使われる
define('MAIL_SERVER_DOMAIN', 'sns.sample.com');
/etc/postfix/main.cf
SNSのドメインとは別なドメインでメールサーバの運用をしている場合、mydestinationに追加
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, sns.sample.com

最下行にでも追加
virtual_alias_maps = pcre:/etc/postfix/virtual.openpne
ファイル新規作成
/etc/postfix/virtual.openpne
/^get\@sns\.sample\.com$/ openpne-request
/^p\d+-[\da-f]{12}\@sns\.sample\.com\$/ openpne-request
/^t\d+-[\da-f]{12}\@sns\.sample\.com\$/ openpne-request
/^b\d+-[\da-f]{12}\@sns\.sample\.com\$/ openpne-request

main.cf更新後
service postfix reload

/etc/aliases
openpne-admin:    admin@sample.com
openpne-request: "|/usr/bin/php /var/www/html/OpenPNE/bin/mail.php"

/etc/aliases修正後
newaliases で更新

ttyを持ってない状態でsudoをしようとすると、

 sorry, you must have a tty to run sudo

と出てしまう際の対処、

 /etc/sudoers
 #Defaults    requiretty   ←コメントアウト

たとえば、apacheとかで無理やりsudoでコマンドを実行させたい場合(セキュリティ上はあまり好ましくないので使用には注意)

Linuxでのクラスタを実現するOSSのHeartbeatの日本語サイトができたとのこと、そんなに複雑なソフトではないので英語の情報でもなんとかなると思いますが、日本語のサイトができて情報が充実すれば尚よしって感じですね。
そういえば。。Heartbeatは一つ業務系のにいれたことありますが、CPUの負荷が高い時に誤検知してFail Overしてしまって結局あきらめたのがあったなー(笑)
The High Availability Linux プロジェクト
冗長構成を支えるOSSミドルウェア「Heartbeat」の日本語Webサイトがオープン(Enterprise Watch)