FedoreCore6 postfixテスト

<< トップページへ

概要

一 番難しいのがテスト(検証)ではないかと思います。仮定に基づいてテスト方法を考えて検証して結果をフィードバックする。書くのは簡単なんですが、なかな か思うよ うにいきません。もし変な部分を見つけたら連絡ください。

postfixのテスト作業用スクリプト

まず main.cf や master.cf 等をいじったあとはリロ−ド、再起動しないと設定が反映されません。多数のソフトが動作しており設定を反映させるための再起動が 面倒なので下 のようなスクリプトを作成してみました。
$ vi restart-all-mail ←postfix関連ソフト再起動のためのスクリプト作成

############################################################
#!/bin/csh

/etc/init.d/saslauthd restart
service dovecot restart
/etc/init.d/postfix reload
/etc/init.d/postfix restart
service clamd.amavisd restart
/etc/rc.d/init.d/amavisd restart

echo "#################################"
lsof -i:25
lsof -i:587
lsof -i:465
lsof -i:995
lsof -i:10024
echo "#################################"
sh /usr/local/noip-2.1.1/redhat.noip.sh restart
/usr/local/bin/noip2 -S
echo "#################################"
host -t mx hoge.sytes.net

############################################################

# chmod 777 RELOAD-postfix

実行してみるとこんな感じです。
# restart-all-mail

saslauthd を停止中:                                         [  OK  ]
saslauthd を起動中:                                         [  OK  ]
Dovecot Imap を停止中:                                      [  OK  ]
Dovecot Imap を起動中:                                      [  OK  ]
postfix を再読み込み中:                                     [  OK  ]
postfix を停止中:                                           [  OK  ]
postfix を起動中:                                           [  OK  ]
amavisd を停止中:                                           [  OK  ]
amavisd stopped
amavisd を起動中:                                           [  OK  ]

clamd.amavisd を停止中:                                     [  OK  ]
clamd.amavisd を起動中:                                     [  OK  ]

#################################
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
master  23781 root   11u  IPv4 588163       TCP *:smtp (LISTEN)
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
master  23781 root   14u  IPv4 588177       TCP *:submission (LISTEN)
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
master  23781 root   17u  IPv4 588180       TCP *:smtps (LISTEN)
COMMAND     PID    USER   FD   TYPE DEVICE SIZE NODE NAME
dovecot   23657    root    8u  IPv6 587759       TCP *:pop3s (LISTEN)
pop3-logi 23670 dovecot    1u  IPv6 587759       TCP *:pop3s (LISTEN)
pop3-logi 23671 dovecot    1u  IPv6 587759       TCP *:pop3s (LISTEN)
pop3-logi 23672 dovecot    1u  IPv6 587759       TCP *:pop3s (LISTEN)
COMMAND   PID   USER   FD   TYPE DEVICE SIZE NODE NAME
amavisd 23687 amavis    5u  IPv4 587865       TCP hoge.sytes.net:10024 (LISTEN)
amavisd 23753 amavis    5u  IPv4 587865       TCP hoge.sytes.net:10024 (LISTEN)
amavisd 23754 amavis    5u  IPv4 587865       TCP hoge.sytes.net:10024 (LISTEN)
#################################
No noip2 processes active.

Configuration data from /usr/local/etc/no-ip2.conf.
Account hogejp@yahoo.co.jp
configured for:
        host  hoge.sytes.net
Updating every 30 minutes via /dev/eth0 with NAT enabled.
#################################
hoge.sytes.net mail is handled by 5 hoge.sytes.net.
SASLが使えるかどうかの確認にはこのHPにある tpplain_sasldb2.sh.txt が非常に有効です。
http://www.aritia.org/hizumi/dsl/page_27.htm
実在のユーザ名で実行するとSASLDBからアカウントが消されてしまうので注意してくださ い。
# mv tpplain_sasldb2.sh.txt tpplain_sasldb2.sh
# chmod 777 tpplain_sasldb2.sh

# tpplain_sasldb2.sh
test@hoge.sytes.net: userPassword
hoge@hoge.sytes.net: userPassword
Trying 230.186.6.48...
Connected to hoge.sytes.net (230.186.6.48).
Escape character is '^]'.
220 hoge.sytes.net ESMTP Postfix

EHLO hoge.hoge.sytes.net
250-hoge.sytes.net
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN

250 8BITMIME
AUTH PLAIN XXXXXXXXXXXXXXXXXXX
235 Authentication successful
QUIT
221 Bye
Connection closed by foreign host.

#
235 Authentication successful
Test Ok! Congratulations.
test@hoge.sytes.net: userPassword
hoge@hoge.sytes.net: userPassword

クライアントの設定


テスト用のメールソフトの設定をします。私は普段は mozilla-mail を使用しているのですがクライアントのテスト用にはOutlook Expressを使用しました。設定は下のようにしてください。送信サ−バ−の設定を自宅サ−バ−としポートを465番とします。これで postfix dovecot のテストをする環境が整いました。

OEのメイン画面から、「ツール」、「アカウント」で使用するアカウン トのプロパティを開く。←amavisd-new起動

「サーバー」タブを開く。

送信メールサーバーの、「このサーバーは認証が必要」にチェックマーク を入れる。
設定ボタンを押すと、ログオン情報の設定ができる。

詳細設定タブで、「サーバーのポート番号」の「送信メール (SMTP)」を465に、その下の、「このサーバーは認証が必要セキュリティで保護された接続(SSL)が必要」にチェックマークを入れる。
同じように受信メールの方(POP3)は995にしてやはり「このサーバーは認証が必要セキュリティで保護された接続(SSL)が必要」にチェックマーク を入れる。←amavisd-new起動

TLSが有効になっていればOEを起動するとこんな表示が出ます。
  参考:sylpheedの設定


sylpheedでは「SMTPポートの指定」でSMTPS465番、 Submission ポート587番のどちらでも使用できるようです。
送信ポートを465使用の場合は「SMTPの接続にSSLを使用」を選 択でOKです。サブミッションポート587の使用の場合は「SSLセッションの開始に STARTTLSコマンド使用」を選択します。
いずれの場合も受信側(POP3)は「POP3の接続にSSLを使用」を選択します。

ちなみにHPで説明している様に設定した場合でかつ後者の場合は
Submission Portで、SSL(SMTP over Starttls)で対応となるはずです。

ウイルス検出テスト

次にウィルスメールチェック確認をしてみます。テスト用ウイ ルス をdownloadしてメールに添付して自分宛に送信してみて、ウィルス検出できることを確認します。うまくいけば下の様なリジェクトした旨のメールが受 信できます。
# wget http://www.eicar.org/download/eicar.com ← テスト用ウイルスのダウンロード
# wget http://www.eicar.org/download/eicar.com.txt ← テスト用ウイルスのダウンロード
Begin forwarded message:

Date: Fri,  5 May 2006 17:29:48 +0900 (JST)
From: "Content-filter at hoge-M.hoga.sytes.net" <postmaster@hoge.speedster.sytes.net>
To: <virusalert@hoga.sytes.net>
Subject: VIRUS (Eicar-Test-Signature) in mail FROM [219.106.20.80] <hoge@hoga.sytes.net>

A virus was found: Eicar-Test-Signature

Banned name: multipart/mixed | application/octet-stream,.asc,eicar.com
Scanner detecting a virus: ClamAV-clamd

Content type: Virus (8,0)
Internal reference code for the message is 02349-01/2FTAgPvcyG05

First upstream SMTP client IP address: [219.158.29.80]
  ntt8-ppp1096.east.sannet.ne.jp
According to a 'Received:' trace, the message originated at: [219.158.29.80],
  hoge-M (ntt8-ppp1096.east.sannet.ne.jp [219.106.20.80])

Return-Path: <hoge@hoga.sytes.net>
Message-ID: <20060505172947.452e075b.hoge@hoga.sytes.net>
X-Mailer: Sylpheed version 2.0.4 (GTK+ 2.8.17; i386-redhat-linux-gnu)
Subject: VIRUS-TEST
Not quarantined.

Notification to sender will not be mailed.

The message WAS NOT relayed to:
<hoge@hoga.sytes.net>:
   250 2.7.1 Ok, discarded, id=02349-01 - VIRUS: Eicar-Test-Signature

Virus scanner output:
  p002: Eicar-Test-Signature FOUND

Return-Path: <hoge@hoga.sytes.net>
Received: from hoge-M (xxxxxx.xxxx.xxxx.co.jp [219.158.29.80])
        by hoga.sytes.net (Postfix) with ESMTP id 77FCNLH838
  
  リジェクトメール確認用のスクリプト
#!/bin/csh
echo ""
echo "Mail reject log"
echo ""
cat /var/log/maillog.4 /var/log/maillog.3 /var/log/maillog.2 \
    /var/log/maillog.1 /var/log/maillog | \
grep 'reject:' | awk -F":" '{print $1,$2,$4,$5,$6,$7,$9,$10}'

第三者中 継テスト


最低限のテストとして第三者中継チェックテストをしなければ なりません。これは読んで字のごとくで、あなたのサーバーを勝手に使ってメ−ルを送ろうとする輩が世の中には存在します。その悪意を持った人達の攻撃に サーバーが耐えることができるかのシュミレーションをするのです。http://www.rbl.jp/  ここの第三者中継チェックの部分をクリックするとテストが始 まります。すこし時間がかかりますが辛抱して待ちましょう。このテストは 中継テスト その0〜中継テスト その19 まであります。すべてが終わって下のような表示されればOKです。


接続を閉じています...

>>> QUIT
<<< 421 Error: too many errors

第三者中継テストの結果

全てのテストが行われました, no relays accepted.

ここまででやっと基礎的部分が終わりました。後は実際にメールを送信してテストを行います。続く...


配信テスト時の関連設定

   確認中の部分がありますので参考としてくださ い。管理人としても完全に整理されて いない部分もあります。何か疑問点があれば御指摘をいただけるようにお願いします。
通信の安全のためSSL/TLSは必須として書いています。

注 意すべきは自宅のメール送信サーバーからISPのメールサーバーにメールを送信(中継)してもらう場合の手続きはメールソフトでメールを送信するの とまったく同じものであることです。

○:Outbound Port25 Blocking有、経由有
△: Outbound Port25 Blocking無、経由有
×: 経由無

送信元
クライアント側の契 約ISP Outbound有無と経由 自宅サーバー側の契 約ISP Outbound有無と経由 対策設定
(1)他ドメインクライア ント

Outbound Port25 Blocking有経路

Outbound Port25 Blocking有経路
relayhost = [mail.boke.ne.jp]

#クライアント自宅サーバー間
#SMTP Authを有効にする。
#誰でも中継してあげる訳ではないよ私のサーバーの
#ユーザーか確認してからだよ!
smtpd_sasl_auth_enable = yes

#リレ-制限の設定
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination


#TLSの設定(465)
#
セッションの暗号化により、SMTPメールやSASL認
#証で伝送される情報が保護されます。
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/certs/server.pem
smtpd_tls_key_file = /etc/postfix/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
smtpd_tls_loglevel = 1


#自宅サーバーISP間
#SMTP Authを有効にする
#私はあなた(ISP)の契約者だからメールをあなたの
#サーバーで中継してください。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_type = cyrus

#submissionポートを使用(587)
submission inet n       -       n       -       -       smtpd
        -o smtpd_etrn_restrictions=reject
(2)他ドメインクライアント
Outbound Port25 Blocking無

Outbound Port25 Blocking有
#relayhostを設定して全てのメールを自分が契約し
#ているISPのSMTPサーバに中継する。
relayhost = [mail.boke.ne.jp]

#SMTP Authを有効にする。
smtpd_sasl_auth_enable = yes

#リレ-制限の設定
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination


#TLSの設定(465)
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/certs/server.pem
smtpd_tls_key_file = /etc/postfix/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
smtpd_tls_loglevel = 1


#自宅サーバーISP間
#SMTP Authを有効にする
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_type = cyrus

#submissionポートを使用(587)
submission inet n       -       n       -       -       smtpd
        -o smtpd_etrn_restrictions=reject
(3)他ドメインクライアント relayhost = [mail.boke.ne.jp]

#SMTP Authを有効にする。
smtpd_sasl_auth_enable = yes

#リレ-制限の設定
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

#TLSの設定(465)
smtpd_use_tls = yes
smtpd_tls_cert_file = /etc/postfix/certs/server.pem
smtpd_tls_key_file = /etc/postfix/certs/server.key
smtpd_tls_session_cache_database = btree:/etc/postfix/smtpd_scache
smtpd_tls_loglevel = 1


#自宅サーバーISP間
#SMTP Authを有効にする
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_type = cyrus
(4)自宅-自宅 × × relayhost = [mail.boke.ne.jp]
mynetworks_style = host

外部から自宅サーバーを使用した場合のメールログの例

(1)の場合の例

Jul 28 11:24:13 hoge postfix/smtpd[25605]: setting up TLS connection from i60-47-179-241.s05.a003.ap.plolog.or.jp[60.47.179.241]
Jul 28 11:24:13 hoge postfix/smtpd[25605]: TLS connection established from i60-47-179-241.s05.a003.ap.plolog.or.jp[60.47.179.241]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)
Jul 28 11:24:13 hoge postfix/smtpd[25605]: B17192B8BC5: client=i60-47-179-241.s05.a003.ap.plolog.or.jp[60.47.179.241], sasl_method=LOGIN, sasl_username=EVO-IX
Jul 28 11:24:13 hoge postfix/cleanup[25607]: B17192B8BC5: message-id=<20060728112523.0aaf9cc7.EVO-IX@hoge.sytes.net>
Jul 28 11:24:13 hoge postfix/qmgr[2518]: B17192B8BC5: from=<EVO-IX@hoge.sytes.net>, size=559, nrcpt=1 (queue active)
Jul 28 11:24:13 hoge postfix/smtpd[25605]: disconnect from i60-47-179-241.s05.a003.ap.plolog.or.jp[60.47.179.241]
Jul 28 11:24:24 hoge postfix/smtpd[25617]: connect from hoge.sytes.net[127.0.0.1]
Jul 28 11:24:24 hoge postfix/smtpd[25617]: 78C252B8BD6: client=hoge.sytes.net[127.0.0.1]
Jul 28 11:24:24 hoge postfix/cleanup[25607]: 78C252B8BD6: message-id=<20060728112523.0aaf9cc7.EVO-IX@hoge.sytes.net>
Jul 28 11:24:24 hoge postfix/qmgr[2518]: 78C252B8BD6: from=<EVO-IX@hoge.sytes.net>, size=1007, nrcpt=1 (queue active)
Jul 28 11:24:24 hoge postfix/smtpd[25617]: disconnect from hoge.sytes.net[127.0.0.1]
Jul 28 11:24:24 hoge amavis[2519]: (02519-09) Passed CLEAN, [60.47.179.241] [60.47.179.241] <EVO-IX@hoge.sytes.net> -> <hogejp@yahoo.co.jp>, Message-ID: <20060728112523.0aaf9cc7.EVO-IX@hoge.sytes.net>, mail_id: FAIzD2YN1N48, Hits: 1.111, queued_as: 78C252B8BD6, 10613 ms
Jul 28 11:24:24 hoge postfix/smtp[25608]: B17192B8BC5: to=<hogejp@yahoo.co.jp>, relay=127.0.0.1[127.0.0.1], delay=11, status=sent (250 2.6.0 Ok, id=02519-09, from MTA([127.0.0.1]:10025): 250 Ok: queued as 78C252B8BD6)
Jul 28 11:24:24 hoge postfix/qmgr[2518]: B17192B8BC5: removed
Jul 28 11:24:25 hoge postfix/smtp[25618]: 78C252B8BD6: to=<hogejp@yahoo.co.jp>, relay=mx.sannet.ne.jp[134.180.49.100], delay=1, status=sent (250 Ok: queued as 0114A282E)
Jul 28 11:24:25 hoge postfix/qmgr[2518]: 78C252B8BD6: removed
Jul 28 11:27:33 hoge postfix/anvil[25552]: statistics: max connection rate 1/60s for (submission:60.47.179.241) at Jul 28 11:21:04
Jul 28 11:27:33 hoge postfix/anvil[25552]: statistics: max connection count 1 for (submission:60.47.179.241) at Jul 28 11:21:04
Jul 28 11:27:33 hoge postfix/anvil[25552]: statistics: max cache size 1 at Jul 28 11:21:04
(2)の場合の例

Jul 19 16:52:19 hoge postfix/smtpd[16272]: setting up TLS connection from pp-a2-021.wayway-net.ne.jp[221.109.129.21]
Jul 19 16:52:20 hoge postfix/smtpd[16272]: TLS connection established from pp-a2-021.wayway-net.ne.jp[221.109.129.21]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)
Jul 19 16:52:37 hoge postfix/smtpd[16272]: 9F5032B8A9E: client=pp-a2-021.wayway-net.ne.jp[221.109.129.21], sasl_method=PLAIN, sasl_username=test
Jul 19 16:52:37 hoge postfix/cleanup[16285]: 9F5032B8A9E: message-id=<44BDE4B1.708@pup.wayway-net.ne.jp>
Jul 19 16:52:37 hoge postfix/qmgr[14850]: 9F5032B8A9E: from=<iway-dc@pup.wayway-net.ne.jp>, size=808, nrcpt=1 (queue active)
Jul 19 16:52:37 hoge postfix/smtpd[16272]: disconnect from pp-a2-021.wayway-net.ne.jp[221.109.129.21]
Jul 19 16:52:47 hoge postfix/smtpd[16292]: connect from hoge.sytes.net[127.0.0.1]
Jul 19 16:52:47 hoge postfix/smtpd[16292]: 61F6E2B8BB7: client=hoge.sytes.net[127.0.0.1]
Jul 19 16:52:47 hoge postfix/cleanup[16285]: 61F6E2B8BB7: message-id=<44BDE4B1.708@pup.wayway-net.ne.jp>
Jul 19 16:52:47 hoge postfix/qmgr[14850]: 61F6E2B8BB7: from=<iway-dc@pup.wayway-net.ne.jp>, size=1256, nrcpt=1 (queue active)Jul 19 16:52:47 hoge postfix/smtpd[16292]: disconnect from hoge.sytes.net[127.0.0.1]
Jul 19 16:52:47 hoge amavis[14893]: (14893-02) Passed CLEAN, [221.109.129.21] [221.109.129.21] <iway-dc@pup.wayway-net.ne.jp> -> <hogejp@yahoo.co.jp>, Message-ID: <44BDE4B1.708@pup.wayway-net.ne.jp>, mail_id: kYWverIaAMRp, Hits: 3.701, queued_as: 61F6E2B8BB7, 9123 ms
Jul 19 16:52:47 hoge postfix/smtp[16286]: 9F5032B8A9E: to=<hogejp@yahoo.co.jp>, relay=127.0.0.1[127.0.0.1], delay=10, status=sent (250 2.6.0 Ok, id=14893-02, from MTA([127.0.0.1]:10025): 250 Ok: queued as 61F6E2B8BB7)
Jul 19 16:52:47 hoge postfix/qmgr[14850]: 9F5032B8A9E: removed
Jul 19 16:52:47 hoge postfix/smtp[16293]: 61F6E2B8BB7: to=<hogejp@yahoo.co.jp>, relay=mx.sannet.ne.jp[134.180.49.100], delay=0, status=sent (250 Ok: queued as C11D72771)
Jul 19 16:52:47 hoge postfix/qmgr[14850]: 61F6E2B8BB7: removed

■ 特 定ドメイン・IPアドレス受信拒否時のログ


reject_list の例

maalaeabay.com REJECT
thomson.com REJECT
zoombug.mfg.sgi.com REJECT
sannnet.jp REJECT
umplc.com REJECT
yahoo.co.jp REJECT 例にyahooを指定してテストする
#
# 許可するアドレス
/^61\.115\.197\.9[0-1]$/ OK
/^64\.56\.166\.8[0-1]$/ OK
/^210\.155\.68\.186$/ OK
/^220\.213\.226\.141$/ OK
/^210\.174\.207\.38$/ OK
/^210\.188\.236\.215$/ OK

# 拒否するアドレス
/^[^\.]*[0-9][^0-9\.]+[0-9]/ REJECT
/^[^\.]*[0-9]{5}/ REJECT
/^([^\.]+\.)?[0-9][^\.]*\.[^\.]+\..+\.[a-z]/ REJECT
/^[^\.]*[0-9]\.[^\.]*[0-9]-[0-9]/ REJECT
/^[^\.]*[0-9]\.[^\.]*[0-9]\.[^\.]+\..+\./ REJECT
/^(dhcp|dialup|ppp|adsl)[^\.]*[0-9]/ REJECT
上記 reject_listでyahooからメールを送信した時のログ

Oct  5 01:52:20 hoge postfix/smtpd[18878]: NOQUEUE: reject: RCPT from web3307.mail.bbt.yahoo.co.jp[205.96.92.45]: 554 <web3307.mail.bbt.yahoo.co.jp[205.96.92.45]>: Client host rejected: Access denied; from=<tako@yahoo.co.jp> to=<hoge@hoge.sytes.net> proto=SMTP helo=<web3307.mail.bbt.yahoo.co.jp>
Oct  5 01:52:20 hoge postfix/smtpd[18878]: disconnect from web3307.mail.bbt.yahoo.co.jp[205.96.92.45]

■ 契約サーバーの認証システムの確認

   契約しているISPにtelnetでアクセスしても認証は確認できません。
$ telnet mx.bokenet.ne.jp 25
Trying 134.180.49.100...
Connected to mx.bokenet.ne.jp (134.180.49.100).
Escape character is '^]'.
220 mta06.bokenet.ne.jp ESMTP Postfix
EHLO mx.bokenet.ne.jp
250-mta06.bokenet.ne.jp
250-PIPELINING
250-SIZE 20480000
250-VRFY
250-ETRN
250-XVERP
250 8BITMIME
quit
221 Bye
Connection closed by foreign host.
   他のドメイン配下からからアクセスしてみると....
$ telnet mx.bokenet.ne.jp 587
Trying 58.93.255.31...
Connected to mx.bokenet.ne.jp (58.93.255.31).
Escape character is '^]'.
220 mvs9sub.mx.bokenet.ne.jp ESMTP server ready Thu, 12 Oct 2006 13:07:10 +0900
EHLO camel.mail.plala.or.jp
250-mvs9sub.mx.bokenet.ne.jp
250-AUTH=LOGIN PLAIN CRAM-MD5
250-AUTH LOGIN PLAIN CRAM-MD5
250-PIPELINING
250-DSN
250-8BITMIME
250 SIZE 20971520
QUIT
221 mvs9sub.mx.bokenet.ne.jp ESMTP server closing connection
Connection closed by foreign host.


▲このページのトップへ戻る

▲トップへ戻 る





Copyright©2005-2006  熊の巣  All Right Reserved.  管理人へメール