ブログトップ

Tom's Lab

tomslabo.exblog.jp

Tomの研究所

CentOSのPostfixからGmail経由でメールを出す

2011年1月9日(日)晴れ
年末年始のTV録画によりファイルサーバ(CentOS)の4テラのDISKが一杯になることが多くなってきた。当然cronにて古いファイルから自動的に削除しているが、録画量が圧倒的に多く成ったことにより、削除するより増えるほうが多くなり、DISKFULLに成る場合が多発。

という訳で、DISKの残容量を監視しケータイにメールを出すことにした。
MTUはPostfix、メールサーバはGmailのサーバを使うことにした。

d0182233_23215964.jpg


ネットを検索し設定が成功したのでメモしておく。




===================================================================================

PostfixでGmailを使う
CentOSでPostfixをMTAとして使っている場合に Gmailを経由して外部宛にメールを送る

CentOS5.5 2011/01/08

----------------------------------------------------------------------------------
OP25B(Outbound Port25 Blocking)の規制を受けたら587番ポートや代替サーバーを使う
----------------------------------------------------------------------------------
OP25Bの影響を受ける場合の対策の1つは25番ポートを使わない
対策は「Submissionポート」と呼ばれる587番ポートを使う
Submissionポートは25番ではなく587番のポートを送信用のポートとして使う

このSubmissionポートを使うにはメールのSMTPサーバー側がSubmissionポートに対応していることが大前提となる
Submissionポートの提供にはSMTPでユーザー認証を行なう「SMTP Auth」とセットで実施されることが多い
このためメールソフトもポート番号の変更だけでなくSMTP Authへの対応が必要となってくる

Gmailの場合は SSL/TLS で通信レイヤーそのものを暗号化しているためパスワードだけをわざわざ暗号化 (符号化)
していないので簡単に対応できる

ただしGmail特有の問題点もある
1.TLSによって通信レイヤーを暗号化する必要がある
2.plain方式 (暗号化・符号化されていない) SMTP AUTH 認証も必要になる
3.メール送信の時にTLS証明書の妥当性が確認できないとpostfixが
/var/log/maillogエラーを出すのでルート証明書を指定する

===================================================================================
■sendmailの停止
# ps -ef | grep mail
root 2588 1 0 2010 ? 00:00:00 sendmail: accepting connections
smmsp 2596 1 0 2010 ? 00:00:00 sendmail: Queue runner@01:00:00 for /var/spool/clientmqueue
root 26774 26656 0 22:46 pts/1 00:00:00 grep mail

# /etc/rc.d/init.d/sendmail stop
sm-client を停止中: [ OK ]
sendmail を停止中: [ OK ]

# chkconfig --del sendmail

# chkconfig --list sendmail
sendmail 0:off 1:off 2:on 3:on 4:on 5:on 6:off 

■Postfixのインストール
# yum install postfix

==========================================================================================
Package Arch Version Repository Size
==========================================================================================
Installing:
postfix i386 2:2.3.3-2.1.el5_2 base 3.6 M

==========================================================================================

■MTA切り替え
# alternatives --config mta
2 プログラムがあり 'mta' を提供します。

選択 コマンド
-----------------------------------------------
*+ 1 /usr/sbin/sendmail.sendmail
2 /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

■Postfix起動
# /etc/rc.d/init.d/postfix start
postfix を起動中: [ OK ]

# chkconfig postfix on
# chkconfig --list postfix

■SMTP関係の設定(TLS編)
FQDN centos.topgun.dyndns.tv
ホスト名centos
ドメイン名topgun.dyndns.tv

# vi /etc/postfix/main.cf
==================================================================
myhostname = aaaa.bbbb.cccc.com
mydomain = bbbb.cccc.com
myorigin = $myhostname
inet_interfaces = localhost
mydestination = $myhostname, localhost.localdomain, localhost.$mydomain, localhost

# 以下Gmail固有の設定
relayhost = [smtp.gmail.com]:587
# smtp.gmail.comはTLSによって暗号化する
smtp_use_tls = yes
# plain方式 (暗号化・符号化されていない) SMTP AUTH認証が必要になるので以下の記述を追加
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
# TLS証明書であるルート証明書を指定
# 指定しないとpostfixが/var/log/maillogにエラーを吐く
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt

■sasl_passwdの設定
# vi /etc/postfix/sasl_passwd
[smtp.gmail.com]:587 user-name@gmail.com:mail-password

# chown root:root /etc/postfix/sasl_passwd
# chmod 600 /etc/postfix/sasl_passwd
# postmap /etc/postfix/sasl_passwd

■root宛のメールは自分の携帯に転送する
# vi /etc/aliases
root: user-name@docomo.co.jp

# newaliases

■postfixの再起動
# /etc/init.d/postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]

■メールの送信テスト
$ mail user-name@docomo.co.jp
Subject: THIS IS TEST
Sorry, THIS IS TEST
.
Cc:

■ログの確認
/var/log/maillog
[PR]
by tomslabo | 2011-01-09 23:10 | Linuxネタ