ひとりごと

新しい記事:[1047]  古い記事:[1045] 表示単位 :

ついったー[おとなり日記] かがみさん Y.Kumagaiさん

2003/12/20 (土)

・ YahooBB用自宅サーバ

YahooBB回線用にFreeBSD機を余剰パーツで組み立てて設定してみました。てことで、下記はやったこと。ちなみに、使ったのは FreeBSD 5.2-RC1 #0 です。

dhclientの設定
/etc/dhclient-enter-hooks に
make_resolv_conf() {
    /usr/local/bin/fetchmail -c >/dev/null
    ipfw delete 10100 10200 10300 10500 10600
    ipfw add 10100 allow tcp from any to $new_ip_address 25 setup via $interface
    ipfw add 10200 allow tcp from any to $new_ip_address 80 setup via $interface
    ipfw add 10300 allow tcp from any to $new_ip_address 110 setup via $interface
    #ipfw add 10400 allow tcp from any to $new_ip_address 8080 setup via $interface
    ipfw add 10500 allow udp from any to any 123 via $interface
    #ipfw add 10600 allow udp from any 5000 to $new_ip_address in via $interface
}
を入れる。dhclientではアドレスを得たときに勝手に /etc/resolv.conf を書き換えてくれるのですが、書き換えてほしくないときに関数を上書きすることができるので、このタイミングを利用して fetchmail (ダイナミックDNSの更新)と ipfw の外から来る方向の穴あけ。 /etc/dhclient-exit-hooks というのもあるらしいのですが、こちらはアドレスを返却したときに呼ばれるのかと思っていたらそうではなくて、アドレス取得の手続きが完了してから呼ばれるのだそうです。よって ipfw delete はdhclient-enter-hooksの頭で記述。
NATルータの設定
覚え書きが役に立ちました(笑)。ただ少し違ったのは、明示的に指定していないにもかかわらず ps で確認してみると natd のオプションに -dynamic が付いてるんですねー。/etc/rc.d/ipfw を見てみると、rc.confにて ifconfig_xx="DHCP"となっている場合は勝手に付くようです。ふむふむ、なるほど。
個人的にはオプションが勝手に付くのはあまり好きじゃないのですが、オプションが付いてる事が見えるのと、探せばどこで勝手に付けているのかが分かるのでよしとしておきましょう。
ipfwの設定
上記二つで動作する・・・はずだったのですが、動作するタイミングが
  1. dhclientがアドレスを取得(このときipfwにルールを追加)
  2. ipfw設定用スクリプト動作(の先頭でipfw flushを実行)
の順番ですので、(1)で書いたルールが消えてしまいます。ipfw flushで消えないルールを書くのもありかと思いますが、後でハマるのも嫌なので 今回は /usr/local/etc/rc.d/ の下に /etc/rc.d/dhclient restart を実行するシェルスクリプトを入れてみました。もっとスマートな方法はきっとあると思いつつ(笑)
namedとsendmailとDHCPserverとその他諸々
ThinkPadサーバに順ずる(汗)
ドメインを取ってルータ機能とか電子メールを使えるようにするので結構大変かな~と思ったのですが、よく考えたら今使ってるThinkPadサーバとほとんど同じ構成にすればいいだけなので案外簡単でした(^^;)。
# 問題はこの機械で宿敵YahooBBのDHCPサーバからアドレスが取れるかどうか(汗)

□ 関連記事

[つっこみ]

新しい記事:[1047]  古い記事:[1045] 表示単位 :
※このページへのリンクは自由です。リンクの方法については[つっこみ]で表示されるページの最後をごらんください。
たかたに(takatani@mars.dti.ne.jp)