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"

FreeBSD 7.0-RELEASE が,一応 2008/02 に間に合う形でリリースされました.
特徴は,大幅な性能の向上や,ZFS,iSCSI イニシエータのサポートです.
詳しくは,リリースノート http://www.freebsd.org/releases/7.0R/relnotes.html を参照して頂くとして,ざっと並べると

  • 一応全てのデバイスが GIANTLOCK から MPSAFE 化
  • if_bridge(4) の Rapid Spanning Tree Protocol (802.1w) サポート
  • lagg(4) による,link aggregation, failover サポート
  • tmpfs(5) の実験的サポート
  • 色々と問題のあった mount_unionfs(8) の再実装
  • gmultipath(8) による,マルチパスをサポート
  • 仮想ストレージデバイスプロバイダ gvirstor(8) のサポート
  • そして,ZFS のサポート
  • freebsd-update(8) が,アップデートのみから,アップグレードもサポート
色々と良い感じになっており,SMP 環境でのパフォーマンスが大幅に向上しているようです.最近は US の方等で FreeBSD 周りが活発なようで,今後も新機能等が楽しみです.
個人的には,今管理中の FreeBSD を全て 7-STABLE に置き換えるように準備中です.

あと,NanoBSD が大変面白いのです.

NanoBSD は,大分前に FreeBSD のソースに追加されている,コンパクトな FreeBSD を作成する為のツールで,主に CF カードや,USB ブート等用の FreeBSD を作成するのに向いています.
基本はリードオンリなファイルシステムと,md によるメモリファイルシステムを利用します.設定ファイル等書き換わる部分は別途小さく取っている読み書き可能なファイルシステムへ保存するという,FreeBSD をアプライアンス化する為にはとっても有益なツールです.
現在,ルータマシン用に作成すべく,色々と試しながら利用しています.mpd を入れたり,kernel から余計なデバイスを省いたり,カスタマイズがしやすい構成なので扱いやすいです.

まだ完成していないのですが,NanoBSD のドキュメントの和訳 をぺたっと.

Seichan です.インフルエンザで丸々一週間会社を休んでしまいました...有給休暇の残がゼロに!!
喘息とインフルのダブルパンチは,辛いとです orz

それはそれとして(?) FreeBSD 6.3 がリリースされたので,リリースノートを見ていたら,ネットワークプロトコル周りによい感じのアップデートが御座いました.と言うか,これらは主に 7-STABLE での新機能で,6.3 にバックポートされたと言って良いかも?

  1. if_bridge で RSTP (802.1w) が利用可能に
  2. OpenBSD, NetBSD から lagg がポーティングされ,ネットワークのリンクアグリゲーション,フェイルオーバーが可能に
  3. ng_deflate, ng_pred1 が追加され,NETGRAPH を使ったアプリケーションで回線圧縮が利用可能に

ネットワークの冗長性部分が Linux より弱い感もあった FreeBSD ですが,これで大分差は埋まったんじゃないかと思われます.


で,lagg を早速つこてみた.

まず,cloned interface を利用した仮想デバイスの生成.以下のコマンドを実行すると lagg0 というインタフェースが生えます.

  • ifconfig lagg0 create

次に,lagg0 に参加させるインタフェースを指定.以下コマンドの場合,em0em1 を参加させます.

  • ifconfig lagg0 laggport em0 laggport em1

そしてさらに,lagg0 が取る冗長方法等を指定.failover, fec(Cisco EtherChannel), lacp (802.3ad), loadbalance, roundrobin, none のいずれかを指定.デフォルトは failover で,MASTER NIC が死んだら SLAVE NIC に切り替わり.

  • ifconfig lagg0 laggproto failover

以上で準備は完了.lagg0 に IP アドレスを設定,インタフェースを UP していく.

  • ifconfig lagg0 inet 192.168.0.1/24 up
  • ifconfig em0 up
  • ifconfig em1 up
これで,ping 等を打つべし.打つべし.そのまま,インタフェースをダウンさせてみたり,ケーブルを抜いて確かめるべし.
自分の所の VMware な環境では問題無かったです.

そのうち,Cisco なスイッチやらに接続して,fec や lacp は試そうかな.

常用したい場合は,/etc/rc.conf に次のように書けば,上のとおりの設定がリブート後に反映されます.

  • cloned_interface="lagg0"
  • ifconfig_em0="up"
  • ifconfig_em1="up"
  • ifconfig_lagg0="laggproto failover laggport em0 laggport em1 inet 192.168.0.1/24"

ちなみに... lagg0, lagg1 をさらに lagg2 で束ねる.ってのをやっては見たけど,だめぽでした.
Seichan です.とりあえずよさげなサイトを見つけたので,めもめも.

http://www.ish.com.au/solutions/articles/freebsdzfs

これがちゃんと動くなら全部 ZFS でいけんじゃーん
まいど.Seichan です.
1000Base-T って Full-Duplex だから,2Gb/s って事で良かったよね...

やふおく見てたら,Intel な Gigabit NIC が大量に出品されていました.22枚.1枚あたり2000円程度だったので全部買いました.
はい.自分でもバカだと思います.使い切らんやろ~ と.
そんなこんなでブツ届きました.見た所中古といわれていたのですが,未使用っぽい綺麗さ.ぐっどじょぶです.
これは壊れてるのないやろ~ と思いつつ,1回につき5枚ほど刺して順番に netperf で負荷及び速度テスト.
全て大丈夫でございました.なので並べてぱしゃりと写真撮った.19 枚なのは 3枚既に使ったから...
Pro1000_1.JPG

ほんとに Intel なん? と思われないように,ちょっとアップで撮った.
Pro1000_2.JPG

とりあえずの使用感としては,今まで使っていた vge だと以下のメッセージが頻発しておりました.

ayanami kernel: vge0: watchdog timeout
ayanami kernel: vge0: link state changed to DOWN
ayanami kernel: vge0: link state changed to UP


ですが,Intel NIC に変更後,さっぱり上記のようなメッセージは出ておりません.速度も以前より上がりました.
CPU 使用率は... これはカワンネっ

まま.やっぱ Intel NIC は良いなぁ~ とニヤニヤしております(w
で,以前まで使っていた NIC ががっつり余りました.VIA の Gigabit NIC ですが誰か欲しいかたいます?
1枚あたりタバコ1箱で(汗






Seichan です.まいど.

kernel 2.6.9-55.0.9 が出てるのと,VMware Server 1.0.4 がリリースされているので,自宅でつこてる CentOS の VMware Server をアップデート及び kernel をアップデートしてみた.
はじめは,今までよりさっくりしてない? と喜んで使ってたんだけど,どうもスケジューラがおかしいのかなんなのか,2つのコアをきれいに使ってくれない...
7-STABLE にすべく make world なんてしようもんなら,他の VM にこれっぽっちもリソースを割り当ててくれないなんて事態になってしまいました.VMware Server では,5つ程度の GuestOS が常に動いているんで,この状態は非常に宜しくない.

VMware と kernel の両方を一度にアップデートかましたんで,原因追及の為まずは古い kernel で起動し,GuestOS をばしばしっと起動.おもむろに make world した

なーんも問題なし

やっぱ kernel かよ!! と思いつつ,そのまま運用.

同じ症状になった方います? とりあえずぐぐったんだけど,見つからなかった...
この症状,QuadCore だとどういう症状になるんだしょね?
おひさです.seichan です.

7-current が,7-stable に落ちてきたの.
PRERELEASE から BETA-1 とタグが打たれてる.
順調に 7.0-RELEASE に向けて進んでいるようです.

6-STABLE は 6.3-RELEASE で終了見たいです.

で,7系の目玉はなんと言っても ZFS.誰がなんといっても ZFS.ついでに nscd
ZFS は前に遊んだので,大分理解しているつもり.nscd は Linux には前からあったね.nss の結果をキャッシュしてくれるから,LDAP 環境とかの場合はとっても有効.ちょっと前まで 7-current では cached って名前だったんだけど,nscd に変わっちゃった.

他にも色々良い事があって,GEOM_MULTIPATH ってのがあるっぽい.これは Fibre Channel なストレージを持っている所にはとっても便利.FC-HBA を2枚刺しで冗長構成が取れます.本当は,QLogic とかの HBA メーカが用意してくれても良いんだけどね... *BSD はやっぱマイナーなんだろうね.

とりあえず,現用サーバの 6-STABLE からのアップグレードを考えて,6.2-RELEASE を入れて,7-STABLE にしてみた.
普通に make buildworld, make buildkernel, make installkernel, make installworld で問題無し.ただ,mergemaster は面倒.

あとは,nscd で遊んでいる最中です.特に問題無いんだけど,キャッシュが効いているかが良くわからん.むにゅぅ

NINJA

| | コメント(0) | トラックバック(0)
2ch を見てたら,日本版 CIA の話でプチ盛り上がってて... そしたら下のようなカキコが!!

National Intelligence Network of JAPAN

通称 NINJA

素直にアリな名前だな.と関心してしまい.
忍者って,今の CIA とかとやってる事変わらない感じですし.

政治のエロい人.日本版 CIA は NINJA でよろすくー
本日,仕事中にも関わらず,某社勤務の Seichan が Blog に記事を投稿するという暴挙に打って出ました.

Blog 記事の内容は,FreeBSD でも dot1q VLAN が使えるんだー という物で,反 Cisco とも捕らえかねられない大変危険な内容となっています.
これを受け某社は,社内での FreeBSD の利用を禁止する動きを見せており,両者の対立は一層深まっている模様です.

と,冗談はこれくらいにしておいて.仕事で Catalyst を触っている訳ですが,隔離させたいけど,社内から突きに行く為に NAT させるか.と色々と FreeBSD な NATBox をいじっていた訳です.で,VLAN が必要になったのでごりごりと.

使えるインタフェースを選ぶ以外はなーんも問題無く使えてしまえております.ビバ ふりーびーえすでー
MT4 にアップグレードしたら色々と不調に...

面倒になったので,データをエクスポート.
ばっさり消して新規インスト.
データのインポート.

で対処.StyleCatcher は Perl のモジュールが足らないと動作せず & エラーメッセージもワカリズラス.
足りない物を入れたら動いたので,早速使ってみたけど,感想としてはびみょー

ま.赤色が FreeBSD マスコットの色っぽくて良くね?

GEOM GATE

| | コメント(0) | トラックバック(0)

FreeBSD の GEOM GATE を試してみた

VMware 内の環境なのでスピードに難有りな状態だけど,リモートの Disk を raw デバイスとして利用出来るのは面白い.
7-current で ZFS が使えるようになったから,組み合わせ技が使えるか試してみようかねぇ.

リモートの Disk とローカルの Disk の両方を使って RAID に出来るのは面白い.RAID1 のみでやってみたけど,GEOM RAID3 もあるし,まだマージされていないようだけど,GEOM RAID5 もあるし,複数のホストの Disk を纏めてしまえると思うので,色々試そうと思う.

複数のホストから Disk を持ってきて,ZFS の pool に突っ込めたらもっと面白そうだな.raidz とか.

Seichan です.ここしばらく FreeNAS にかまける時間が取れないでおりました.

ちょっと前に 0.684b というバージョンが http://www.freenas.org/ からリリースされており,ここでは作成した日本語ロケールや,ちょっとした修正が反映されています.
ただ,ロケールファイルを送った後,すごい勢いで更新されてて追従する時間が取れない状態だったのでした.
# 今でもどんどん更新されています…

で,だいぶ更新量が溜まった事もあって,昨日ちょっと作業をして見ました.その後,ISO イメージを作りたーいって思ったので作成する事に.
基本はビルドスクリプトがあるので実行するだけなのですが,6.2-RELEASE ではビルド出来ず…
しょうがないので,6.2-STABLE 環境を作って,ビルドしました.

で,特段問題が無く完了し,イメージファイルと ISO イメージの作成が出来たので,プチ公開します.

ftp://rb00.wakhok.net/FreeNAS/FreeNAS-i386-liveCD-0.685b.iso

LiveCD 形式なので,インストールしなくてもある程度の操作は可能です.修正項目があれば,コメント下さい…

今の所,直さなきゃいけない所は以下のとおりと認識中

1. グラフの文字化け
2. EUC-JP-MS を追加 (libiconv ビルド部分の修正?)

ただ,がっつりと HTML 部分が変わって,修正したロケールでもうまく適用出来てない事を発見してしまった…

わろた

| | コメント(0) | トラックバック(0)

http://www.jimin.jp/jimin/kouyaku/pamphlet/pdf/2007_nenkin.pdf
2ページ目でわろた.

けど.やりすぎ感が…

Seichan です.毎度様です.
最近めっきり使う人がいなくなったと思っていたのに,いまだ使っている人がいてびっくりしてます.


以下の理由で RBL は使ってはならない と判断している.

1. IP アドレスベースである
2. 精度が高くない

と大きく2つの理由がある.

1. IP アドレスベースである
RBL のリストは,IP アドレスがベースである.その為,1IP アドレスで複数のドメインをホスティングしているような環境の場合,その中の 1 ドメインが Spam 元アドレスになり,それが原因で登録されたとしよう.
IP アドレスがベースなので,名乗るドメイン名が関係なく,その IP アドレスからのメールドメイン全てが拒否対象になってしまう.

そうすると,例えば自分がホスティングサーバを契約し,利用しているとした場合,そのサーバの IP アドレスが RBL に登録されてしまったとなると… もしかしたら,自分が送信したメールは相手サーバから叩き落とされているかもしれない.
SPAM を送信した事も無く,踏み台にされたわけでも無く.自分のコンピュータが Bot に感染していなくとも,その危険性が生じてしまう.

これが IP アドレスベースの大きな欠点だと考える.

2. 精度が高くない
SPAM メールを拒否する為に利用する RBL は精度が命であろう.しかし,思った程精度は高くない.ある RBL サービスを提供している所は,ネットワークアドレスを丸ごと登録してしまっている所もある.
理由は,ダイナミック IP アドレスレンジだから.だそうだが,実は静的なレンジでも入っている場合がある.
そもそも,ダイナミックレンジだから全て登録してしまうポリシーが自分は理解出来ないが,RBL ホストとして利用するユーザはその事を理解して使っているのか? 登録ポリシーを理解しているか? を考えると,大半は理解していないと考えている.

また,基本的にボランティアベースで RBL ホストリストを保守している為,登録,更新が遅い事も精度が低いという理由の1つだ.オープンリレーサーバであれば,問答無用でリストに加えてしまっても問題ないと思うが,いわゆる公告メールも不快だとしてすぐにリストに登録する人間がいる事も頭の片隅に入れておいて欲しい.
自分が望まないメールが届くたびにリストへ登録するという努力はすばらしいと思うが,それが万人に有用なリストになるか.は又別問題だと考える.

以上が,RBL を使ってはならないと考えている理由だ.


と,硬い口調が苦手なのに頑張った.俺えらいぞ.

実際問題,RBL サービスの最大手であった ORDB は,RBL が有用では無いと宣言し,サービスの提供を終了しました.理由としては以下の点を述べております.

a. ボランティアで作業をしているスタッフの時間が取れなくなっている
b. スパム送信者の“戦略”が変わってきているため,オープン・リレーのRBLが,スパム対策として有効な手段ではなくなっている

また,RBL では無く,別の SPAM 対策方法を導入するように勧めています.これはサービスを提供している側から出た停止理由ですので,メールサーバ管理者はきちんと考える必要があるでしょう.


RBL 以外の SPAM 対策だと,現状はベイジアンフィルタが有力です.また,お馴染みさん方式と呼ばれる,一時的エラーを一度返す方式がとても有効です.SPAM 送信者はリトライしない事から,現在はほとんどの SPAM がはじける状態です.その他には,ベイジアンフィルタに似ている方式で,メールの部分部分を抽出してネットワーク上のデータベースを利用した SPAM 判定があります.Vipul's Razor 等がそんな感じです.
後は… メジャーになるかどうか微妙ですが,送信者ドメイン認証等もある程度は有効だと考えています.


どちらにしろ,複数の SPAM 対策を組み合わせて効果的に利用するべきでしょう.個人的なお勧めは,SMTP セッション中に行う SPAM 対策と,その後のベイジアン型が一番良いと考えています.
明らかに SPAM 送信元だとわかるサイトからの接続を SMTP セッション中に拒否.それ以外は一時エラーを返します.その後で届いたメールをベイズ処理し,SPAM 判定を行って,最終的にスプールへ配送します.

この方法であれば,判定結果は良いが処理が重くなり勝ちなベイジアンフィルタを動作させる回数が少なく済み,トータルでマシンパワーを節約可能だからです.

さて,長くなってしまいましたが,RBL を使用しているあなた.やめる決心はつきました?
# というか,やめて下さい…