Linux 備忘録

qmailでtcpserverをSSLに対応した場合の認証期限の延長

qmailではtcpserverをSSL対応にすることで暗号化通信を実現できます。

tcpserverの入手

# wget http://cr.yp.to/ucspi-tcp/ucspi-tcp-0.88.tar.gz 

SSL対応パッチの入手

wget http://www.nrg4u.com/qmail/ucspi-tcp-ssl-20050405.patch.gz

# yum -y install openssl-devel

tcpserverのSSL対応に必要なパッケージをインストール

# tar zxvf ucspi-tcp-0.88.tar.gz ← tcpserver展開

# gunzip ucspi-tcp-ssl-20050405.patch.gz ← tcpserverSSL対応パッチ展開

# mv ucspi-tcp-ssl-20050405.patch ucspi-tcp-0.88
 ← tcpserverSSL対応パッチをtcpserver展開先ディレクトリへ移動

# cd ucspi-tcp-0.88 ← tcpserver展開先ディレクトリへ移動

# patch < ucspi-tcp-ssl-20050405.patch ← tcpserverSSL対応パッチ施行
# make

# mv tcpserver /usr/local/bin/

これでtcpserver は認証対応となります。

ucspi-tcp-088 ディレクトリー配下のMakefile を修正して認証期限を10年間に延長します。

cert:
        ${OPENSSLBIN} req -new -x509 -nodes \
        -out cert.pem -days 3650 \
        -keyout cert.pem

上記のように366の値を3650に変更します。これにより認証書の有効期限は10年間となります。

後は、make cert.pem をして作成したcert.pem を /var/qmail に移動します。

クライアント側の証明書を作成します。

# openssl x509 -in cert.pem -outform DER -out mail.der

作成されたmail.derをクライアントPCに取り込み、ダブルクリックして証明書をインストールします。

全て完了しましたら、qmailをrestartします。

これで、証明書の期限は10年間延長されました。

sedの基本

sed(Stream EDitor)は、非対話的にコマンドを実行するテキストエディタで ある。コマンドは引数で与えられ、入力は標準入力または引数で示されたファ イルからの入力となり、出力は標準出力が使用される。

同時に多くの編集作業をするのには向いていないが、パイプコマンドとして テキストストリームに加工を施す際に便利である。また、シェルコマンドと して実行できるため、シェルスクリプト内に埋め込んで実行するのにも向いている。

[more…]

正規表現

正規表現

正規表現(せいきひょうげん:regular expression)とは、文字列の集合を一つの文字列で表現する方法の一つ。正則表現(せいそくひょうげん)とも呼ばれ、形式言語理論の分野では比較的こちらの訳語の方が使われる。

もともと正規表現は形式言語理論において正規言語を表すための手段として導入された。形式言語理論では、形式言語が正規言語であることと正規表現によって表せることは同値である。

その後正規表現はテキストエディタ、ワードプロセッサをはじめとするアプリケーションソフトでパターンマッチ文字列を表すために使用されるようになり、表せるパターンの種類を増やすために本来の正規表現にはないさまざまな記法が新たに付け加えられた。このような拡張された正規表現には正規言語ではない文字列も表せるものも多く、ゆえに正規表現という名前は実態に即していない面もあるが、伝統的に正規表現と呼ばれ続けている。

[more…]

ps コマンド

ps コマンドはプロセスの稼動状態を調べるのに使います。

[more…]

圧縮 ソフト

圧縮ソフトには、遍歴があります。

時代とともにその圧縮率が増加している。その順番は以下の通り。

bz2>gz>zip>compress

今後の傾向は、bz2に置き換わっていくと考えられます。

[more…]

PHPのセッション

PHPのセッションサポート機能は、複数回のアクセスを通じて特定のデー タを保持する手段を実現するものです。これにより、よりカスタマイズさ れたアプリケーションを構築し、自分の Web サイトのアピール度を増加 させることが可能となります。

Webサイトの訪問者にはセッションIDと呼ばれるユニークなIDが割りつけられます。このIDは、ユーザー側にクッキーとして保存するか、または、URL に埋め込みます。

セッションサポート機能により、任意の数の変数をリクエスト間で受けわたせる ようになります。来訪者がサイトにアクセスした際、 PHP は特定のセッションIDがリクエストとともに送信されているかどうかを ( session.auto_startが1の場合は)自動的に、または (session_start() により明示的に、あるいは session_register() により暗黙に) 要求を受けて確認します。 このIDが送信されている場合には、以前保存された変数が再現されます。

session.auto_startをonとした場合、 オブジェクトをセッション変数に代入することができなくなります。 これは、セッションにおいてオブジェクトを再現するためには、 セッション開始前にクラス定義がロードされている必要があるためです。

全ての登録された変数は、リクエストが終了した後に、シリアル化されます。 未定義の登録変数は、未定義としてマーク付けされます。 後でユーザーがこれらの変数を定義しない限り、以降のアクセスにおいて セッションモジュールにより定義されません。

注意: セッション処理機能は、PHP 4.0 でサポートされました。

注意: セッションを処理している時、 session_register()関数を使用するか スーパーグローバル配列$_SESSIONへ新しいキーを 追加することにより変数が登録されるまで、セッションのレコードは作 成されないことに注意して下さい。これは、セッションが session_start()関数により開始されている場合で も真です。

MySQL tableにフィールド追加

一度作成したテーブル情報を更新するには、Alter table分を利用します。あまり使用する機会がないので、備忘録にメモっておきます。

データの変更だけでなく、フィールド単位の追加や削除をする場合にも Alter table を使用します。 Alter table には複数のオプションがあり、add, modify,change,drop,rename のうちのadd オプションについて説明します。

■ ADD オプション

MySQLで既存のテーブルに新しいフィールドを追加する場合は、ADDオプションを使用します。

> Alter table [テーブル名 ] add [ フォールド情報] [ [First] | [After フィールド名] ] ;

 最後のFirstやAfterで追加するフィールドの位置を指定します。たとえば、テーブルの最初のフィールドを追加する場合は[First]となり、途中に追加したい場合は[After フィールド名]というように指定したフィールド名の後に挿入することができます。

 フィールド情報の部分には、フィールド名やフィールドのデータ型などの情報を入力します。

例 name01 varchar(10) default ” ” not null

     num01 int(10) default ” ” not null など

■ DROP オプション

 既に存在しているフィールドを削除するオプションです。フォールドに挿入されているデータとともにすべて削除されます。

> Alter table [テーブル名] drop [フィールド名] ;

Drop をする際に確認はありませんので、間違って必要なフィールドを削除してしまわないように充分注意してください。

sed による置換

置換

sed -e ’s/original/replacement/g’ file

[more…]

USBのLinuxへの接続

kernel 2.6以上では、USB2.0をサポートしています。

[more…]

.html の拡張子でphp実行

phpは、通常.phpの拡張子に対してスクリプトを実行します。
それでは、何かと不都合なこともあるので、このサイトを参考にしてhttpd.conf を書き換えました。

AddType text/html .php
AddHandler php5-script .php
AddHandler php5-script .html

上記の内容を追加すると動作するようになりました。
これにより、どの程度apacheの負荷があがることになるのだろうか。