Layer 01: Gmail SMTP FOWRDING
Create: 24/2/20
!注意: サーバーにはUBUNTU+POSTFIXを使用します。基本的な設定は完成しているものとします。(時間があればまた書きます)

私は自宅サーバーを持っているのですがOP25Bに悪戦苦闘しました。

今回はこの経験をここに書き残します。

~ ~ ~

 

今回はgmailを使った設定を施していきます。

最初にリレー設定を完了させます。

                        > sudo su - 
> vi /etc/postfix/main.cf
--
": relayhost = [smtp.gmail.com]:587"
": smtp_use_tls = yes"
": smtp_sasl_auth_enable = yes"
"smtp_sasl_password_maps = hash:/etc/postfix/gmail"
"smtp_sasl_security_options = noanonymous"
"smtp_sasl_tls_security_options = noanonymous"
"smtp_sasl_mechanism_filter = plain"

さらに"smtp_sasl_password_maps"の欄で記入したようにパスワードをGoogleから取得して、設定します。

                            1. Googleにログインし、ホームからセキュリティに移動する。
                            2. 二段階認証必須のため、2段階認証プロセスの電話番号に移動して認証する。 (固定電話なども可)
                            3. セキュリティに戻り2段階認証プロセスに移動する。
                            4. 一番下のアプリパスワードに移動する。
                            5. 適当に名前を決定して作成する。
                        

これでアプリパスワードは完成ですので次はPostfix側に反映させつつ、

テストを実行します。

                            > vi /etc/postfix/gmail
                            --
                            [smtp.gmail.com]:587 アドレス@gmail.com:アプリパスワード
                              (アプリパスワードは4つ全て連結させます) ↑
                            > postmap /etc/postfix/gmail
                            (上のコマンドでgmail.dbが生成されます)
                            > service postfix restart
                            > telnet localhost
                            helo ドメイン
                            mail from:送信元
                            rcpt to:宛先
                            data
                            .
                            quit
                        

これで送信ができてればほとんど完了です。

しかしまだ設定は残っております。

「もう終わりじゃないか」「おまけはまだか」はい。風の便りで聞こえてきました。そうじゃないんです。

もしかしたらもう気づいた人があるかもしれません。。

メールヘッターが@gmail.comになっているのです。

これでは送信元のメールアドレスが見えませんし、そしてこれから設定するdkimではじかれてしまうのです。

はっきり言ってケチの域に入ってきましたがハードに掛けたお金は戻ってこないのでやっていきます。

以下はその設定方法です。

(こちらも二段階認証は必須です。また面倒ですがアドレスごとにこれを設定する必要があります。)
                            1. gmail.comにログインします。
                            2. 歯車から設定に入り、すべての設定を表示を押します。
                            3. アカウントとインポートに移動し他のメールアドレスを追加で名前とメールアドレスを設定します。
                            4. smtpサーバーにログインするための情報を入力して最後に追加を押します。
                            5. gmail側から確認のメールが届くので確認を押します。
                        

次にはLet`s Encryptの設定方法です。

Web帳さんというこちらの記事を参考にさせていただきました。

                            (> service apache2 stop )
                            (↑ もしポート80番を占領しているものがあれば止めます)
                            > apt install certbot 
                            > certbot certonly --standalone -d アドレス
                            (規約同意の確認、メールアドレスの登録があります)
                            (4. service apache2 start)
                            > certbot certificates
                            ...
                            Certificate Path: /etc/letsencrypt/live/<アドレス>/fullchain.pem
                            Private Key Path: /etc/letsencrypt/live/<アドレス>/privkey.pem
                            (↑をコピーします。)
                            > /etc/postfix/main.cf
                            --
                            smtp_tls_security_level = may
                            smtpd_tls_key_file = /etc/letsencrypt/live/<アドレス>/privkey.pem
                            smtpd_tls_cert_file = /etc/letsencrypt/live/<アドレス>/fullchain.pem
                            > /etc/postfix/master.cf
                            --
                            (sslでsmtpを使う場合は下のようにsmtpsをコメントアウトする)
                            smtps     inet  n       -       n       -       -       smtpd
                            -o smtpd_tls_wrappermode=yes
                            -o smtpd_sasl_auth_enable=yes
                            -o smtpd_recipient_restrictions=permit_sasl_authenticated,reject
                            > service postfix restart
                            > /etc/dovecot/conf.d/10-ssl.conf
                            --
                            ssl = required
                            ssl_cert = </etc/letsencrypt/live/<アドレス>/fullchain.pem
                            ssl_key = </etc/letsencrypt/live/<アドレス>/privkey.pem
			    > ufw allow 465
                            > /etc/dovecot/conf.d/10-master.conf
                            --
                            service imap-login {
                            #    inet_listener imap {
                            #      port = 143
                            #    }
                                inet_listener imaps {
                                  port = 993
                                  ssl = yes
                                }
                              }
                               
                              service pop3-login {
                            #    inet_listener pop3 {
                            #      port = 110
                            #    }
                                inet_listener pop3s {
                                  port = 995
                                  ssl = yes
                                }
                              }
                            > service dovecot restart
                            > ufw allow 993
			    > ufw allow 995
			    > ufw reload
			    > vi /etc/cron.d/letsencrypt
                            --
                            > 00 00 1 * * root /usr/bin/certbot renew --pre-hook "service apache2 stop" --post-hook "service apache2 start"
                        

いやぁ、しかしこれまでできるようにさせていただいた先人の方には感謝しかありません。

~   ~   ~

最後にメールサーバーにログインします。

		         1. outlookやsylpheed等、TLS,SSL接続ができるソフトを使います。
			 2. アカウントを追加します。
			 3. 事前に登録したアドレスやサーバーアドレス等入力します。
			 4. ポート番号を指定します。
			  >POP-> 995 IMAP4-> 993 SMTP -> 465, 587(別途でサブミッションポートを設定している場合)
			 5. IDやログインパスワード等を入力します。
			 6. 登録を完了させます。
			 7. アカウントの設定から送信サーバーの、"このサーバーは認証が必要"にチェックを入れます。
		  

おまけ: dkim, dmarc設定

おまけです。

最近迷惑メールが大変らしいです。そのため各社がこぞってdkim, dmarcという

送信元の検証システムを導入しているようです。これにはgoogleや日本の大手プロバイバーも含まれます。

なんだかOP25Bに似ています。まあこれが実際に意味を成すのかという議論は置いておいて

DKIM, DMARCの設定をしていきます。

                         1. 重複しない為の適当な名前(セレクター名)を決めます。(この例ではmailとします)
                         2. opendkimを設定していきます
                         最初に公開鍵、秘密鍵を作成、確認をします
                         > apt install opendkim
                         > opendkim-genkey -s mail
                         > ls
                         ..
                         mail.private  mail.txt
                         > cat mail.txt
                         ..
                         mail._domainkey IN      TXT     ( "v=DK...
                         3. catで表示した物を手持ちのドメインにDNSレコードとして設定します。(この例ではhoge.jpとします)
                         レコード名="mail._domainkey.hoge.jp" タイプ="TXT" 値="v=DKIM1; h=sha256; k=rsa;" "p=..." "..."
                         (エラーがでるときは値を連結させて登録してください。)
                         4. さらに設定を進めていきます。秘密鍵、postfixとの連携関連のものになります
                         > mkdir -p /var/db/dkim/
                         > mv ./mail.private /var/db/dkim/mail.key.pem
                         > cd /var/db/dkim/
                         > chown -R opendkim:opendkim /var/db/dkim/
                         > chown -R opendkim:opendkim /var/db/dkim/*
                         > chmod 600 mail.key.pem
                         > chmod 700 .
                         > opendkim-testkey -d hoge.jp -s mail -k mail.key.pem
                         #特に何も表示されなければ問題ないです。
                         > /etc/opendkim.conf
                         ---
                         
                         ...
                         Domain hoge.jp
                         Selector mail
                         KeyFile /var/db/dkim/mail.key.pem
                         ...
                         #Socket                 local:/run/opendkim/opendkim.sock 
			 #↑ コメントアウトする
			 Socket                  inet:8891@localhost
			 # #を取って有効にする
			 ...
                         InternalHosts 127.0.0.1
                         #許可するIPアドレスの範囲を指定するものです。
                         > service opendkim restart
			 > /etc/postfix/main.cf
                         smtpd_milters = inet:127.0.0.1:8891
                         non_smtpd_milters = $smtpd_milters
                         > service postfix restart
                         5. spfの設定をします。(IPアドレスは333.333.333.333とします)
                         レコード名=\"hoge.jp" タイプ="TXT" 値="v=spf1 ip4:333.333.333.333 ~all"
                         6. dmarcの設定をします。ruaには各社から送られるレポートの宛先を指定しましょう
			 (ruaに指定したメールアドレスには送信がなされたどうかのレポートが帰ってきます。確認しましょう)
                         レコード名=\"_dmarc.hoge.jp" タイプ="TXT" 値="v=DMARC1; p=quarantine; rua=mailto:admin@hoge.jp"
                        

ちょうどいい暇つぶしになりました。

それにしても、企業等々の固定IPを持っている人達にはかないません。彼らはお金でやってのけるのです。

「お金で人生買えるのよ」とかどこかのCDで聞き覚えのあるセリフが脳裏に浮かんできますよね。

お金はオッかねえですね。。。

お金だけに

参考: Web帳 Ubuntu 20.04 LTS サーバ構築 – Postfix Let’s EncryptでTLS化
   : Opendkim ORG
   : The Postfix Home Page
   : Dovecot manual
追記: この記事によると、古いsslでもアクセスするようにできるそうです。
暇があればこれを訳して乗せるかもしれません。