PostfixとDovecotを利用してVirtualMailBoxが利用できるメールサーバを構築する

2008-09-03
このエントリーをはてなブックマークに追加

メールサーバは構築したけど、メールアカウントごとにUNIXアカウントを作りたくない、一台のサーバで複数のドメインを管理したい、そういうニーズは多いはず。

というわけでがんばってみました。

PostfixとDovecotはyumでインストール。

yum -y install postfix
yum -y install dovecot

こんなのは簡単。それぞれの設定や起動等はきちんと丁寧に説明してくれている方々が多くいらっしゃるので割愛。あ、この段階ではドメインはひとつだけ(例としてhoge.comとしておきましょう)、という設定でいいです。アカウントを作る必要もなし。iptables等でFWを構築している場合はSMTPやPOPのポートを開いておくことを忘れずに。

 VirtualMailBoxを利用するには、Postfixのmain.cfに

virtual_mailbox_domains = $myhostname,foo.com
virtual_mailbox_base = /var/spool/mail/vhosts
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_minimum_uid = 100
virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
virtual_alias_maps = hash:/etc/postfix/virtual

を追記。「mydestination」は空白にしておくことを忘れずに。例として追加したドメインはfoo.comです。

/etc/postfix/vmailbox

にアカウントを追加していく。

hoge@hoge.com hoge.com/hoge/
foo@foo.com foo.com/foo/

という感じで、「メールアドレス ドメイン/アカウント/」という記述になる。これは、先ほど指定した「virtual_mailbox_base 」が保存先ディレクトリになっていて、そこから「ドメイン/アカウント/」というパスでVirtualMailBoxが作成されるということです。

で、必要なメールアドレスを記述したら

postmap /etc/postfix/vmailbox

でデータベースの更新をしておきましょう。これをしておかないとvmailboxへの変更が反映されません。vmailbox.dbの更新日時が変わっていることを確認しておきましょう。また、メールボックスは自動では作られないので、自分で作成しておきましょう。/var/spool/mail/vhosts/ドメイン/アカウント/以下に「cur」「new」「tmp」が必要です。所有者は5000にしておきましょう。

Postfix側の設定はコレで終わりです。ただ、SMTP認証やPopBeforeSmtp等の認証機能は追加しておきましょう。SPAMの踏み台にされるのも不愉快なものです。

ハセテツはSMTP認証を利用しているため、

saslpasswd2 -u ドメイン名 -c ユーザ名

も必要になります。SMTP認証用のユーザとメールアカウントは別々にしてあります。

Dovecotに関しては

/etc/dovecot-passwd

にアカウントとパスワードを記載します。

hoge@hoge.com:パスワード
foo@foo.com:パスワード

という感じで書きます。パスワードはopenssl passwdで出力作成されたものを記載しましょう。

書き終わったらサービスをリスタートして完成。実際に送受信して試してみましょう。

実際の自分の設定ファイルを読みながら記憶をたどりながら書いているのでもしかしたら抜けがあるかもしれません。おかしな箇所があったら指摘していただけるとうれしく思います。

Tags: ,

困ったときには原点に戻ろう

2008-07-21
このエントリーをはてなブックマークに追加

まぁたいしたことではないのですが、

「トラブル時にはログをみる」

これが如何に大事かというのを痛感しました。設定ファイルを見直す前に、ログを見直す。tailコマンド大活躍!

当然のこと過ぎて、ついつい忘れてしまう今日この頃です。油断大敵。

Tags:

シンボリックリンクの張り方

2008-06-30
このエントリーをはてなブックマークに追加

ln -s リンク先パス リンク名

/home/www/hogeへ/home/www/hoge2という名前でシンボリックリンクを張るには、

ln -s /home/www/hoge /home/www/hoge2

となる。これを知っているのと知らないのとので、運用負荷が大きく違う、と思っている。

Tags:

コマンドでCVSモジュールのチェックアウトを行う

2008-06-17
このエントリーをはてなブックマークに追加

cvs -d:pserver:ユーザ名@CVSサーバの場所:/var/cvs checkout モジュール名

クライアントで開発、CVSにコミット。で、そのソースコードをサーバ上にチェックアウトするときに使う。

いちいちクライアントからFTPやSCPでアップするのもよいが、さすがにめんどくさいのでこれ一発。で、あとは随時アップデートを行えば修正箇所の本番への反映もコマンド一発。

cvs -d:pserver:ユーザ名@CVSサーバの場所:/var/cvs update -d モジュール名

環境設定ファイルなんかは更新対象外としたいが、そのやり方はまた後日調べておこう。

Tags: ,

perlの実行ファイルへのパスを確認する

2008-04-01
このエントリーをはてなブックマークに追加

手を抜いてyumでperlをインストールしたらどこにインストールされたのかわからんようになってしまいました。ちゃんとソースコード落としてきてmakeしろっていうことなんですよね。

whereis perl

これでperlの実行ファイルへのパスが表示されます。

いやいや、いい加減学習しないとね。(←MySQLで前科アリ)

Tags: , ,

CentOSでネットワーク設定

2008-03-01
このエントリーをはてなブックマークに追加

/etc/sysconfig/network-scripts/ifcfg-eth0

NICが2枚あったらeth1になるんでしょうね。

ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.0.99
GATEWAY=192.168.1.1

上から、起動時に有効にするか。「none」で固定IP、「dhcp」でまんまDHCP、あとはIPとゲートウェイ。

その他、MACアドレスも記載されてますが、それはOSインストール時に勝手に書かれます。

Tags: ,

CentOSをネットワークインストール

2008-02-27
このエントリーをはてなブックマークに追加

いまどきのLinuxってディスクが5~6枚あるので、焼くのが大変だったんですよね。まぁ全部焼かなくてもいいのですが、つい全部焼いておいてしまう。

で、今回CentOSのマシンをセットアップするのにネットワークインストールなるものを試してみました。これがもうカンタンラクチン。

CentOSのisoをダウンロードする際に「CentOS-5.1-i386-netinstall.iso」(今回はCentOS5を使用)を選択してダウンロード。このISOをCDに焼きます。

あとはCDブート、途中まではいつもとおんなじです。

「Installation Method」、インストール方法の選択画面で「http」か「ftp」を選択するだけ。今回はftpを利用しました。

ネットワークの設定は自動にしちゃって、ftpサーバの指定は「ftp.riken.jp」(理研さん、ありがとうございます)。ディレクトリは「/Linux/centos/5/os/i386」、「Use non-anonymouse ftp」にはチェックを入れません。

ここ以降は通常のインストールのまんま。変わりはありません。勝手にファイルをダウンロードしてインストールしてくれます。

OSのメディアなんて何度も使うものじゃないから、これはすっごく便利です。

Tags: ,