====== root宛メールをgmailへ転送する ======
===== 要件 =====
root宛メールをgmailへ転送する。
===== 構成 =====
- fw, web, desktopの各root宛メールはjailerのroot宛とする。
- jailerのroot宛メールはgmailアカウント宛とする。
===== jailer設定 =====
==== sendmail + sasl導入 ====
mail/sendmail-saslをインストールする。
==== /etc/mail/mailer.conf 設定 ====
導入したsendmailを指定する。
#sendmail /usr/libexec/sendmail/sendmail
#send-mail /usr/libexec/sendmail/sendmail
#mailq /usr/libexec/sendmail/sendmail
#newaliases /usr/libexec/sendmail/sendmail
#hoststat /usr/libexec/sendmail/sendmail
#purgestat /usr/libexec/sendmail/sendmail
sendmail /usr/local/sbin/sendmail
send-mail /usr/local/sbin/sendmail
mailq /usr/local/sbin/sendmail
newaliases /usr/local/sbin/sendmail
hoststat /usr/local/sbin/sendmail
purgestat /usr/local/sbin/sendmail
==== /etc/rc.conf 設定====
fw, web, desktopからメールを受け取るため、rc.confにdaemon起動の設定を追加する。
sendmail_enable="YES"
sendmail_procname="/usr/local/sbin/sendmail"
saslauthd_enable="YES"
* sendmail_procnameは効いていない様子
==== /etc/hosts 設定 ====
メールのリレー元であるfw, web, desktopを/etc/hostsに登録する。
==== /etc/mail/jailer.mc 設定 =====
[[http://port23.wordpress.com/2008/02/25/freebsd-sendmail-squirrelmail/|HowTo: Configure Sendmail with Gmail SMTP Server in FreeBSD]]を基にjailer.mcを編集する。jailer.mcはfreebsd.mcのコピーとする。
84行目 dnl Enable for both IPv4 and IPv6 (optional) の上に追記
define(`confAUTH_OPTIONS',`A')dnl
define(`confAUTH_MECHANISMS',`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
TRUST_AUTH_MECH(`EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN')dnl
FEATURE(`authinfo',`Hash -o /etc/mail/authinfo')dnl
define(`SMART_HOST',`smtp.gmail.com')dnl
define(`RELAY_MAILER_ARGS',`TCP $h 587')
define(`ESMTP_MAILER_ARGS',`TCP $h 587')
==== /etc/mail/sendmail.cf 生成 ====
編集したjailer.mcからsendmail.cfを生成する。
# cd /etc/mail
# m4 /usr/local/share/sendmail/cf/m4/cf.m4 jailer.mc > sendmail.cf
#
==== /etc/mail/authinfo.db 生成 ====
authinfo.dbの基となるauthinfoを作成する。
AuthInfo:smtp.gmail.com "U:smmsp" "I:" "P:" "M:PLAIN"
AuthInfo:smtp.gmail.com:587 "U:smmsp" "I:" "P:" "M:PLAIN"
authinfoからauthinfo.dbを生成する。
makemap -r hash authinfo.db < authinfo
==== /etc/mail/local-host-names 作成 ====
local-host-namesを作成する。(必須であるかは不明)
touch local-host-names
==== /etc/mail/aliases.db 設定 ====
aliasesを編集して、root宛メールの送付先をgmailアカウントとする。
# root: me@my.domain
root:
newaliaesを実行し、aliases.dbを更新する。
# newaliases
/etc/mail/aliases: 28 aliases, longest 22 bytes, 301 bytes total
#
==== 送信テスト ====
- sendmailを停止、起動する。
# service sendamil stop
# service sendmail start
- mailコマンドでroot宛メールを送信する。
# mail root
Subject: TEST
TEST from jailer
.
EOT
- gmailでメールが受信できていれば完了。/var/log/maillogにてstat=Sentとなっている事も併せて確認する。
===== prisoner fw設定 =====
==== /etc/hosts 設定 ====
メールのリレー先であるjailerを/etc/hostsに登録する。
==== /etc/mail/aliases.db 設定 ====
aliasesを編集して、root宛メールの送付先をroot@jailerとする。
# root: me@my.domain
root:
newaliaesを実行し、aliases.dbを更新する。
# newaliases
/etc/mail/aliases: 28 aliases, longest 22 bytes, 301 bytes total
#
==== 送信テスト ====
- sendmailを停止・起動する。
# service sendamil stop
sendmail_submit not running? (check /var/run/sendmail.pid).
Stopping sendmail_clientmqueue.
# service sendmail sart
Cannot 'start' sendamil. Set sendmail_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'
- mailコマンドでroot宛メールを送信する。
# mail root
Subject: TEST
TEST from fw
.
EOT
- gmailでメールが受信できていれば完了。
===== prisoner web設定 =====
==== /etc/hosts 設定 ====
メールのリレー先であるjailerを/etc/hostsに登録する。
==== /etc/mail/aliases.db 設定 ====
aliasesを編集して、root宛メールの送付先をroot@jailerとする。
# root: me@my.domain
root:
newaliaesを実行し、aliases.dbを更新する。
# newaliases
/etc/mail/aliases: 28 aliases, longest 22 bytes, 301 bytes total
#
==== 送信テスト ====
- sendmailを停止・起動する。
# service sendamil stop
sendmail_submit not running? (check /var/run/sendmail.pid).
Stopping sendmail_clientmqueue.
# service sendmail sart
Cannot 'start' sendamil. Set sendmail_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'
- mailコマンドでroot宛メールを送信する。
# mail root
Subject: TEST
TEST from web
.
EOT
- gmailでメールが受信できていれば完了。
===== prisoner desktop設定 =====
==== /etc/hosts 設定 ====
メールのリレー先であるjailerを/etc/hostsに登録する。
==== /etc/mail/aliases.db 設定 ====
aliasesを編集して、root宛メールの送付先をroot@jailerとする。
# root: me@my.domain
root:
newaliaesを実行し、aliases.dbを更新する。
# newaliases
/etc/mail/aliases: 28 aliases, longest 22 bytes, 301 bytes total
#
==== 送信テスト ====
- sendmailを停止・起動する。
# service sendamil stop
sendmail_submit not running? (check /var/run/sendmail.pid).
Stopping sendmail_clientmqueue.
# service sendmail sart
Cannot 'start' sendamil. Set sendmail_enable to YES in /etc/rc.conf or use 'onestart' instead of 'start'
- mailコマンドでroot宛メールを送信する。
# mail root
Subject: TEST
TEST from desktop
.
EOT
- gmailでメールが受信できていれば完了。
===== その他 =====
* prisonerであるwebにmail/sendmail-saslをインストールしようとしたところ、sysvipcが有効で無いと警告が出てインストールが出来なかった。jailer側で関連する以下の設定を行ったが、prisonerにはmail/sendmail-saslを導入できなかった。
* sysctl security.jail.sysvipc_allowed=1
* /etc/rc.confにjail_sysipc_allow="YES"を追加