電子メールサーバーソフト(MTA)で、よく使われているsendmailと互換性がある
Vine Linuxではインストール時に自動的に組み込まれます。
/etc/postfix/main.cfを編集します
# vi /etc/postfix/main.cf
myhostname = mail.xxxx.com ← ホスト名+ドメイン名を指定します。
mydomain = xxxx.com ← ドメイン名を指定します。
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain $mydomainestination
mynetworks_style = subnet
#home_mailbox = Mailbox ← 本サイトではmbox形式の運用を行っているのでコメントアウトする。
#home_mailbox = Maildir/ ← 上と同様でコメントアウトする。
mail_spool_directory = /var/spool/mail ← スプールディレクトりを指定する。
procmailを使えば、/var/spool/mail以下に格納されたmbox形式とユーザのホーム上のMailDir形式の両方を混在させることができ、ユーザー毎にどちらにするかを選べます。
MailDir形式を使うユーザのホームディレクトリに.forwardと.procmailrcを作成して下記の記述をする。
% vi .forward
"|IFS=' ' && exec /usr/bin/procmail -f- || exit 75 #USERNAME"
% vi .procmailrc
VERBOSE=off
LOGFILE=$HOME/procmail.log
MAILDIR=$HOME/Maildir
DEFAULT=$MAILDIR/
/etc/postfix/aliasesを編集をします。
# vi /etc/postfix/aliases
root: USERNAME ← root宛のメールをUSERNAMEに転送します
webmaster: USERNAME ← webmaster宛のメールをUSERNAMEに転送します
設定ファイルを編集した後はreloadします。
# /etc/rc.d/init.d/postfix reload
/etc/postfix/main.cfを編集します。
# vi /etc/postfix/main.cf
smtpd_client_restrictions = permit_mynetworks, check_client_access hash:/etc/postfix/reject_client
/etc/postfix/reject_clientを作成します。
# vi /etc/postfix/reject_client
xxx.xxx.xxx.xxx reject ← IPアドレス指定でREJECT(拒否)します。
※IPアドレスをCIDR形式(例:xxx.xxx.0.0/16)で指定するには、postfix-2.1以上を使うか、iptablesでパケットフィルタリングします。CIDR形式ならば、うざいプロバイダからのアクセスをごっそり指定できて便利です。
また、iptablesのパケットフィルタリングならば、メールやウェブ、FTPなどのサーバーへの全アクセスを根っこから拒否できます。(参考:iptablesでフィルタリング)
postmapコマンドでreject_client.dbを作成します。
# /usr/sbin/postmap /etc/postfix/reject_client
設定を反映させます。
# /etc/rc.d/init.d/postfix reload
反映されたかどうかを確認します。
# /usr/sbin/postconf -n
pflogsummを使ってログ解析をします。結果はpostmasterへメール送信します。
pflogsummをインストールします。
# wget http://jimsun.linxnet.com/downloads/pflogsumm-1.1.0.tar.gz ← ダウンロードします。
# tar zxfv pflogsumm-1.1.0.tar.gz ← 解凍します。
# cd pflogsumm-1.1.0
# cp pflogsumm.pl /usr/local/bin/pflogsumm ← スクリプトをコピーします。
# chmod 755 /usr/local/bin/pflogsumm
# cp pflogsumm.1 /usr/local/man/man1/pflogsumm.1 ← マニュアルをコピーします。
# chmod 644 /usr/local/man/man1/pflogsumm.1
PerlのDate::Calcモジュールをインストールします。
# rpm -q -a | grep perl-Date-Calc ← perlライブラリが有るか調べます。
# apt-get install perl-Date-Calc ← 無ければインストールします。
メール送信スクリプトを作成します。
# vi pflogsumm-report.sh
#!/bin/sh
MAILLOG=`mktemp XXXXXX`
for log in `ls /var/log/maillog*|sort -r`
do
cat log << $MAILLOG
done
REPORT=`mktemp XXXXXX`
/usr/local/bin/pflogsumm --problems_first --verbose_msg_detail --mailq -d yesterday $MAILLOG < $REPORT
cat $REPORT | mail -s "`head -1 $REPORT` in `uname -n`" postmaster
rm -f $MAILLOG $REPORT
#
# chmod 700 pflogsumm_report.sh
# pflogsumm_report.sh ← テスト実行します。
cronを使って夜中の1時に自動実行させます。
# crontab -e
0 1 * * * /root/pflogsumm_report.sh