202 メールサービス

/ LPIC / Comment[0]
Postfixはsendmailと互換性を持ち、高速に動作し、設定が簡単な新しいMTA。

設定ファイル
MTA: /etc/postfix/main.cf
Postfix: /etc/postfix/master.cf

Postfixを構成する主なプログラムと役割
sendmail ローカルメールを処理
smtpd  外部配送
pickup  maildropキューを監視し、内部配送を処理
cleanup ヘッダの書き変えを行ってincommingキューに入れ、qmgrに通知する
gmgr  キューのメールを配送プログラムに渡す
nqmgr qmgrとほぼ同じ
master 全体の制御をするデーモン
bounce バウンスメールを処理

postconfコマンドを実行すると設定内容が表示される
# postconf
2bounce_notice_recipient = postmaster
access_map_defer_code = 450
access_map_reject_code = 554
address_verify_cache_cleanup_interval = 12h
address_verify_default_transport = $default_transport
address_verify_local_transport = $local_transport
address_verify_map = btree:$data_directory/verify_cache
address_verify_negative_cache = yes
address_verify_negative_expire_time = 3d
address_verify_negative_refresh_time = 3h
:

デフォルトから変更された項目だけ表示するにはnオプションを付ける
# postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
default_transport = error
inet_interfaces = loopback-only
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = BlackHawk, localhost.localdomain, localhost
myhostname = blackhawk.lab
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
readme_directory = no
recipient_delimiter = +
relay_transport = error
relayhost =
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes


postfixコマンドでPostfixを制御
構文: # postfix オプション

postfixコマンドの主なオプション
start スタート
stop ストップ
abort 強制停止
flush キューのメッセージを再送
reload 設定を再読み込み
check 設定ファイルの構文チェック




Sendmailは代表的なMTAの一つ。

設定は、/etc/mail/sendmail.cfと、/etc/mail以下にある複数のファイルで行う。
sendmail.cfの記述は複雑なので、通常はsendmail.mcファイルに設定内容を記述し、m4マクロを使ってsendmail.cfを生成するという方法をとる。

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

MTA間のアクセス制御設定
/etc/mail/access
 RELAY リレーを許可
 REJECT 受信を拒否
 OK 明示的に受信を許可
 DISCARD メールを破棄
Connect:localhost		RELAY
GreetPause:localhost 0
ClientRate:localhost 0
ClientConn:localhost 0
Connect:127 RELAY
GreetPause:127 0
ClientRate:127 0
ClientConn:127 0
Connect:IPv6:::1 RELAY
GreetPause:IPv6:::1 0
ClientRate:IPv6:::1 0
ClientConn:IPv6:::1 0
GreetPause: 5000
ClientRate: 10
ClientConn: 10
Spam:postmaster@ FRIEND
Spam:abuse@ FRIEND
Spam:spam@ FRIEND
reject@ REJECT
Connect:169.254 REJECT
Connect:192.0.2 REJECT
Connect:224 REJECT
Connect:255 REJECT

#特定のメールアドレスからのメールは拒否
spammmmmer@example.com REJECT

#特定のメールアドレスからのメールは破棄
blahblah@example.com DISCARD

#yahoo.comからのメールにはステータスコード550とメッセージを返して拒否
yahoo.com 550 ahoooooo


/etc/mail以下のファイルは、設定後にmakeやmakemapコマンドを使ってDBM形式のデータベースファイルに変換する必要がある。
/etc/mail/にMakefileが用意されている場合は、makeコマンドを実行することで自動でDBM形式に変換してくれる
# cd /etc/mail;make

ファイル毎個別にDBM形式に変換したい場合はmakemapコマンドを使う
# cd /etc/mail
# makemap hash access.db < access

最後にsendmailを再起動して適用
# /etc/init.d/sendmail restart


メールエイリアス
/etc/aliases
書式: 宛先アカウント: 受信ユーザ1,受信ユーザ2,受信ユーザn...
postmaster: root,srv
root: srv,admin

aliasesでできること
/path 指定したパスにあるファイルにメールを追加
|cmd 指定したコマンドの標準入力へメールを送る
user@domain 指定したメールアドレスへメールを転送
:include:/path 指定したファイルを読み込む

cameraに送られてきたメールは/usr/bin/cmdに渡す
mlに送られてきたメールは/etc/mail/mailistファイルに書かれているユーザ全てに転送
srvに送られてきたメールはhoge@gmail.comへ転送

camera: |/usr/bin/cmd
ml: :include:/etc/mail/mailist
srv: hoge@gmail.com


/etc/aliasesをいじった後はnewaliasesコマンドを実行して適応させる
# newaliases

ユーザのホームディレクトリに.forwardファイルを置くと、そこに記述されたアドレスに転送することが出来る
# vi /root/.forward
hoge@gmail.com
関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可