木曜日, 7月 21, 2005

逆引きの設定

さくらインターネットに頼んでいた逆引きの設定が終わりました。
これで携帯電話にもメールが送れます。

逆引きのPTRレコードはさくらインターネットのサーバーが答えて、正引きは自前のサーバーが答えるって変ですよね。
いっそのこと全部引き受けてくれたらいいのに。。。まあ、逆引きはIPとったときにホスト名(サービス名ではない)にあわせればずっと固定だからいいのかも知れません。
正引きはそれよりはずっと流動的ですもんね。

それにしても、にこれだけくどくど書いておいて、自分がすることになったら丸投げとは。。。いや、管理コストは抑えないと。

金曜日, 7月 08, 2005

Content-Encoding: gzip

HTTPの話。
前回はchunkedに対応したので、今度はgzipに対応してみます。これで圧縮された転送にも対応できるわけですね。

ソケットから読み込んだデータをバッファにためて、perlioを使って解凍します。
ここで「使いにくいなー」と思う、readコマンド。
最初はソケットから読み込みながら伸張しようと思っていたんですが、なんと!指定するバイト数分読み込むのではなくて、読み込んだ(伸張した)バイト数をカウントするんですね。
これは不便。だって、圧縮されてるデータを展開したら何バイトになるかなんてわからないじゃないですか。なのでなんだか2度手間な感じになってます。

サンプルコード
-------------------------------------------------------------
my $buff = '';
if ( $chunked ) {
while ( <$sock> ) {
warn $_ if $debug;
last if m/^\r\n$/;
s/\r\n//;
s/\s//i;
my $content_length = hex($_) or last;
my $tmp;
read $sock, $tmp, $content_length;
$buff .= $tmp;
}
}
elsif ( $content_length ) {
read $sock, $buff, $content_length;
}

my $content = '';
if ( $gzipped ) {
open FH, '<:gzip', \$buff or die $!;
$content .= $_ while ;
close FH or die $!;
}
else {
$content .= $buff;
}
-------------------------------------------------------------

水曜日, 7月 06, 2005

Debian GNU/Linux で exim4 を設定する

気がついたら「Exim4 設定」で上位に表示されるようになってました。
なので申し訳ない気持ちを込めて書いておきます。もちろん、debianでの話です。

そもそも、Debianでは有無を言わせずインストールされてしまうExim。その時になにか設定を選ばされてしまうのですけどね。
じっくり英語を読めば難しいことは書いてないけど、やはり面倒です。しかし、Debianの標準MTAはこのEximです。だからしょうがない。
で、ちょうど僕は受信するドメインを増やしたくなったので再設定しました。

やりかたは、/etc/exim4/update-exim4.conf.conf なんていう名前のファイルに書いてあります。なんでこんな変な名前なんだ。。。下ででてくるコマンドの名前といい、ちょっと趣味悪い?とか思ってしまいます。

設定の仕方は、
1. dpkg-reconfigure exim4-config を実行してインストール時の処理をやり直す
か、
2. このファイルを編集してupdate-exim4.confを実行する
です。

普通に送受信するだけならどちらかのやり方だけで事足りますね。といっても結局同じことしてるんですが。
ユーザー毎の転送なんかは別で設定します。
もっと凝ったことをやりたい場合はちゃんとマニュアル読んで、設定ファイルを変更しましょう。設定とは違うけど、こんな懲り方も参考までに。

あとはaliasなんかも必要にあわせて設定します。これで完成。

Live HTTP Headers

Live HTTP Headersです。
FireFoxの拡張機能で、その名の通りHTTPヘッダーを見ることができます。

使い方は簡単で、ツールから選択するだけ。あとは起動以降のHTTPヘッダーを勝手に記録していってくれます。
ヘッダーを覗き見るツールとしては内部プロキシなんかが結構多いのかもしれませんが、ブラウザがFirefoxだけでいいならこれが一番簡単です。

まあ、普通のWebアプリケーションを開発するだけならあまり必要はないですが(せいぜいクッキー見るくらいかな)、HTTPの勉強をしたいかたはどうぞ。

前回のtcpdumpはトランスポート層(Transport Layer)のやりとりを見ることができて、今回はアプリケーション層(Application Layer)を見ることができるわけですね。すてき。
ということは、次はなにを見るのか、、ばればれですね。

水曜日, 6月 29, 2005

atomをRSSに変換

こんなページを見つけました。
atomのURLを送信するとRSSに変換してくれます。

これを使って、wget~なんていうのをcronに登録すればうちのサイトもRSSに対応だ!なんて思ってました。
用途は主にmixiで日記の更新が反映されないことだったんですが、じつはmixiがこっそりatomに対応していました。なんかタイミング悪いですね。
今までRSSリーダーで読んでくれてた人もこれで安心!なんていおうと思っていたのに。。。

なのでこの計画はお蔵入り、と思ってたら今度はmixiのバグか、更新は表示されるけどそのリンクが正しくない!
僕がRSSに対応するのが早いか、mixiがバグを直すのが先か、勝負ですね。。。負けたい。

tcpdumpでパケットを見る

tcpdumpです。
インターフェイスを指定して、そこを流れるパケットをキャプチャーすることができます。

これをファイルに保存しておいて、stringsを使って中身を見ることができます。
まあ、本気で解析するにはちょっと使いにくいツールかもしれませんが、どんな感じでデータがやりとりされているかイメージがわきます。

ついでに妄想も膨らんでしまうので大変です。

火曜日, 6月 28, 2005

Debian GNU/Linux で tmpfs を使おう

というわけでtmpfsです。
tmpfsとはなにかというと、メインメモリを使うファイルシステムです。RAMディスクなわけですよ。

なので速い!(はず)
頻繁に読み書きするようなファイル(で、しかも一時的なもの)はここにおいておくとよいですね。

tmpfsのすごいところは、実際のメモリ上のサイズは動的に変化することです。なので、どれくらいのファイルを置くために、どれだけのサイズをマウントしようかなんて気にしなくてもいいです。なんて親切なんだ! まさにシステムの鏡ですね。


Debianの場合だと、ぼーっと、「次へ」、「次へ!」、「次へ!!」なんてインストールすれば最初から利用できます。
/dev/shm がそう。ここをそのままディレクトリとして使ってもよいし、生のデバイスを使ってるみたいで気持ち悪い人は普通にマウントして使うことも出来ます。
僕の場合はなんか、ファイルがもうあったので、そして多少面倒な気持ちもなきにしもあらずだったのでマウントしたりせずにそのまま使ってます。

月曜日, 6月 27, 2005

info を使おう

sar を使おうの問題、コメントいただいたおかげですっきりしました。ありがとさん。
しかし、ひとつ問題が。。。

自分でも「一行で書こう!」と思った時にdateコマンドを調べたんですよね。
だから、コメント見て「?? yesterdayなんてオプションは記憶にないぞ!」とか思ったわけです。
実際、manをもう一度見返してみても載ってません。

そこでinfoの登場です。
ばっちりのってました。やられた。
infoは長くなるのでついつい敬遠してあんまり見たことなかったんですが、これからはちゃんと読みます。。。反省を込めて。愛はこもってません、あしからず。でもちょっとひきこもりかも。山篭りなんて健康になれそうでよいですね。コウモリにも会えそうだし。ヤモリやイモリも、、、こう、もり あがりにかけたところで終わっておきます。

木曜日, 6月 23, 2005

Debian GNU/Linux で sar を使う

コンピュータの負荷を知るために、今まで
0 10 * * * vmstat 3600 24
こんな感じでcronを使っていました。
sarとは、システムの統計情報を出力するコマンドです。vmstatの親戚だと思ったらいいです。実際、下の方法でインストールすると iostatや、mpstatといった、stat兄弟もインストールされます。

まあ、これで十分なところもあるんですが、プロセスが常駐してるのがうっとうしくなってきたのでsarを使うことにしました。
sarでは、プロセス、メモリ、ディスク、ネットワーク(ソケット)、デバイス、割り込み要求(IRQ)なんかの統計値が詳しく出力されます。
プロセスごと(子プロセスを含んだり、含まなかったりできる)や、インターフェイスごとにも出力できるので障害の調査にも使えます。


使いかたは、
まず apt で sysstat をインストール。
後は統計値を見たいときにsarを実行すればいいです。


僕は不精なので、
--------------------------------------------------------
#!/usr/bin/perl

use strict;
use warnings;

my $time = time - 86400;
my $day = ( localtime $time )[3];
my $filename = sprintf '/var/log/sysstat/sa%02d', $day;
print `sar -A -f $filename`;
--------------------------------------------------------
こんなスクリプトをcronに登録して、毎日メールで送ってもらってます。
できれば一行でcronに登録したかったけど良いやりかたが思い付かなかった。月をまたいだ昨日の日付がとりづらい。エレガントな方法求む!


でも、ほんとのところはたいして見てないです。
cactiのグラフを見てれば大体概要はつかめます。世の中グラフィカルでないと。
問題がありそうだったら、sarの出力を調整してじっくり見たりすればよいですね。

金曜日, 6月 17, 2005

Debian GNU/Linux 3.1 Sarge

ついにDebianの新しいバージョンがリリースされました。
当日は、「米国時間で今日だから。。。」とか思って5時、6時くらいにそわそわしてました。
で、「おぉ〜〜」となったわけです。めでたい。

で、それ以来セキュリティーアップデートのインデックスが壊れていたんですが、やっと直ったみたいです。というか、リリースされたばかりだったのでアップデートがなかっただけかも知れませんが。
これでaptですっきりできます。

木曜日, 6月 16, 2005

ムームードメイン

これまではドメインを取るときにはお名前.comを利用してきました。
もうひとつ欲しくなったので安いと評判のムームードメインを使ってみることにしました。

これがなかなかいい感じです。
まず、単純にひとつのドメインあたりのお金が安い。素晴らしいですね。
次に、お名前だと有料サービスのWHOIS代行が無料です。だいたいが、こんな手間のかからないサービスは無料にするべきでしょ。納得ですね。
細かいところでは、ネームサーバを無駄に2つも登録しなくていいところもいいです。主要なサービスを冗長化していないのにネームサーバを冗長化する意味があるのか。というか、強制するのは変かと。

あとは、コントロールパネルもお名前より使い易いです。というか、お名前のインターフェイスは確実に標準以下です。
今度の更新時にはkumicho.netもムームーに乗り換えようと思ってます。


実はGMOと資本関係があるみたいですね。お名前.comは大丈夫なんだろうか。

月曜日, 6月 13, 2005

さくらインターネット

家のPCを移そうと思って、さくらインターネットに申し込みをしていました。
で、今日、請求書がきました。ほんとに請求書だけ。いや、まあいいんですけど。愛想ないなあ。

これで僕もサーバーのオーナーです。いや、いままでもそうだったのだけど、なんとなく雰囲気が。

ところで、なかなか、いろいろわかりにくいところもありました。
申し込みの時に、支払いの方法を振り込みか引き落としかを選ぶんですが、なんと会員のページからはクレジットカードが使えました。最初から教えてくれ。僕、カード好きなんですよ。
とある理由でメインバンクを替えようと思っていたので、どちらにしようか結構悩みました。で、結局振り込みを選んで、さっきコンビニに払いに行ったらお金が足りなくて恥もかきました。
ついでに言うと、最初の申請だから”ただ”だと思ってたIPアドレスが有料でした。びっくりですね。これは僕の勘違いな気もするけど。

まあ、結論をいえば、カードで支払いができてよかったし、IPアドレスも申請通り16個取得できたのでよかった。なんだか丸く収まった感じです。

と、安心していたらあとでこんなことになってしまいました。

金曜日, 6月 03, 2005

perlIO

PerlIOを使ってみました。すごい便利。
と書いてみて、そうかな?って気がしてきました。どちらかというと、クールかも。

gzipで圧縮されたデータ($buff)があるときには、こんな感じで解凍できます。
--------------------------------------------------
open FH, '<:gzip', \$buff or die $!;
$content .= $_ while ;
close FH or die $!;
--------------------------------------------------
1行目では変数をファイルハンドルとして開いています。
2行目でファイルハンドルから読み出されるデータは解凍されています。
簡単に言うと、PerlIOを使うと入出力の際にフィルタを適用できるわけです。プログラムから見たファイルハンドルはフィルタをかぶった疑似ファイルハンドルなわけですから、奥にいるのが変数なんかでもいいわけですね。でも変態だったらちょっといやな感じです。いないか。

と、書いて気がついた。
だとすると、と<$fh>にはもう性能差はないのかも知れませんね。昔は"直接"と"間接"だったわけだけど、今は両方間接になったはずだし。

ざっと調べてみたところ、
1. 文字コードの変換系(Shift-JIS ←→ UTF-8や改行文字の変更、MIMEなど)
2. 暗号系(CBCやMD5など)
3. 圧縮系(gzipなど)
の分野のフィルタがあります。


本当は上の例みたいに使うつもりはなかったんですが、ソケットとgzipフィルタの相性が悪かったので変数を開き直すなんておかしなことをやってます。

ただ、使ってみて意外といい気がしました。
これはインターフェイスの統一ですね。
どれもデータを受け取って変換して出力するだけなのに、モジュールごとにメソッド名はきっと違うでしょう。これを覚える必要がないのがすばらしい。頭の容量少ないんですよね。


ちなみに最初に”使ってみた”とか書いてますが、意識して使ってみたというだけで、みんな知らないうちに使っているのだった。。。

日曜日, 5月 29, 2005

Transfer-Encoding の chunked

HTTPプロトコル(protocol)の話です。
たぶん、かなりマニアック。

HTTPのヘッダーには「Transfer-Encoding」というものがあります。
どうやってコンテンツ部分を転送するかを指定するものです。サーバー側の環境変数でいうと「HTTP_TE」です。
特に値が指定されていなければContent-Lengthの数バイトがコンテンツとして転送されますね。

この値が「chunked」のときにはちょっと変わっています。
1. 最初の行の値が16進数で表した、これに続くコンテンツのバイト数
2. 上のバイト数が0ならここでリクエストの応答は終わりです。
3. 上のバイト数分のコンテンツ
4. 1に戻る
みたいな感じなので、「0」だけの行が出てくるまで読み続けるわけですね。

動的なコンテンツの場合にはパートごとに分けて作れるので便利なわけです。
ソケットを使って自分で読み取るプログラムをPerlで書いてみました。

---------------------------------------------------------------------
sub get_content {

my $sock = shift or die;
my $debug = shift;

my $header = '';
my $content_length;
my $chunked;
while ( <$sock> ) {
warn $_ if $debug;
$header .= $_;
$content_length = $1 if m/Content-Length: (\d+)/;
$chunked = 1 if m/Transfer-Encoding: chunked/;
last if m/^\r\n$/;
}

my $content = '';
if ( $chunked ) {
while ( <$sock> ) {
warn $_ if $debug;
last if m/^\r\n$/;
s/\r\n//;
my $content_length = hex($_) or last;
my $buff;
read $sock, $buff, $content_length;
$content .= $buff;
}
}
elsif ( $content_length ) {
my $buff;
read $sock, $buff, $content_length;
$content .= $buff;
}
else { die $header }

return wantarray? ( $content, $header ): $content;
}
---------------------------------------------------------------------

まあ、たまにはこんなこともしてみます。

金曜日, 5月 27, 2005

dnscache (djbdns) をやめよう

うちではDNS(のキャッシュサーバー)としてdnscache(djbdns)をローカルで使っていました。
ネットワーク越しにISPのキャッシュサーバーを使うよりは早いはず、と思っていたんですね。

そこで実際に応答の速度を計ってみると、、、なんと、ローカルの方が遅い!
といっても、ほとんど変わらないんですけど。断然早いと思っていたのでショックでした。
わざわざ自分で用意して、高負荷時にはもっと遅くなる可能性もある。なんて馬鹿らしいと考えて使うの止めました。
前に書いた、pop3の話でもそうですけど、管理の手間は極力少なくするほうがいいですしね。

ただ、キャッシュへの毒入れ(Cache poisoning)については多少不安がありますが。

木曜日, 5月 26, 2005

無料のPOP3サーバー(サービスとして)

ずばり、Gmailです!
でもよく考えたらYahooとかもやってますね。

そもそもなんでこんなことを言い出したのかというと、うちにはPOPサーバーがないんです。
Debianではデフォルトでインストールされないんですよ。そのほうがいいんですけどね。
まあ、それでも困らなかったんです。だって、メールボックスにあるファイルを直接読んだらいいですから。
ただ、それだとPCが増えたときに困るのもわかっていました。なので定番のPOPサーバーを探してインストールしようとしてたんです。そして衝撃が!

Gmailを使えばいいんだ!!

まだ普通っぽいですか?
ここのミソは”POPだけ使う”ことです。つまり、送信するときには自分で用意したSMTPを使うし、受信するときもこれを使います。そして、aliasを使ってGmailに転送します。
こうすると相手にはGmailを使っていることがわからない。自前でメールアカウントも用意できない程管理能力がない(または、貧乏)などと気づかれない!
これは、結構、すごいソリューションじゃないでしょうか。

利点は、
1. 対外的には自前で管理しているように見える
2. 内部的にもメーラーのPOPサーバーの設定をちゃんと見るような人間以外には気づかれない
3. 運用のコストがかからない
4. 専用のコンピューターを用意する必要がない(専用には用意しなさそうだけど)
5. もしPOPサーバーがLANの外側にあるなら、サーバー側の帯域の効率があがる(朝のピーク時を気にしなくていいから)
6. ディスクが少なくてもいい
7. Gmailはアカウントごとに2GB以上(しかも増え続ける)
8. そして、利用者が増えても増設の心配をしなくていい
9. おまけにバックアップも自動

気になる点は、
1. 安心(必要なものは自分で用意するべきなんて人が結構いる)
 → Google以上の稼働率を実現する自信がありますか? 僕はないです。
2. コンプライアンス
 → 第三者に情報を提供しないとPrivacy Policyには書いてあります。ただ、これをもって個人情報保護法案での情報の保護になるかはあやしい。ここから漏れるとは思えないけど。
3. 商用利用可能なのか?
 → これはちょっとわからないですね。誰か教えてください。

くらいでしょうか。全然問題ないですね。
激安メールシステムのコンサルタントができそうです。

水曜日, 5月 25, 2005

Filesystem Hierarchy Standard (FHS) について

FHSとはFilesystem Hierarchy Standardの略でして、Unixとその仲間たちのディレクトリやファイルの構成について決めたものです。
僕も経験があるんですが、Linuxを初めて触ったときってWindowsとディレクトリの構成が違ってて戸惑うんですよね。

おんなじことがUnix同士でもおきていて、それでこんな取り決めができたみたいです。
おおまかにはこんな感じ。

/ (ルートディレクトリ。根っこ。ここを切り倒せば木は倒れるわけですね)
├ /bin (基本コマンド。これがないとファイルも見れない)
├ /boot (起動に必要なファイル。下手にいじると再インストール)
├ /dev (デバイスファイル。なんでもファイルなUnixの真骨頂)
├ /etc (設定ファイル。rootになってする作業のほとんどはここをいじること)
├ /home (ユーザーのホームディレクトリ。ユーザーはみんな引きこもりなのでここから出られません)
├ /lib (共有ライブラリ。/binや/sbinのライブラリ、他のプログラムは別の場所のを使う)
├ /mnt (一時的なマウントポイント。さんざん乗っておいて、うまくいったら捨てられる)
├ /opt (追加アプリケーション。rpmとかdebとか)
├ /proc (プロセス情報など - Linux固有。ほんとになんでもファイル)
├ /root (root用ホームディレクトリ。王様は高台に住んでるわけですね)
├ /sbin (システム管理用コマンドなど。王様の兵隊たち)
├ /tmp (一時的なファイル。暴れたい時にはここで)
├ /usr (各種プログラムなど。ユーザーが使うアプリケーションなんかはここに)
└ /var (変更されるデータ。朝おっきくて、昼は小さい、暗くなるとまた大きくなるものなーんだ? 答え:影 下ネタ!?)

ほんとはもっと細かく決まってます。知りたい方はここのリンクからどうぞ。

まあ、これだけ分かればなんとなくすっきりしませんか?

火曜日, 5月 24, 2005

Debian GNU/Linux でSSLを利用する

SSLの設定です。
といっても openssl + Apache の場合ですのであしからず。

まずは乱数の種を作ります。
コンピュータでは完全な乱数(random)を作るのはなかなか難しいんですよね。それで乱数系列と同じ特性をもつ疑似乱数(pseudo-random)系列を生成するアルゴリズム(random number generator)が用意されてます。
ただ、アルゴリズムなので入力が同じなら当然結果も同じです。初期値を変えないと毎回同じ疑似乱数列が出力されてしまうわけですね。
そこで、種(seed)を用意するわけです。これは基本的になんでもいいんですが、ここでは/usr/binにあるファイル名を使います。
------------------------------------------------------
# openssl md5 /usr/bin/* > rand.dat
------------------------------------------------------
これで/usr/bin以下のファイル名とそのハッシュ値がrand.datに書き込まれます。

これを使って乱数を発生させて秘密鍵を作ります。
------------------------------------------------------
# openssl genrsa -rand rand.dat -des3 1024 > key.pem
------------------------------------------------------
"1024"は鍵の長さです。"-des3"は秘密鍵を暗号化する方法にTriple-DESを使うという意味です。

今度は秘密鍵を使ってCSR(署名要求 - Certificate Signing Request -)を作成します。しつこいですね。一度で全部作れよ!とか思います。ベルトコンベアなイメージです。
------------------------------------------------------
# openssl req -new -key key.pem -out csr.pem
------------------------------------------------------
国名(JP)、都道府県(Tokyo)、市区町村(Taito)、会社(*** Ltd.)、部署(system-1)を入力します。common nameにはSSLを使うドメインを入力します。あとの3つは何も入れなくてもいいです。
括弧の中は僕の使ったものです。部署は数字を入れておくと、あとでWebサーバを分散させるときに便利です。

あと、common nameにはワイルドカードが使える場合があります。
*.kumicho.net
のようなcommon nameにしておくとa.kumicho.netでもb.kumicho.netでも使える、といった感じです。便利ですね。
ただ、クライアントによっては「"*"と"a"が一致しない」なんて文句をいう場合があります。LDAPのクライアントはそう言ってました。IEやFirefoxは大丈夫みたいです。
あと、CAcertでは文句を言われなかったけど、Verisignなんかもそうなのかは知りません。

といった感じで作ったCSRを認証局に送れば証明書が送られてきます。証明書をcert.pemなんて名前にして保存。
Apacheの設定ファイルに
-------- sites-available/blogger --------------------
SSLCertificateKeyFile ssl/key.pem
SSLCertificateFile ssl/cert.pem
-----------------------------------------------------
なんて書けば使えるようになります。
起動時のパスフレーズの入力を省略したい方はこちら

ちなみに複数の証明書を使いたい場合には名前ベースではなく、IPベースのバーチャルホストを使わないといけません。
ApacheがSSLを使って接続するためには、どの証明書を使うか知るために名前を知らないといけない。けれど、そのHTTPリクエストの前にSSLでの接続が成立していなくてはいけない、なんてことが起こるからです。卵が先か、ニワトリが先か。。。

月曜日, 5月 23, 2005

Bookmarks Synchronizer を使う(FirefoxのExtension)

Bookmarks Synchronizerを使いましょう!
Web DAVの設定はこのためと言っても過言でないです。無茶苦茶便利です。

このExtensionは名前のとおり、ブックマークを同期させます。Firefoxを使っていればどこでも同じブックマークが使えるだけでなく、どこで更新してもそれが共有されます。
自宅で「このサイトは便利だなあ」とブックマークしておけば会社ですぐ見られるわけです。すばらしい。

使い方は、まずFirefox Extensionsのページに行きます。
BookmarksのカテゴリからBookmarks Synchronizerを選択してインストール。
設定を開いたら、HTTPSにチェックを入れて、サーバーの設定を書いていきます。
下にあるチェックボックスは最後にはチェックを入れず、上の3つはチェックするのがよいかと。

日曜日, 5月 22, 2005

Debian GNU/Linux で Web DAV を使う

WebDAV(Web-based Distributed Authoring and Versioning)を導入しました。
要はWeb(HTTP)を利用したファイルの共有です。実際にはHTTPの拡張として実装されています。

すでにApacheが起動していればほとんど手間がかかりません。

1./etc/apache2/mods-enabled/ にシンボリックリンクを作ってWebDAVの機能を取り込みます。これには専用のコマンドもあります。
---------------------------------------------------------------------------
# ln -s /etc/apache2/mods-available/dav.load /etc/apache2/mods-enabled/
# ln -s /etc/apache2/mods-available/dav_fs.conf /etc/apache2/mods-enabled/
# ln -s /etc/apache2/mods-available/dav_fs.load /etc/apache2/mods-enabled/
---------------------------------------------------------------------------
または
---------------------------------------------------------------------------
# a2enmod dav
---------------------------------------------------------------------------

2.WebDAVを使いたいDirectoryで機能を有効にします。下の"DAV On"がそうです。
-------- /etc/apache2/sites-available/default -----------------------------

SSLRequireSSL
DAV On
AuthName "Web DAV Area"
AuthType Basic
AuthLDAPURL ldap://ldap.kumicho.net/dc=kumicho,dc=net?cn
require valid-user

---------------------------------------------------------------------------

3.ついでに認証も付け加えます。実際にはほぼ必須です。

4.忘れがちなのがWebDAVで使うディレクトリに書き込み権限を与えることです。他のプログラムから操作する必要がなければ所有者を変えてしまいましょう。
---------------------------------------------------------------------------
# chown www-data /var/www/dav/
# chgrp www-data /var/www/dav/
---------------------------------------------------------------------------

5.最後にApacheを再起動します。
---------------------------------------------------------------------------
# /etc/init.d/apache2 restart
---------------------------------------------------------------------------

これでサーバーの設定は終わりです。
一応テストしたいときは、IEを開いて「ファイル」→「開く」とたどります。
「Webフォルダとして開く」にチェックを入れてURLを入力します。
あとは普通のフォルダのように利用できます。