なんとかファイルサーバ、プリンタサーバ、ftpサーバ、nfsサーバ、Webサーバ等、家庭内サーバとしての最低限の機能は設定できました。しかし、これらの機能はすべてローカルなネットワーク内に閉じたものでしかありません。最終的には、インターネットへのアクセスをすべて、このサーバで中継し、通信費用削減、セキュリティ向上を狙いたいところです。とはいっても現状では、専用線で接続しているわけではなく、プロバイダへISDNダイアルアップルータでダイアルアップ接続しているだけです。常時接続環境や独自ドメイン取得なんてことは、近い将来には費用的に実現しないでしょう。こういう環境下でできるだけのことをしてみたいと思います。
必要な機能としては、以下のようなところでしょうか。
機能 | 概要 |
電子メール | fetchmailとsendmailかな。qmailとかpostfixなんてのもあるようですね。POPはqpopperですかね。 |
ニュース | leafnode+がよさそう。 |
WEBプロキシ | 息子用PCのアクセス制限をしたい。squidならある程度できそうかな。 |
時刻サーバ | xntpを設定すればいいのかな。 |
DNSサーバ | bindしかないのでしょうか。djbdnsとかdnrdというものがありました。 |
NATサーバ | やはりIP Masquaradeでしょうか。 |
DHCPサーバ | dhcpdでいいんですよね。 |
ウィルスチェック | Inter Scan Virus Wallが有名ですね。Sophos Anti-Virusというのが、個人利用は無償のようです。 |
NICの二枚刺しもしないといけませんね。
NAT、DHCP機能を除いて、一応動作する程度までの設定が完了しました。あとは、フレッツ・ISDNが開通したら、cronやdaemon機能を使って、バックグラウンドでメールやニュースを送受信したり、時刻合わせをするように設定を変更するだけです。
fetchmailの設定をしてみようとしましたが、デフォルトでは、fetchしてきたメールをsendmailに渡そうとするみたいです。うちのサーバにはまだ、sendmail(やその他のMTA/MDA)をインストールしてありません。正確には、sendmailはVine Linuxで入っているはずですが、設定が難しい(らしいと色んな本に書いてある)ので、まだ設定していません。
WEBでfetchmailをキーワードに検索して流し読みした時には、「sendmailが動作していなくても、直接メールスプールに書き込ませれば大丈夫」みたいなことが書いてあったような気がするのですが。
Vine Linuxには、vfetchmailというGUIツールがあるらしいのですが、どこにあるのか見つけられません(;_;)
# vfetchmailはVine Linux2.0ではなくなったそうです。
(2000.09.30)
このページを作ってから、あまり更新していませんでした。m(._.)m
sendmailに替えてpostfixをインストールし、フレッツISDN導入を機会にfetchmailを使い始めました。vfetchmailはなくても、fetchmailcfg(だったかな?)という設定ツールを使い(英語ですがなんとなく分かります)、出来上がった.fetchmailrcを直接編集するという方法で設定できました。
しばらく使っていて、たまに発生するヘッダの文字化けが気になっていたのですが、no mimedecodeを指定することで正常になりました。
sendmailは、Vine Linuxで入っているはずですが、設定が難しい(らしいと色んな本に書いてある)ので、設定していませんでした。sendmail自身は、おそらくもっとも多く使われているMTA(Mail Transfer Agent)だと思いますが、歴史が古いだけに機能が豊富すぎて、家庭内サーバ程度では却って設定が複雑すぎて、下手な設定をすると他のネットワークに迷惑をかけたり、セキュリティホールを作ったりする危険性があるということのようです。
sendmail以外のMTAでは、qmail、postfix、eximなどに熱烈なファンがいるようです。どれがいいかと迷っていたのですが、Vine Linxu2.1以降では、標準のMTAがsendmailからpostfixに変更になる予定ということを知り、postfixでいくことにしました。postfixをソースからmakeしてインストールする方法もある(こっちのほうが絶対に勉強にはなるはず)のですが、Vine Seedにpostfixのrpmがあったので、そちらを使うことにしました。そのほうが多分、将来Vine Linuxをバージョンアップする際にも容易でしょう。
postfixのrpmをインストールしようとすると、sendmailとぶつかっているという(ような(^_^;英語が弱いもんで)メッセージが出てインストールできません。sendmailをアンインストールしようとすると、今度はfetchamailがsendmailを使っているという(ような(^_^;以下同文)メッセージがでますので、--nodepsオプションをつけて無理やりsendmailをアンインストールしました。なんかへんなメッセージが出ていましたが、次にpostfixをインストールするとなんとかインストールできたようです。
postfixの設定は、難しい使い方をしなければ、/etc/postfix/main.cfの編集だけで済みます。ホスト名、ドメイン名、ネットワークアドレスを設定するだけでとりあえず動作しました。あとは、procmailの使い方がよく分からなかったので、mailbox_commandから外したこと、relayhostとしてプロバイダのメールサーバを設定しました。
最後に、linuxconfでpostfixを自動起動するようにしてお終いです。
relayhostとしてプロバイダ(rimnet)のメールサーバを指定していましたが、プロバイダ以外へのメール(@nifty宛)のリレーをしてくれませんでした。rimnetのWEBで確認してみると、From:ヘッダがrimnetのメールアドレスになっていないといけないようです。まぁ、仕方がないですね。
それではということで、relayhos設定を外してから、@niftyあてにメールを送信してみたところ、今度は、@niftyのメールサーバから、Unreturnable addressだからとリジェクトされてしまいました。これもまぁ、仕方がないですね。
両方とも、外部へ送信するメールのFrom:ヘッダが、非公式な家庭内ネットワークドメインのアドレスになっていたのが、問題の源のようです。
Windows98上で使っているMUA(Mail User Agent)のWinBiffで、送信メールのFrom:ヘッダを設定できるので、とりあえずはこれでいこうと思います。postfixの設定で、From:ヘッダを書き換えることができるかどうか、そのうち探してみたいと思います。
結局、Windows98上で使っているMUA(Mail User Agent)のWinBiffで、送信メールのFrom:ヘッダをプロバイダのメールアドレスに設定し、postfixではrelayhostを使わないような設定でいくことにしました。SPAMメール対策などを考えると、メールのリレーはなるべく利用しないのがいいんですよね。
その後さらに、あるメーリングリストで、メンバとして登録してあるアドレスとは異なるサーバからのメール投稿は受け付けてくれないところがあり、Windows98上で使っているMUA(Mail User Agent)のWinBiffの設定で、smtpサーバをプロバイダのsmtpサーバを指定することにしました。結局、postfixを使って外部へメールを送信するということは、実質的になくなってしまいました。(;_;) やっぱり独自ドメインを立ち上げないと、あまり面白くないようです。
postfixの情報は以下のURLにあります。
qpopperはVine Linux標準で動作していました。特別な設定もしないで動いているようです。
まずは手始めに、leafnode+のインストールをしてみました。leafnode+は、他の(ISPなどの)newsサーバから、クライアントとして、newsgroupデータを入手し、自マシン上ではnewsサーバとして動作するプログラムです。これがあれば、newsのフィード元などを考える必要はなく、アクセス可能なnewsサーバさえあれば、手軽にnewsサーバを作る事ができます。
インストールは、最新バージョンのtarボールを入手して、展開、makeするだけで簡単に実行プログラムができました。環境設定は、inetd.confの設定でちょっと間違えて手こずりましたが、終わってみれば特に難しいことはありませんでした。
まだ、cronに登録して自動実行はしていません。Linuxサーバ自体が24時間運用をしていませんので。
フレッツISDNの導入を前に、Linuxサーバの24時間運用のテストをしています。その一環として、leafnode+をcronで動かしてみました。半年前とは、リムネットのニュースサーバの環境が変わっていて、少々設定変更が必要でしたが、大きな問題もなく動作しています。一番大きな誤算は、ニュース流量が多くて、数時間掛かっても終わらなかったことくらいです。24時間固定料金になるまではおあずけということで、泣く泣くcrontabから一旦削除することにしました。
leafnode+のインストールは、tarボールからmakeするという方法で行いましたが、Vine Plusにrpmファイルが登録されているのを発見したので、rpmでインストールし直しました。といっても、leafnode+はまだ本格的な利用をしていないので、単にrpm -Uvhしただけですが。
もう大分前のことになりますが、フレッツISDNを導入した際に、leafnode+をcronで定期的に実行するようにしました。
leafnode+の情報は以下のURLにあります。
proxyサーバとして、squidのセットアップを行いました。squid自身のインストールは、Vine Linuxを2.0にアップデートしたら勝手に入っていましたので、セットアップといっても、実際にはsquid.confの編集程度です。
今回、squidをセットアップしたのは、キャッシュが主目的ではなくて、息子用PCからのインターネットアクセス制限を実現するためです。つまり、息子用PCからのインターネットアクセス(WEBサーフィン)の時間帯制限やアダルトサイト制限をこれで行おうというものです。本格的なアクセス制限の実現のためには、NIC2枚刺しのfirewallを構築しないといけませんが、ここでは簡略に、NIC1枚だけのproxyサーバを構築し、息子用PCのWEBブラウザの設定でこのproxyサーバを指定することにしました。将来、息子がここらへんの仕組みを理解してしまうと、アクセス制限なんて無力になってしまうのですが、その時はその時で、素直に息子の成長を喜びながら(^_^;、次の手を考えることにしましょう。
squidの情報は以下のURLにあります。
DNSはbindしか選択肢はないのかなぁ、面倒だなぁ、と思っていたら、ローカルアドレスしか使わないような家庭内LAN向きのDNS proxyを見つけました。dnrd(Domain Name Relay Daemon)というソフトです。DNS proxyサーバとして、プロバイダのDNSへの問い合わせ結果をキャッシュしてくれるだけでなく、ローカルドメインのマスターDNSとしても動作します。しかも、ローカルドメインのDNSとして動作するための設定ファイルが、hostsファイルと同じくらい簡単です。私のような家庭内LANにはちょうど適したDNSサーバだと思います。
dnrd自体のインストール・セットアップは簡単に出来ました。ftp、gunzip、tar xvf、make、cpでおしまいです。あとは、masterファイルを編集するだけ。
あとは、システム起動時にdnrdも自動的に起動する方法だけです。どこかのrcファイルに記述すればいいのでしょうが、どこに記述するのが適切なのか、私の知識では分かっていません。rc.localの最後くらいに追加すればいいのかなぁ。まだまだ勉強が必要ですね。現在は、rootになってコンソールから起動しています。daemonですから一度起動してしまえば、そのまま動作し続けています。
dnrdの起動は、rc3.dのなかで、networkのあとに起動するように設定してみました。これでいいのかどうか分かりませんが、一度立ち上げ直した時にはうまくいったようです。
最終的にはdnrdの起動・停止用のスクリプトファイルを作りたいのですが、まだシェルスクリプトファイルを作製するだけの知識が少なくて難しいですね。ぼちぼちと勉強していきたいと思います。一旦起動してしまえば、止めることはないので、特に必要性はないのですが。
dnrdのページには、rpmもあったので入手してインストールしようと思いましたが、なぜか、エラーメッセージが出てインストールできません。dnrdのページにはsrc.rpmもあったので、こちらからビルドしようとしましたが、こっちも途中が異常終了してしまいます。でも、/var/tmpにスクリプトファイルやdoc、manが残っていましたので、これらを手でコピーしました。これで、dnrdの起動・停止ができるようになりました。
dnrdの情報は以下のURLにあります。
xntpもVine Linux標準で入っていました。まだ常時接続環境ができていないので、xntpを常時動かしておくわけにはいきません。雑誌やWEBの記事を参考にして、ローカルクロックを基準時計とし、一日一回、公開ntpサーバにアクセスしてntpdateで時刻を合わせる設定にしました。
xntpもフレッツiSDN導入後、公開ntpサーバと常時時刻合わせを行うようにしました。
当面はダイアルアップルータのNAT機能で充分のようです。将来、アクセスネットワークがCATVやADSLなどに変わった場合に検討することにしましょう。
我が家ではDHCPは使っていません。必要になった場合にも、ダイアルアップルータのDHCP機能が使えます。
やまちゃんのほーむぺーじに戻る