OpenDirectory で認証を一元管理すると、個別のホストにメールスプールがある必要は無く、一カ所のドメインの Mail Hub に集めるのがよい。このとき、個々のホストのメールサーバの設定は、Null クライアントと呼ばれる。
Leopard Server をドメインの Mail Hub にするには次の設定を必要がある。ただ、実際には GUI ツールの「サーバ管理」で対応する項目を変更する。
DNSサーバで、ドメイン名に対してMXレコードを設定する
example.com IN MX 10 leopard.example.com
ドメイン名を mydestination に追加する
/etc/postfix/main.cf
...
mydomain = example.com
...
mydestination = ... $mydomain
...
今まで認証してきたOSのNullクライアントの設定をしよう。
Sendmail の設定
伝統的にほとんどのシステムのデフォルトになっている。 設定ファイル sendmail.cf を直に編集するには骨が折れるので、 簡便に設定できる cf (?) のソース設定ファイル sendmail.mc を使うのが要である。
OS | sendmail | cfの場所 | OSTYPE | DOMAIN |
RedHat 6.2 | 8.11.6 | /usr/lib/sendmail-cf | linux | generic |
RedHat 7.2 | 8.11.6 | /usr/share/sendmail-cf | linux | generic |
RedHat 7.3 | 8.12.11.20060308 | /usr/share/sendmail-cf | linux | generic |
RedHat 8 | 8.12.8 | /usr/share/sendmail-cf | linux | generic |
RedHat 9 | 8.12.11.20060308 | /usr/share/sendmail-cf | linux | generic |
Fedora Core 1 | 8.12.11.20060308 | /usr/share/sendmail-cf | linux | generic |
Fedora Core 2 | 8.12.11.20060308 | /usr/share/sendmail-cf | linux | generic |
Fedora Core 3 | 8.13.1 | /usr/share/sendmail-cf | linux | generic |
Fedora Core 4 | 8.13.7 | /usr/share/sendmail-cf | linux | generic |
Fedora Core 5 | 8.13.8 | /usr/share/sendmail-cf | linux | generic |
Fedora Core 6 | 8.14.1 | /usr/share/sendmail-cf | linux | generic |
Fedora7 | 8.14.1 | /usr/share/sendmail-cf | linux | generic |
Fedora8 | 8.14.1 | /usr/share/sendmail-cf | linux | generic |
CentOS 4.x | 8.13.1 | /usr/share/sendmail-cf | linux | generic |
CentOS 5.x | 8.13.8 | /usr/share/sendmail-cf | linux | generic |
FreeBSD 6.2 | 8.13.8 | /usr/share/sendmail/cf | freebsd6 | generic |
NetBSD 3.1 | 8.13.5.20060614 | /usr/share/sendmail | bsd4.4 | generic |
Solaris8 | 8.11.7p3+Sun | /usr/lib/mail | solaris8 | solaris-generic |
Solaris9 | 8.13.8+Sun | /usr/lib/mail | solaris8 | solaris-generic |
Solaris10 | 8.13.8+Sun | /etc/mail/cf | solaris8 | solaris-generic |
取り敢えず、今日の時点の最新パッチを当てたり、当てなかったりの状態なので、異なって場合もある。
sendmail.mc の設定
/etc/mail/sendmail.mc
include(`/usr/share/sendmail-cf/m4/cf.m4')
OSTYPE(`linux')
DOMAIN(`generic')
# 上の3行は、システムに応じて変更
FEATURE(`no_default_msa')
FEATURE(`nullclient', `example.com.')
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')
Null クライアント設定で、エンベロープ/ヘッダの発信者/受信者ともに example.com ドメインにマスカレードする。 ただし、ヘッダの発信者/受信者のrootユーザのみ除外される。 (rootも対象にする場合、generic.m4 ファイル内の EXPOSED_USER を変更すればよい)。 かつ、リモートアクセスを受けない。
sendmail.cf の生成
m4 を使って生成する。 Solarisだと companionパッケージのGNU m4を使った方(/{opt,usr}/sfw/bin/gm4)がよい。
# ${M4} /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
sendmail の起動
RedHat/Fedora/CentOS/Solaris8/9の場合
# /etc/init.d/sendmail restart
FreeBSD 6.2
# grep sendmail /etc/rc.conf
sendmail_enable="YES"
# /etc/rc.d/sendmail restart
NetNSD 3.1
# grep sendmail /etc/rc.conf
sendmail=YES
# /etc/rc.d/sendmail restart
Solaris10の場合
# svccfg -s sendmail setprop config/local_only=false
# svcadm refresh sendmail
# svcadm restart sendmail
メールの配送確認
これで、root, 一般ユーザ, 不明ユーザでメールを出して、戻されること無くMail Hub 内で処理されればよい。
# date | mailx -s Test root
# date | mailx -s Test user
# date | mailx -s Test unknown
0 件のコメント:
コメントを投稿