<-- この数字画像はイラスト工房の素材を使っています。リンクバナー →
フロッピーディスク1枚で立ち上がるメールサーバー
---- HDが無くても動く postfix --- 自宅で簡単メールサーバー ----
---- 1FD-Postfix --- フロッピーディスク1枚で postfix を動かす(メモリ 12M でも動きます。)
100の質問
floppyfw-3.0.15 (Kernel 2.4.37.11) のfloppyfw-3.0.15.imgを使いました。(1.44M フォーマットです)
- 起動後は完全に RAMDISK(tmpfs) で動きます。HDD を汚しません。
- kernel 2.4.37-11、uclibc-0.9.28。
- vmlinuz と initrd.sq はそのまま使用。(ハードディスク版は initrd.sq に手を加えてあります。)
- add.ffw、モジュール関連、他、再調整。
postfix-2.2.10
以下のいずれかをダウンロードして、rawwrite でフロッピーを作ってください。
- PCMCIA_i82365_postfix.img
- PCMCIA(PCIC=i82365)対応のLANカード対応版。対応LANカードは、"ACCTON EN-2212、EN-2216"、"Allied Telesis LA-PCM"、"IO DATA PCLA/T" 等。
- ハードディスクはマウントできない。(IDEモジュールがないので。)
- postfix 付属。
- PCMCIA_yenta_postfix.img
- PCMCIA(CardBus)対応のLANカード対応版。
- 対応LANカードは、上記カードに加えて、IBM EtherJet。
- ハードディスクはマウントできない。(IDEモジュールがないので。)
- postfix 付属。
- PointEnabler_postfix.img
- ポイントエナーブラは、http://www.kiel.co.jp/project/linux/router/index_old.htmlから cardcfg.zip (作成者に感謝)を使用。(現在リンク切れ、御免。)
- ブートする前に LANカードを認識させてブートする。対応LANカードは少ない。PCIC=i82365であることが必要。
- ACCTON EN-2212、EN-2216、IO DATA PCLA/Tは成功例あり。
- PCMCIA関連のモジュール、アプリケーションは不要だが、当然、カードの抜き差しはできない。
- ハードディスクはマウントできない。(IDEモジュールがないので。)
- postfix 付属。
- VMWare_postfix.img
- VMWare対応版。VMWare上でフロッピーから起動する。(VMWareはフロッピーのイメージファイルからも起動可)
- initrd.sq に IDEモジュールを追加してあるため、ハードディスクからも起動可能。(DOSをインストールして、loadlin.exeで起動する等。ここでは詳細略。)
- ハードディスクから起動する場合、起動パラメーターはそれに合わせて設定すること。
- 当然、ハードディスクもマウント可能。ファイルシステムは vfatのみ。
- postfix 付属。
- ネットワークモジュールを追加、変更することで、デスクトップパソコンにも対応。
- PCMCIA_i82365_CF.img
- PCMCIA(PCIC=i82365)対応版。上記LANカードに加えて、PCMCIAフラッシュメモリマウント可能。
- initrd.sq に IDEモジュールを追加してあるため、ハードディスクから起動可能。(DOSをインストールして、loadlin.exeで起動する等。ここでは詳細略。)
- 旧 Thinkpad等、PCMCIAから起動可能な機種なら、PCMCIAフラッシュメモリから起動可能。
- いずれの場合も、起動パラメーターはそれに合わせて設定すること。
- もちろん、ハードディスクもマウント可能。ファイルシステムは vfat に加えて、起動後 ext2も可。
- postfix 無しだが、2枚目のフロッピーのルートに packagesディレクトリを作り、そこに、postfix-etc-min.bz2、postfix-2.2.10.ffw、post-postfix.ini を入れて、addon fd と打つと、postfixが起動します。
- PCMCIA_yenta_CF.img
- PCMCIA(CardBus)対応版。上記LANカードに加えて、PCMCIAフラッシュメモリマウント可能。
- もちろん、ハードディスクもマウント可能。
- initrd.sq に IDEモジュールを追加してあるため、ハードディスクから起動可能。(DOSをインストールして、loadlin.exeで起動する等。ここでは詳細略。)
- 旧 Thinkpad等、PCMCIAから起動可能な機種なら、PCMCIAフラッシュメモリから起動可能。
- いずれの場合も、起動パラメーターはそれに合わせて設定すること。
- もちろん、ハードディスクもマウント可能。ファイルシステムは vfat に加えて、起動後 ext2 も可。
- postfix 無しだが、2枚目のフロッピーのルートに packagesディレクトリを作り、そこに、postfix-etc-min.bz2、postfix-2.2.10.ffw、post-postfix.ini を入れて、addon fd と打つと、postfixが起動します。
- ハードディスクからの起動例(source=....... は状況に合わせて設定)
- loadlin vmlinuz initrd=initrd-h.sq init=linuxrc root=/dev/ram0 source=/dev/ide/host0/bus0/target0/lun0/part1
configの設定は 固定 IPになっています。以下、設定値です。状況に合わせて設定し直す必要があります。
- 158行 INSIDE_IP=192.168.0.96
- # OUTSIDE_IPと同じ値にしておく。INSIDE_IPを指定すると、/etc/hosts に登録されるので、その機能を利用しているだけ。実際の値は OUTSIDE_IPで設定される。
- 175行 OUTSIDE_IP=192.168.0.96
- # 固定IPの値。状況に合わせて設定。INSIDE_IPも同じ値にしておくこと。
- 176行 OUTSIDE_NETMASK=255.255.255.0
- 183行 DEFAULT_GATEWAY=192.168.0.1
- 186行 OUTSIDE_NAMESERVERS="192.168.0.1"
- 287行 HOSTNAME=mx
- 289行 DOMAIN=example.jp
当たり前の話ですが、インターネットに接続する場合は、ドメイン(MXレコード)を DNSに登録する必要があります。
ダイナミック DNS等も利用できます。(本題からはずれるので、詳細略。)
postfix を起動する場合、メモリは最低12M位必要です。
以下、postconf -n の結果を示します。
-
- berkeley_db_create_buffer_size = 2097152
- config_directory = /etc/postfix
- message_size_limit = 512000
上記以外はデフォルトの設定が適用されます。
さて、この postfix では、LAN内で、以下宛のメールを受け取ることができます。
root@mx.example.com 及び floppyfw@mx.example.com
これは、postfixの main.cfのデフォルトに従い、受け取るドメインが結果的に configで設定した $HOSTNAME.$DOMAIN となることによります。もちろん、これらは main.cfで設定変更可能。
また、postfixでは相手側から最初に接続を受けた得、相手側のIPアドレスの逆引き行うようです。ここで、DNSが正常に動かないと、反応が極端に遅く(数十秒)なります。逆引きできなくても、「できなかった」という結果がすぐに来れば、問題ないような感じだが、詳細不明。
→ なので、閉じた環境ではメールが送られてくるであろう相手先を hostsファイルに追記しておくこと。
起動後の postfix動作テスト
ホスト側でコマンドプロンプトを開く
telnet 192.168.0.96 25
220 good.mydns.jp ESMTP Postfix (Debian/GNU) と表示されれば成功。この表示に時間がかかる(数十秒)場合、dnsが機能していない可能性が高い。閉じた環境でよく起こる。
ehlo myWinXP
250-good.mydns.jp
250-PIPELINING
250-SIZE 512000
250-VRFY
250-ETRN
250 8BITMIME
と表示されれば、成功。
mail from:<hoge@foo.bar>
250 Ok と表示されれば成功。
rcpt to:<root@mx.example.jp>
250 Ok と表示されれば成功。
data
354 End data with . と表示されれば成功。続いて改行入力。
(空行入力)
test mail # メールの内容を入力
. # ピリオドと改行を入力。
250 Ok: queued as ........ と表示されれば、成功。
quit
221 Bye と表示されれば、成功。
ここで、postfixの端末に戻って
cat /var/mail/root
メールの内容(test mail)がヘッダを含めて表示されれば成功。さらに、
mailq
Mail queue is empty の表示を確認しておく。
以上、上記の通りに行かない場合は、自力で解決してください。問題なければ、ドメイン取得後 MXレコードをDNSに登録すれば、地球の裏側からでもメールが届くはずです。
インターネットに接続する場合、ドメイン名を取得、MXレコードをDNSに登録、固定グローバルIP、LAN内ならば25番ポートのフォワード(ポートマッピング)、セキュリティの再設定等、課題は残っております。
メールを送信(中継)する場合、SMTP認証(cyrus-SASL)にも対応していますが、設定は自力で行ってください。
もう、フロッピーを使う時代ではないのですが、2枚目のフロッピーを以下のディレクトリ構成で用意して、addon fd と打つと、アプリ等を追加できます。
この機能は keroppy のaddon スクリプトに少々手を加えたものです。以下、使い方の概要です。
- フロッピーのルートに、packages、ext ディレクトリを作っておきます。
- ルートディレクトリに *.lst ファイル置いておくと、その内容に応じて、ext内のファイルを配置してくれます。たとえば、
file.txt というファイルを extディレクトリ内に置き、ルートの file.lstに、
file.txt:644=/etc/postfix
と記述しておくと、/etc/postfix/ ディレクトリに file.txt をアクセスモード 644で配置してくれます。
- packagesディレクトリについては、bz2、ffw圧縮したものを解凍して、ルートからインストールしてくれます。
- その packagesディレクトリ内に post-*.ini ファイルがあれば、インストール後に実行します。
addon fdを繰り返せば、いくらでもアプリ等を追加できます。
ハードディスク等から起動する場合は、addon ディレクトリに同じ構成でファイルを入れておくと、起動時、同じようにインストールされます。