iPod Touch で Cisco VPN やって、それだけで満足しているのもまた変な話でして。FreeBSD でもきっちりと Cisco VPN を使えるようにしましょう。
まぁ、iPod Touch で Cisco VPN の所でも書いたのだけど、Cisco ルータ側をいじる権限は僕には無いので何を利用しているのか全然解らないのです。ただ、単にアカウント情報をもらっただけ。
Windows 用のクライアントはあるみたいですが、今回は FreeBSD でやります。
それらしい ports は無いかしら?とか調べていたら /usr/ports/security/vpnc と言うのがありました。早速 make してインストールして起動してみましょう。あぁ。インストールのオプションはフルオプションつけたほうが良いかもしれません。認証のためのオプションだと思うのですけどねぇ。
/usr/local/etc/vpnc.conf に設定ファイルがあるのでこちらにアカウント情報を記述します。設定内容は書きませんが;-)。設定寺の問題点と言うか、難儀した所。 IKE Authmode hybrid と言う設定があると Cisco 側と無事に接続できないみたいです。なので、この行をコメントアウトしました。Cisco ルータとの認証にまつわる設定だと思うのだけどねぇ。この行があるとうまく接続できませんでした。
そして、VPNなんてのはずっと接続しておく必要は無いので、必要な時のみデーモンを起動するだけで十分でしょ。となるので、/usr/local/etc/rc.d/vpnc onestart とかして起動します。なんか、簡単に Cisco に接続してアドレスが降って来てしまいました(^^;;。
VPN が成功すると tun0 インターフェースが生えて来ます。ここに網内の IPv4 アドレスが付加されました。それにしても DNS が降ってこないのでやはり /etc/hosts に必要なホスト名は記述する必要はありますが、まぁ、いとも簡単に利用できてめでたしめでたし。と言う感じでしょうか;-)。
あー。一点。 /usr/local/etc/rc.d/vpnc onestop とかして vpncd を停止させるんだけど、tun0 が削除されないです。この後、もう一回 vpncd を起動すると tun1 を利用するようになってしまいます。なので、デーモンを停止した後は ifconfig tun0 destroy して、インターフェースを削除したほうが良いですねぇ。
ちょっとワケ有って二台の PC の間の速度計測などをしてみた。投入した PC は HP DL320G5p。OS は FreeBSD/amd64 7.0-RELEASE と FreeBSD/amd64 6.3-RELEASE。
DL320G5p は Broadcom の BCM5715C 10/100/100 PCIe Ethernet Controller が付いている。 if_bge ドライバで認識します。
この二台のサーバ間のトラフィックを計測する。と言うのが今回の検証。検証ツールとしては ports/net/pchar を使用。 pathchar もあるのだけど、こいつは amd64 では make できないのである。
と、言うことで行った検証は以下の通り。
1. 二台のサーバをクロスケーブルで接続し、その間を pchar で調べる。
2. 二台のサーバの間に Cisco1812J を設置し、サーバ間を pchar で調べる。
と、言うことで早速 pchar の結果を見ることにしてみましょう。
まずは 1. の結果から。
|
クロスケーブルで接続した場合 1.2Gbps の速度が出ているとこが伺えます。 NIC がすごいのか、はたまた if_bge のデバイスドライバがすごいのか。驚きの速度です。まぁ、うのみにはしていないのですけどね(^^;;。
続いて 2. の試験結果です。
|
Cisco1812J は 100Mbps のポートなので 1G はでないとしても半分の 50Mbps も出ていないと言う結果になりました・・。
サーバ側でのクロスケーブル接続って重要なんだなぁ。と解った瞬間なのでした・・。まぁ、pchar の値が的確な数値ではないとしても 1812J、もう少しがんばれー。と、声援を送りたくなるのも事実ですが;-P。
次回は 3750 を投入した値が掲載できれば良いな。と思ったりもしていますが;-)。
ports-current を追いかけていたら DSS が 6.0.3 になっていた。
過去のこのブログでも「動画配信。」と「DSS-5.5.4 の使い方。」と、二回ほど取り上げてきた。今回はその三回目で最新版についてお届けして参りましょう。
まずは、実際にストリーミングをご覧ください。既に YS-11 のストリーミングは無いので新しいのを用意しました。どこの線路が解るかしら?コメントに路線名を書いていただいても結構です;-)。
-> 電車からの風景 -> rtsp://qtss.icmpv6.org/train.sdp
この動画は大体二ヶ月位は配信できるように頑張ってみます。
さてと。ここに用意したサンプルのストリーミングですが、現在、MacOSX の QuickTime7 でしか、素直に再生できません。 WindowsXP 上の QuickTime でも再生できません。
コンテンツ自体は デジタルカメラで撮ったものを QuickTime7.5 の Pro でストリーミング用に変換したものです。Video Codec は H264。 Audio Codec は AAC と言う、標準的なもので、それぞれ ffmpeg と faad で再生はできるはずです。
FreeBSD 上の mplayer で再生を試みましたが、とあるオプションを指定しなければ見ることができませんでした。mplayer をお使いの方はコマンドラインから以下を実行してみてください。
|
“-fps” と言うオプションと -rtsp-stream-over-tcp と、言うオプションを付加しなければ再生できない。と、言うことが解りました。このオプションをつけると無事に再生できるようになります。
そもそも、RTP って UDP だったかなぁ?オプション的には TCP で流すぜぃ。って雰囲気っぽいんだけど・・。
DSS-5.4 ではこれらのオプションが無くとも再生できていたので DSS が 6.0.3 になってから色々と変わったのだろうとは思うのですが、まだ調査していません。暇をみつけて色々確認してみたいと思います。
ちなみに、コンテンツのほうは特に指定はありません。けど、DSS サーバの設定にもこれといったものは無いのです・・。余計な設定が無い(できない)というのはいかにも Apple らしいのですけど;-)。
最後にですが、DSS-6.0.3 の日本語メッセージを「ここ」に置いておきます。
最新版の DSS-6.0.3 ですが、もう少し調査が必要なことだけは確かです。
後、僕は Windows ユーザではないので Windows 上の QuickTime でどうして再生できないのかを深く追うことはしないと思います。あしからずご了承ください。
今、fon は LiveDoor と提携したのでバーゲンセールをやっている。
http://www.tsukumo.co.jp/fon/
IEEE802.11g/b の無線 AP が 1,000yen で買えるのでこれは買わない手はありません。僕は結局二個買いました。一個は自宅で、もう一個は移動時に iPod Touch のために使うことにしました。
本当は PCI GW-MF54G2 を買おうとしたのだけど流通していないし、売っていたとしても定価(6,980yen)でしか売っていないのでやめました。
と、言うことで fon の利用方法ですが、まず、何はともあれユーザ登録します。そうするとその時のユーザ ID とパスワードで他の人が設置した fon を利用することができるようになります。
さて、FON ソーシャルルーター La Fonera (ラ・フォネラ) ですが、僕は DHCP が動作しているネットワークに接続しました。そこで解ったことですが、
・FON_ で始まる SSID はみんなで利用できる 192.168.182.0/24 のネットワーク
・MyPlace で始まる SSID は自宅用のネットワークで 192.168.10.0/24 のネットワーク
と、言う、二つのネットワークが現れます。default Gateway は多分 DHCP で所得したアドレスになります。ただ、これは僕の家の場合だけかも知れませんけど。
なので、FON 自体は二つのネットワークをルーティングしていると言うことになりそうですね。それで自宅で利用する側の MyPlace 側はセキュリティが保たれている。
ちなみに FON_ で始まるネットワークはウェブ認証です。MyPlace で始まるネットワークは機器の裏にあるシリアル番号を WPA キーとして入力することによりログインできます。
さてと。これで僕は旅の時は FON と iPod Touch を持っていけばいつでもどこでもネットワークに接続できる環境ができるようになりました;-)。
ちなみに 1,000yen セールは 4/6 までです。
JailBreak をやめた iPod に「ソフトウェアアップグレード」したら SSH トンネルが使えないので imap4 を SSL 化する必要がでてきた。
と、言うことで自宅のサーバを imap4-SSL に対応にしてみた。
うちで動作しているサーバは FreeBSD の 6 系 STABLE で ports は 最新の ports-current を追いかけている。動作しているメール環境は sendmail+procmail と courier-imap。つまり、Maildir 形式を利用していることになります。
メールの送信はこの際やめておこう(つまり sendmail の SSL 化は止めておこうと言う意味です(^^;)。iPod Touch でもメールの送信が可能で SMTP サーバを設定する項目はあるのだけど、無線アクセスポイントを利用したときにメールを送信する可能性が有るのかと言えば、あんまりない・・。メールの送信は携帯でやることにしよう(^^;;。
と、言うことで imap4 サーバと pop3 サーバのみを SSL 化することにした。
さてと courier-imap を SSL 対応するのだけど、あまりにも簡単なので驚いた。sendmail+procmail で Maildir 形式に対応した後 ports から courier-imap をインストールするんだけど、courier-authlib と courier-authlib-base も合わせてインストールされます。
全部で以下がインストールされます。courier-imap ってどっかのバージョンで認証方法ががらっと変わったので設定方法も思いっきり変わりました。今回は courier-imap-4.3.0 についてです。
courier-authlib-0.60.2
courier-authlib-base-0.60.2
courier-imap-4.3.0,2
ふつーの imapd と pop3d は現在ではもう既に動いているのですが、インストールは ports を make install しただけで動き出します。すごいっ!! そして Maildir 形式にするには procmail もインストールして /usr/local/etc/procmailrc は以下のように一行だけ書く必要がるんだけど・・。
|
けど、そーすると sendmail.cf も procmail に対応する必要があるなぁ。/etc/mail/freebsd.mc に以下の行を追加して、/etc/mail で make を実行すれば新しい sendmail.cf と submit.cf ができますので、これで sendmail は MDA に procmail を利用して Maildir に配達てくれるようになるでしょう。
|
make install したらすぐに使える courier-imap だけど imapd の設定は一ヶ所だけ直しました。Thunderbird を使っているとセッションが足りないとか言われるので同一 IP から受け付ける imap のセッション数を増やす必要があります。以下の設定にすれば大丈夫。
|
続いて imap-SSL と pop3d の設定についてですが、こぉれもちょー簡単。結局なぁんもやること無く動き出してしまった。と、言うのは語弊があるんだけど /usr/local/etc/courier-imap/ の下の imapd.cnf と pop3d.cnf を書いてあげる必要があります。これは SSL の証明書を記述するファイルです。自分のサーバに合ったものに書き直してあげましょう。
二つのファイルが準備できたら後は以下のコマンドを実行します。
|
上記コマンドを実行すると /usr/local/share/courier-imap/ 内に imapd.pem と pop3d.pem と言う証明書が作成されます。後は /usr/local/etc/rc.d/ にある courier-imap-imapd-ssl.sh と courier-imap-pop3d-ssl.sh を実行して起動するだけ。あ、当然、/etc/rc.conf は編集してね;-)。
iPod Touch で接続する前に、まず Thunderbird などで SSL 接続できるか、また、証明書の塩梅を確認してみるのが良いでしょう。非常に簡単に iPod Touch 対応の imap-SSL サーバができてしまいました;-)。
と、言うことで認証のことを書くのを忘れてしました(^^;;。courier-imap の認証部分は courier-authlib がやってくれています。僕はメールを受信するユーザを作成しているので認証は /etc/passwd でやることになります。認証の設定は /usr/local/etc/authlib/authdaemonrc でやるのですが、/etc/passwd で認証するのであればどこも変更する必要はありません。
ただ、/etc/passwd の方ではメールを受信するだけのユーザの場合は shell の設定は /sbin/nologin にしておいたほうが安心でしょう。後は /etc/mail/alias を上手に使うと言う感じですかねぇ。
FreeBSD の ports を cvsup したら net-mgmt/net-snmp が 5.3.1_7 から 5.3.2 になった。
snmpd を再起動して、リモートのマシンもしくは localhost から snmpwalk で接続しても REFUSED され、接続できなくなってしまった。 cat /var/log/snmpd.log してみると接続してくれない状態が良く解るのであるが大体以下のログを出力している。
|
ちなみに、 /etc/hosts.allow の設定は 5.3.1_7 の時からしていたのと変更はない。snmpd : ALL : allow はコメントアウトして、snmpd : ALL : deny を付けている。後はアクセスを許可するネットワークやホスト、ドメイン名を allow している設定をしている。
でもって 5.3.2 にした途端に接続できなくなってしまった・・。何回か試行錯誤を繰り返した結果、以下の行を記述すれば接続できることを発見。
|
しかし、なぜに NULL アドレスを設定せねばならんのじゃ? snmpd が IP アドレスを正しく取れていないバクであることは明白であるような気がしてならない・・。とほほ・・。
かくして、自宅サーバは SNMP の取得が復活したでした。ふぅ。
前回のブログで iPod Touch を JailBreack したと書いた。でもってメールソフトは iPhone のファームから抜いて iPodTouch にインストールした。
メールソフトも利用できて大変嬉しいのだけど、うちのメールサーバは ssl に対応していないので POP もしくは IMAP4 の時に生パスワードが流れてしまう。
iPod Touch の性格上、野良 AP (そこいらに落ちているアクセスポイントのこと)を利用する場合も多々有るわけで、そう言うのを利用するとアクセスポイントを置いた人が tcpdump を仕掛けていないとも限らないし、ポートスキャンしてくるかもしれない。なので、POP/IMAP4 の時は是非とも暗号化して利用したいものです。
幸い、JailBreack した iPod Touch には ssh が入っているのでこれを利用して POP サーバ、もしくは IMAP4 サーバに ssh トンネルを掘ることが可能です。
と、言うことで簡単に ssh トンネルを掘るスクリプトを書いてみました。利用方法は以下の通り。
1. POP/IMAP4 サーバ上に自分のアカウントが存在し ssh ログインできること。
2. メールのアカウント設定で POP/IMAP4 サーバではなく localhost に接続するようにすること。
3. ターミナルから stun.sh が実行できること。
これだけです。まぁ、1. はちょっと敷居が高いかも。けど、それがクリアできれば特に問題は無いでしょう。以下の URL からダウンロードできます。
http://www.icmpv6.org/Prog/MacOSX/stun.sh
利用方法ですが、以下の通り。
1. コマンドオプションは三つ。s(start) t(stop) c(check)。
2. s オプションで Mail を kill してから ssh トンネルを掘りますが、接続できた時はパスフレーズを聞いて来るので入力。
3. t オプションで Mail と ssh トンネルのプロセスを殺します。
4. c オプションで Mail と ssh のプロセス番号を表示します。
注意点としては、ssh トンネルを掘る前に Mail が起動していると POP/IMAP4 サーバに接続できません。なので、s オプションの時に Mail を kill しています。c オプションで ssh プロセスの番号が Mail より若いことを確認します。
後、一回スリープしたら ssh セッションが切れるので毎回 t して s してあげる必要があります。
こんな所でしょうか。ダウンロードしたら stun.sh の上の環境変数にサーバ名とユーザ名を指定してください。default で localhost の port:143 を使うようにしています。
もしダウンロードした人がいたらコメントなど頂ければと思います。
うちの家は ADSL の固定 IPv4+IPv6 の /48 (IIJmio)と マンションタイプの B フレッツのマルチホームである。
最近、自宅のサーバのウェブサーバにアクセスが増えてきたので ADSL 側を 12Mbps から 47Mbps のフレッツ・モアIII と言うのに変えてみました。
しかし、モアIIIは品質悪いなぁ。ブツブツ切れまくりなんだけど・・。NTT 側でなんちゃらって機器を変えてもらったのだけどそれでも直らない。しょーがないので今までのに戻そうかなぁ・・。
ちなみに自宅のサーバは mpd で PPPoE して それを ipnat して自宅 LAN はプライベートアドレスで利用している。更にこのサーバは NIC がもう一枚刺さっていて、DHCP で マンションタイプの B フレッツのグローバルアドレスが付いているのだけど、IIJmio 側から入ってきたパケットはそっち出ていって(こっちが default route)、Bフレッツ側のパケットははやり Bフレ側に流さなければならないのでポリシールーティングが必要なのである・・。
こーいうことは絵が無いと、文章だけではまったく解らない。と言うことはよおーく知っているんだけどね(^^;;。
それにしても ADSL をなんとかしないとなぁ・・。
いっそのこと IPv6 を捨ててしまえば、IIJmio からさくらに乗換えて値段はうんとさがるし、FreeBSD での PPPoE やめてフツーの BB ルータでどうにでもなるので、やはりそう考えると、IPv6 は不要なものなのかなぁ・・。
僕は Core2Duo な MacBook を持っているんだけど、以前から MacOSX で納得のいってなかったのは、 MTA が IPv6 に対応していないこと。そー。MacOSX では Postfix が default で入っているのだけど、こいつが IPv6 に対応していないX-(。
なので最近は、FreeBSD の sendmail のバージョンがアップする度に MacOSX に sednamil をインストールしている。今回はそのインストール方法についてまとめて掲載してみよう。まぁ、一種の自分の忘却録みたいなモンだけどね(^^;;。
僕の手元には FreeBSD があるので MacOSX に最新版の sendmail をインストールするときには FreeBSD が必須となっています。以下、MacOSX に sendmail をインストールするときに必要なもの。
1. FreeBSD の /etc/mail 配下一式。FreeBSD STABLE などから tar で固めて持ってきましょう;-)。
2. /usr/ports/mail/sendmail/files/site.config.m4 と site.config.m4.ipv6
IPv6 対応にする sendmail にするためには以下のコマンドを打って site.config.m4 を作成すれば良いでしょう。
|
3. sendmail-8.14.1 のソースコード。
さぁ。準備は整いましたか?では続いて sendmail の build と行ってみましょうか。
1. MacOSX 上で sendmail のソースを展開します。
2. Build スクリプトを実行します。大体以下のような感じ。os と rel は uname -a コマンドを実行し、自分の MacOSX のバージョンに合わせます。
|
次に build が終わったらインストールしますがその前にディレクトリを掘って上げます。なお、Build install では mail.local をインストールしてくれないのでこれだけは手でインストールします。また、sendmail.cf を作成するために cf ディレクトリを /usr/share/sendmail/ 配下にコピーします。
|
以上で sendmail のインストールは完了です。
FreeBSD から /etc/mail 配下を持って来ているのでそれをそのまま MacOSX に展開します。/etc/mail 配下では bsdmake とたたくと m4 マクロから sendmail.cf を作成してくれることでしょう。
しかし、これだけでは sendmail が動作しないのが MacOSX です。sendmail が正しく動作するために環境を整える必要があります。
まずは NetInfo マネージャで sendmail が動作するユーザを登録します。これは FreeBSD の /etc/passwd、group ファイルと同じでいいでしょう。 以下の二つを NetInfo マネージャ から users と groups に登録します。
|
|
次に各種ディレクトリの整合性を取ります。sendmail 用のディレクトリを作成します。また、sendmail は自分が参照するディレクトリが 775 だと動かないのでそれを直してあげる必要があります。裏を返すと MacOSX は全然安全では無い OS。と言うことですね・・X-(。
|
さてと・・。最後の三つの chmod でディレクトリのバーミッションを変更していますが、これやると、一般ユーザから NetInfo マネージャが動作しなくなります(ユーザ情報の登録・変更などができなくなります)。怖いですねぇ・・。しかし、775 になっている OS はそーそー使いたくないものです。この際だから 755 に変更してしまいましょう。
NetInfo マネージャが使えなくなると困るので、ログイン画面から root でログインできるようにします。NetInfo マネージャで root にパスパードを設定してあげれば良いです。そうすれば、NetInfo マネージャを使いたい場合は、いつでも root でログインして利用することができます。
以上で sendmail のインストールは完了です。後はスタートアップスクリプトを書くだけです。まぁ、あれなんですけど、/etc/hostconfig から起動するようにしましょうかね。以下の行を /etc/hostconfig に書きます。
|
でもって起動スクリプトSendmail を用意しました。これを /Library/StartupItems/ に展開すれば、起動時に sendmail が起動するようになるでしょう。
さて、これで以上ですが、あなたも MacOSX で IPv6 な MTU の世界をお楽しみください;-)。
sendmail の設定でバーチャルホストを利用するには「/etc/mail/local-host-names に受信するドメインを登録しましょう。」ってのがほとんどなんだよねぇ・・。けど、まぁ、楽なのでええんですけど、送信時に問題があることが判明。
例えば、以下のファイルがあったとして、これを cat FILE | mail takachan@running-dog.net したとすると Reply-To: に指定したメールアドレスのドメイン名が sendmail.cf 内の DM に掲載されているドメイン名で上書きされてしまう。という、どうしようもない問題に遭遇するX-(。バーチャルドメインでのメールの送信時の問題ですね。バーチャルドメインのメールが受信できることだけで満足してたらいかんぜぉ。って感じ。
|
ドメイン名を上書きしてしまうのは Reply-To: ヘッダだけなので、あまり気にならない人とか気づかない人もいるのかな?
しゃーないので local-host-names を使わないバーチャルドメインの設定をするしかない。今回は VIRTUSER_DOMAIN_FILE 項を使って mc ファイルを書き直してみたい。
/etc/mail/freebsd.mc があるんだけど、この中の一部を以下のように修正。class{w} のバーチャルホストの設定を利用しないようにして class{VirtHost} を利用する。
|
この設定だけだと、sendmail.cf の DM が無くなるので、以下の行を更に追加。
|
以上、できたら make してでき上がり。sendmail.cf の Dj は自分の好みで編集するとして、ローカルホスト配信がもしかしたらエラーになるかもしれないので submit.cf の Dj も設定して上げれば問題はなくなることでしょう。
/etc/mail/virtdomains は、/etc/mail/local-host-names と同じ記述方法で特に問題はないでしょう。
あ、書いてないけど、/etc/mail/virtusertable については触れてませんけど、他のドキュメントとか読んでくださいね;-)。