postfix
aliases
概要
- Sendmail 用のエイリアスを行う設定ファイル
- Postfix で設定ファイル(main.cf) に定義すれば,/etc/aliases ファイルを利用することも可能
- qmail などの MTA を利用している場合には無効
仕様
メール宛先のユーザ名: 実際に配送するユーザ名
bin: root
- bin 宛のメールは root へ転送
プログラムの起動
hoge: "|/usr/bin/programname"
- 特定のプログラムを動作
- fml など
info 宛のメールを test@example.com に転送
# vim /etc/aliases info: test@example.com # newaliases
- 複数に転送する場合には , 区切り
編集後反映
# newaliases
- 別に用意されているシステムで認識するデータベースファイル(/etc/aliases.db)に内容を反映させる
Utility
mailq
- メールのキュー情報の確認
postfix flush
- deffered メールキューに入ったメールをすぐに再送信する
postcat [ファイル]
メールの情報を表示
ヘッダ、内容から SPAM かどうか判断
# postcat -q [ID]
postlock
- メールボックスなどをロックして、特定のコマンドを実行する場合に使用
posftlog
- メールサーバで実行されている、UNIX システムログにメッセージを転送
postqueue
キューの確認
# postqueue -p
キューの一斉配信
# postqueue -f
削除
# postsuper -d [Queue ID]
キューにあるドメインを確認
# postqueue -p | grep '^[0-9A-F]' | awk '{print $7}' | sort | uniq -c | sort -n # postqueue -p | head -10
エラーログ
- 554 5.7.1 me@mydomain.com: Client host rejected: Access denied
- sasldb にユーザが登録されていないことが原因
Security
disable_vrfy_command = yes
- telnet 接続などで、
VRFY username
などと打つと、ユーザが存在する場合に OK を返してしまう。そのため下記設定を行い、上記コマンド実行不可にして、ユーザ情報を出さないようにする
- telnet 接続などで、
smtpd_banner = $myhostname ESMTP
- 使用 MTA、バージョン情報を非表示
- 脆弱性調べられて攻撃困るので、非表示にて対応
- telnet 接続でホスト名、Postfix がでなければ OK
smtpd_helo_required = yes
設定が完了し、最初に helo コマンド打たないと、下記が表示される
SMTP セッション開始時の要求
設定しておくことで、避けられるスパムもある
503 5.5.1 Error: send HELO/EHLO first
inet_interfaces
- SMTP 接続を待ち受けるネットワークインタフェースを指定
- 「all」にすると、すべてのネットワークインタフェースで接続を待ち受ける
- 送信専用なら
localhost
orloopback-only
にする
- smtpd_recipient_restrictions
- smtpd_sender_restrictions
- 第三者中継を確認するサイト