OP25bとは
少々専門的な話ですが、サーバーとデータをやりとりするのには、専用の「ポート」という出入り口を使用します。
例えば私のサイトを見ようと、ブラウザに https://yoshisyou.com と打ち込んだとします。
すると、表示はされませんが、サーバーには、https://yoshisyou.com:443 とリクエストされたと判断します。
※ yoshisyou.com はSSL化されているためです。SSL化されていない場合は、 https://yoshisyou.com:80 になります。
つまり、443番のポートから、ウェブブラウザ用の情報を出して欲しいとのリクエストなのです。
サーバーは「かしこま」と応答して、こうしてWEB用の情報を送っています。
この他にも、設置の際に使用したターミナルは22番のポートを使用しています。
そして、25番のポートを使ってやりとりすると決められているのが、SMTP (Simple Mail Transfer Protocol) です。
電子メールを送信するために使用するポートになります。
メールサーバーは、「メールを送れ」と指示を受けると、メールの送り先のサーバーに、この25番ポートを使って繋がろうとします。
25番で繋がると、メールの情報を相手サーバーに渡して、終了となります。
しかし、世の中には悪い事をする人がいるもので、迷惑メールを大量に送ったり、一つところにアクセスを集中させてサーバーをパンクさせようとする困った行為をする人がいます。
特にメールでの攻撃が簡単でかつ被害が大きいためか、メールを簡単には送れないようにする対策をしているところがあります。
この対策が、表題のOP25bというものです。
25番ポートを使っての情報のやりとりをサーバーの出入り口で止めてしまうように設定されてしまいます。このため、25番を指定したやりとりは、入れないか、出て行けないか、その両方です。
25番ポートが使えないので、メールを送る事ができません。
実は、さくらのVPSでは、元々メールを送信するサーバーが入っておらず、仮にインストールしたとしても、このOP25bが設定されているため、外部にメールを飛ばす事はできません。
※お試し期間中の設定。本契約になると、使用できるようになります。
従って、VPSの記事では、単にpostfixをインストールすれば動作するように読めますが、実際には、完全なメールサーバーとして設定する事になりました。
また、ドメイン名でSSLの証明書を取得していますので、こちらも使用し、TSL環境でのメールサーバーにしています。
# vi /etc/postfix/main.cf
myhostname = mail.yoshisyou.com
mydomain = yoshisyou.com
myorigin = $mydomain
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
smtpd_banner = $myhostname ESMTP unknown
inet_interfaces = all
relay_domains = $mydestination
# 送受信メールサイズを10Mに制限
message_size_limit = 10485760
# メールボックスサイズを250MBに制限
mailbox_size_limit = 262144000
smtp_tls_security_level = may <- SMTPサーバでTLSを有効にする
smtpd_tls_cert_file = /etc/letsencrypt/live/yoshisyou.com/fullchain.pem <- SSL証明書
smtpd_tls_key_file = /etc/letsencrypt/live/yoshisyou.com/privkey.pem <- 秘密鍵
smtpd_tls_loglevel = 1 <- TSL情報をログに残す
smtpd_tls_received_header = yes <- プロトコルおよび 暗号に関する情報を "Received:" メッセージヘッダに含める
smtpd_tls_session_cache_database = btree:/var/lib/postfix/smtpd_scache <- サーバサイドTLSセッションキャッシュ
smtpd_tls_session_cache_timeout = 3600s <- サーバサイドTLSセッションキャッシュの時間
relayhost = [smtp.gmail.com]:587 <- 送信情報を、gmailに送信する設定。
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_use_tls = yes
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt
# systemctl restart postfix <- postfix再起動
# firewall-cmd --add-service=smtp --zone=public --permanent
# firewall-cmd --add-service=pop3 --zone=public --permanent
# firewall-cmd --add-service=smtp --zone=public --permanent
# firewall-cmd --add-service=pop3 --zone=public --permanent
# vi /etc/postfix/authinfo
[smtp.gmail.com]:587 [gmailのid]@gmail.com:[gmailのパスワード]
# chmod 604 /etc/postfix/authinfo
# postmap /etc/postfix/authinfo
この設定により、このメールサーバーは、メール送信の指示を受け取ると、587番のポートを使い、gmailの送信サーバーへ送信情報を投げるようになります。
このとき、authinfoに記載されたgmailのアカウントとパスワードが使用されます。
ただし、gmailの方も、正体不明のサーバーからの送信依頼をポンポンと受けてくれる訳ではありません。
ちゃんと、使用するサーバーを認証するようになっています。
また、それらの接続のため、smtpやpop3関係のポートも開放します。
このため、メールを受け取る事もできる正規のメールサーバーに変更となります。
それでは、gmailの認証を設定します。
gmailの自分のアカウントを表示し、設定をクリックします。
設定内のアカウントとインポートに、gmailを別アカウントで使用するための設定がありますので、ここに名前とメールアドレスを入力します。
例えば弊サイトの場合、YoshikawaShokai で、root@yoshisyou.comを登録しました。
セキュリティのため、こちらのSMTPを聞かれますので回答します。
この指定したメールアカウントに、コード番号が届きます。
mail -f ~/Maildir などで届いたコードを入力し、gmailと連結します。
また、送信用と決めたgmailのGoogleアカウントに接続し安全性の低いアプリのアクセスも許可する必要があります。
ただし、相手に届くメールは、gmailのアカウントからのものとなります。したがって、このサーバー内に何人ものユーザーを作成し、そのユーザーを送り主にしてメールを送る事は、OP25bの、25番送信禁止となっているVPSサーバーでは、難しいと言わざるを得ません。