Sendmailのバーチャルドメイン設定

またまた新しいドメインを追加することになったので、ここいら辺でSendmailのバーチャルドメインの設定方法でもまとめておこう。ちなみに、これは「正解」の方法ではなくて、我が家の設定がそうなってる、っていうだけです。いくつも設定の仕方はあると思います。

ドメインを追加する作業と、そのドメインに属するユーザを追加する作業に分かれる。

まずはドメインを追加する。最初はDNSの設定から。追加するドメイン(ここではhogehoge.com)を/etc/named.confに追加する。

zone  "hogehoge.com" { 
	type master; 
	file  "hogehoge.com.zone"; 
};

をnamed.confの最後に付け足す。

次に/var/named/以下に上記で指定したhogehoge.com.zoneファイルを作る。


$TTL 86400
@	IN	SOA	machinename.watanet.com.  root.localhost (
			3 ; serial
			28800 ; refresh
			7200 ; retry
			604800 ; expire	
			86400 ; ttl
			)

	IN	NS	192.168.0.xxx

hostname	IN	A	192.168.0.xxx
mail	IN	A	192.168.0.xxx

machinename.watanet.com.はバーチャルでないドメインのDNSサーバのホスト名、xxxはDNSサーバのIPアドレス、hostnameはバーチャルサーバのホスト名、mailはバーチャルメールサーバのホスト名。なぜかMXレコードが無くてもいいんですね。

次にSendmailの設定。

/etc/mail/generics-domainsに追加するドメイン名を書き足す。

watanet.com
hogehoge.com

/etc/mail/local-host-namesにもドメイン名を書き足す。

watanet.com
hogehoge.com

ここでとりあえずsendmail.cfを生成しておきましょう。でsendmailのrestartも。

# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
# /etc/rc.d/init.d/sendmail restart

後は新しいドメインに追加するユーザの設定。

当然ながらユーザをuseraddしておく。

# useradd -g グループ名 -G グループ名 -d /home/ユーザ名 ユーザ名
# passwd ユーザ名 → この後、2回パスワードの入力を促される

次に、作成したユーザにバーチャルドメインのメールアドレスを割り当てる設定を行う。/etc/mail/genericstableと/etc/mail/virtusertableにユーザとアドレス(ドメイン)の対応をつける設定を書き足す。

/etc/mail/genericstableは、どのユーザがどのアドレス(ドメイン)を使うか、の設定を記述する。

user1 user1@watanet.com
user2 user2@watanet.com
vuser1 vuser1@hogehoge.com
vuser2 vuser2@hogehoge.com

ユーザIDとメールアドレスの間はタブでセパレートする。

/etc/mail/virtusertableはgenericstableの逆で、どのアドレスはどのユーザが使うのか、を指定する。

user1@watanet.com user1
user2@watanet.com user2
vuser1@hogehoge.com vuser1
vuser2@hogehoge.com vuser2

メールアドレスとユーザIDはタブでセパレートする。

そしたら以下のコマンドを打ち込めば完了!

# makemap hash /etc/mail/virtusertable < /etc/mail/virtusertable
# makemap hash /etc/mail/genericstable < /etc/mail/genericstable

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です