初期設定
※以下の情報は、初期のRedHatやFedoraに関するものです。現在有効でないものも含まれています。
local-host-names
バーチャルホストで利用したいドメイン名を全て記述します。ホストそのものの名前も追加しておかないと、logwatch等のシステムが発行するメールが以下のようなエラーで処理されなくなることがあるようです。
config error: mail loops back to me (MX problem?)
関連パッケージの準備
-cyrus-sasl
-m4
-sendmail-cf
上記パッケージがインストールされていることを確認します(なければyumでインストール)。
# rpm -q cyrus-sasl
指定した領域名(lumber-mill.info)に対してユーザ(sendmail)を作成します。
# saslpasswd -c -u lumber-mill.info sendmail
外部ホストからsmtp(25番)ポートへのアクセスを許可する
※sendmail.cfを直接編集せずにsendmail.mcを変更して下さい。m4参照。
以下のように自マシンのグローバルIPをセットしないと、25番ポートがオープンになりません。
O DaemonPortOptions=Port=smtp,Addr=111.111.111.xxx, Name=MTA
ローカルホストからのメールも受信する必要がある場合は、以下のようにIPを明記しない設定にします。
O DaemonPortOptions=Port=smtp, Name=MTA
設定を変更する(m4)
sendmailの設定ファイルsendmail.cfは直接編集しません。まずsendmail.mcファイルを編集し、m4コマンドを使ってcfファイルを生成します。
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
smtpsとSMTP-Authを利用する
sendmail.mcを以下のように変更します。
1.SMTP認証を有効化。
2.証明書(/usr/share/ssl/certs/sendmail.pem)を指定
3.smtp(25番)ポートへの外部からのアクセスを許可
4.smtps(465番)ポートをオープン
48,49c48,49
< dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
< dnl define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
---
> TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
> define(`confAUTH_MECHANISMS', `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
56,59c56,59
< dnl define(`confCACERT_PATH',`/usr/share/ssl/certs')
< dnl define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
< dnl define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
< dnl define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
---
> define(`confCACERT_PATH',`/usr/share/ssl/certs')
> define(`confCACERT',`/usr/share/ssl/certs/ca-bundle.crt')
> define(`confSERVER_CERT',`/usr/share/ssl/certs/sendmail.pem')
> define(`confSERVER_KEY',`/usr/share/ssl/certs/sendmail.pem')
105c105
< DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
---
> DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl
123c123
< dnl DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
---
> DAEMON_OPTIONS(`Port=smtps, Name=TLSMTA, M=s')dnl
sendmail.cfを構築。
# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
証明書(/usr/share/ssl/certs/sendmail.pem)の作成(Fedora Core 3まで)。
# cd /usr/share/ssl/certs; make sendmail.pem
Fedora Core 4以降は以下のパスを指定。
# cd /etc/pki/tls/certs
# make sendmail.pem
sendmailの再起動。
# /etc/init.d/sendmail restart
saslauthdを起動する。自動起動もONに。
# service saslauthd start
# chkconfig saslauthd on
SMTP AUTH用のパスワードを設定する(UNIXユーザでログインできるので必要かどうか不明)。
# /usr/sbin/saslpasswd2 -u lumber-mill.info sendmail
Password: (パスワードを入力)
以上で完了です。
追記2006.9.14 Fedora Core 4では、saslの設定は必要ないかもしれません。UNIXユーザアカウントとパスワードでSMTP-Authを通過可能でした。
参考URL:
バーチャルアドレスの設定
バーチャルホストを利用するドメインを追加する。
xxx.com
バーチャルテーブルにアカウントを追加する。
user@xxx.com xxx.com_user
サーバを再起動して完成(DB再構築の必要なし)。
接続を拒否するドメインを設定
/etc/mail/accessに以下のように追加する。
example.com REJECT
サーバを再起動して完成。
Postfix設定メモ
以下はpostfixに関するメモです。sendmail移行前はpostfixも使っていたので、しばらくはここに併記します。
PostfixでSMTP-Authする
メールを送信する(SMTPにメールのリレーを頼む)際に認証を行います。パスワードを知っているメンバーのみ外部からメール送信を行うことができるようになります。
smtpd_tls_cert_file = /etc/postfix/server.pem
smtpd_tls_key_file = /etc/postfix/server.key
smtpd_use_tls = yes
smtpd_tls_session_cache_database = :sdbm:/etc/postfix/smtpd_scache
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_recipient_restrictions = \\
permit_mynetworks,permit_sasl_authenticated \\
,reject_unauth_destination(実際は一行)
smtps inet n - n - - :smtpd
-o smtpd_tls_wrappermode=yes -o :smtpd_sasl_auth_enable=yes
tlsmgr fifo - - n 300 1 tlsmgr
pwcheck_method: auxprop
# saslpasswd2 -c -u yourdomain.com username
(一人目を作成する時のみファイルの所有者変更が必要)
:# chown postfix /etc/sasldb2
Postfixでバーチャルドメイン
# less /etc/postfix/virtual
hoge.com virtual
info@hoge.com user1
moga.com virtual
webmaster@moga.com user2
# postmap hash:/etc/postfix/virtual
# /etc/rc.d/init.d/postfix reload
user1,user2はUNIX上に実在するユーザです。 ドメインの後ろのvirtualは適当な値(hash化するために便宜的に書くだけ) です。 $mydestination等が弄ってあると、リレーが上手くできなくなる(らしい) 。
Postfixエイリアス
# less /etc/postfix/aliases
postmaster: root
webmaster: root
root: username
全てのシステムユーザ(nobody,daemon..)を登録し、rootを(普段利用する)通常のユーザに対応付ける。データベースに変換するコマンドは以下のとおり。
# postalias /etc/postfix/alias
- タグ別一覧: [sendmail]
- チップス一覧
この記事は役に立ちましたか?
- EnglishWorm.com
- SinglesFan.com
- LmLab.net
- サイトマップ
- 運営者について