postfix (Vine Linux)

postfixとは

電子メールサーバーソフト(MTA)で、よく使われているsendmailと互換性がある

postfixのインストール

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 ← スプールディレクトりを指定する。


mbox形式とMailDir形式の共存

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


▲ページ先頭へ

スポンサード リンク