User Tools

Site Tools


Sidebar

vps:gmail_smtp

root宛メールをgmailへ転送する

要件

root宛メールをgmailへ転送する。

構成

  1. fw, web, desktopの各root宛メールはjailerのroot宛とする。
  2. 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 設定

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:<gmailユーザ名>" "P:<gmailパスワード>" "M:PLAIN"
AuthInfo:smtp.gmail.com:587 "U:smmsp" "I:<gmailユーザ名>" "P:<gmailパスワード>" "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: <gmailアカウント>

newaliaesを実行し、aliases.dbを更新する。

# newaliases
/etc/mail/aliases: 28 aliases, longest 22 bytes, 301 bytes total
#

送信テスト

  1. sendmailを停止、起動する。
    # service sendamil stop
    # service sendmail start
  2. mailコマンドでroot宛メールを送信する。
    # mail root
    Subject: TEST
    TEST from jailer
    .
    EOT
  3. 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: <jailerのroot宛>

newaliaesを実行し、aliases.dbを更新する。

# newaliases
/etc/mail/aliases: 28 aliases, longest 22 bytes, 301 bytes total
#

送信テスト

  1. 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'
  2. mailコマンドでroot宛メールを送信する。
    # mail root
    Subject: TEST
    TEST from fw
    .
    EOT
  3. gmailでメールが受信できていれば完了。

prisoner web設定

/etc/hosts 設定

メールのリレー先であるjailerを/etc/hostsに登録する。

/etc/mail/aliases.db 設定

aliasesを編集して、root宛メールの送付先をroot@jailerとする。

# root: me@my.domain
root: <jailerのroot宛>

newaliaesを実行し、aliases.dbを更新する。

# newaliases
/etc/mail/aliases: 28 aliases, longest 22 bytes, 301 bytes total
#

送信テスト

  1. 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'
  2. mailコマンドでroot宛メールを送信する。
    # mail root
    Subject: TEST
    TEST from web
    .
    EOT
  3. gmailでメールが受信できていれば完了。

prisoner desktop設定

/etc/hosts 設定

メールのリレー先であるjailerを/etc/hostsに登録する。

/etc/mail/aliases.db 設定

aliasesを編集して、root宛メールの送付先をroot@jailerとする。

# root: me@my.domain
root: <jailerのroot宛>

newaliaesを実行し、aliases.dbを更新する。

# newaliases
/etc/mail/aliases: 28 aliases, longest 22 bytes, 301 bytes total
#

送信テスト

  1. 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'
  2. mailコマンドでroot宛メールを送信する。
    # mail root
    Subject: TEST
    TEST from desktop
    .
    EOT
  3. 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”を追加
vps/gmail_smtp.txt · Last modified: 2019/06/16 15:16 (external edit)