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

ネットを検索し設定が成功したのでメモしておく。
===================================================================================
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 [email protected]: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: [email protected]
# newaliases
■postfixの再起動
# /etc/init.d/postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
■メールの送信テスト
$ mail [email protected]
Subject: THIS IS TEST
Sorry, THIS IS TEST
.
Cc:
■ログの確認
/var/log/maillog
年末年始のTV録画によりファイルサーバ(CentOS)の4テラのDISKが一杯になることが多くなってきた。当然cronにて古いファイルから自動的に削除しているが、録画量が圧倒的に多く成ったことにより、削除するより増えるほうが多くなり、DISKFULLに成る場合が多発。
という訳で、DISKの残容量を監視しケータイにメールを出すことにした。
MTUはPostfix、メールサーバはGmailのサーバを使うことにした。

ネットを検索し設定が成功したのでメモしておく。
===================================================================================
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 [email protected]: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: [email protected]
# newaliases
■postfixの再起動
# /etc/init.d/postfix restart
postfix を停止中: [ OK ]
postfix を起動中: [ OK ]
■メールの送信テスト
$ mail [email protected]
Subject: THIS IS TEST
Sorry, THIS IS TEST
.
Cc:
■ログの確認
/var/log/maillog
by tomslabo
| 2011-01-09 23:10
| Linuxネタ