2008年6月アーカイブ

Seichan です.qmail 関連の SSL/TLS 化を考えてます.特に SMTP(submission), POP3, IMAP.

楽ちんぽいのは ucspi-tcp を SSL が扱えるようにする方法だったので色々調べてみた.

sysutil/ucspi-tcp (オリジナル)
WITH_SSL=yes でパッチを当てる事で行ける.tcpserver はそのまま使えるので,tcpserver を使っていて SSL 不要な所はまったく修正が要らず,SSL 化したい所だけ,オプションを追加してやる.

tcpserver に追加するオプションは,
-s SSL を有効
-n CERTFILE 証明書/鍵ファイルを指定
と,これだけ.


ただ,証明書/鍵を1つのファイルに収める必要があるのでその点が微妙?

sysutil/ucspi-ssl-tls (SSL/TLS パッケ)
ucspi-tcp とはまったく別の実装で ucspi-ssl と言う物がある.で,ucspi-ssl に TLS パッチを適用した物が,ucspi-ssl-tls.

こっちも,tcpserver とはまったく別のバイナリ sslserver を使うので,tcpserver を使っていて SSL 化が不要ならそこはいじる必要なし.上のやつより高機能な為,色々面倒な部分も.

とりあえずは tcpserver と記述していた所を sslserver に変更するだけなんだけど,鍵や証明書の指定方法が独自というか djb 的?

複数の環境変数が必要で,
  • CADIR
    • 証明書等を収めているディレクトリ
  • CAFILE
    • CA証明書ファイル
  • CERTFILE
    • サーバ証明書ファイル
  • CIPHERS
    • 使用可能な暗号化スイートを列挙
  • DHFILE
    • 鍵交換ファイル
  • KEYFILE
    • サーバ鍵ファイル
と,色々と準備が多かった.
鍵交換ファイルってなんやねん? ととりあえず調べ,

openssl dhparam -out dh1024.pem 1024
と作ることを知った.

最後に,uw-imap の ipop3d を使ってるわけですが,これ自身 SSL を有効にしてビルドしてれば巣の tcpserver で良い.
証明書/鍵を置く場所が最初から決まっているので,そこに配置してサービスを動作させるだけ.鍵等のファイルが無かったら平文で使える.
初めて知ったよ.

こいつは諸事情で ports から入れていないので,証明書を置く場所が標準とちょっと違うのかな?
Makefile に SSLCERTS=/etc/ssl/certs SSLKEYS=/etc/ssl/private って書いてあったので,それにならってディレクトリ作成.

ファイルはバイナリ名と同一にする必要があるっぽいので,ipop3d を SSL 化する場合は ipop3d.pem というファイル名にする必要があるらしい.

とりあえず,pop3 の SSL 化は完了したんだけど,まだ SSL 状態にはしていない.SMTP(submission) も SSL 化したけど...
いつからスタートしましょうか? > 使っている方.特に,くらとぱぷ
仕事中の Seichan です.忘れやすいので,メモメモ.隣の席の人から,「いつも見てるのに更新されない~」って言われたし.こっちも,隣の人のサイト見てるんだけど,更新されていないんだよなぁ...
# って書くと更新されるかも

VMware Server 上で FreeBSD を使っている訳ですが,アホみたいに時刻がずれる.Guest 上の1秒が,実時間で 2秒位.
すなわち,2倍ずれる感じになってしまうので,これの対処.

HostOS 上でやってみる事として,CPU 速度の一定化.cpuspeed 等の daemon は停止する事.そうじゃないと CPU 速度がまちまちになって時間がずれる原因に.

それでも駄目な場合は,Guest 上の FreeBSD での設定を.
一番最初にやってみる事は Kernel の clockrate を 100 にする事./boot/loader.conf に追加すべし.

echo 'kern.hz=100' >> /boot/loader.conf


その後,reboot して確認.自分の所はこれで問題ないっぽい感じです.

上記でもまだ駄目な場合は,また /boot/loader.conf に追加する.が,これは必要が無いと書いてある所もあった.
自分は未確認なので,上記で駄目だった場合で試してみて,結果を教えて欲しいなぁと

echo 'hint.apic.0.disabled=1' >> /boot/loader.conf
echo 'hint.kern.timecounter.hardware=i8254' >> /boot/loader.conf

で,先の kern.hz=100 に関しては Linux でも有効な方法のようです.
今の FreeBSD も Linux も kern.hz=1000 がデフォルトで,VMware からは
取りこぼしが多い様子.
その為,kern.hz=100 として割り込み回数を減らす事で良くなるようで.
GeustOS に Linux を入れる事もあまり無いので,試せませんが(汗


あ.上記をやる前に,VMware の vmx ファイルに次の行を追加しておいたほうが
良いかも? VMware Tools を入れると使えるようになるんですが,入れなくても
効くのかな?
とりあえず,VMware Tools を入れても,デフォルトは false だから,
さっくり入れてしまった方が良い.

Tools.syncTime = "TRUE"

このアーカイブについて

このページには、2008年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年3月です。

次のアーカイブは2008年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.23-ja