+メッセージで使われるRCSと旧来のSMS/MMSの使い分け


NTTドコモ, au, ソフトバンクが共通で画像添付のメッセージをやりとりできるサービスを+メッセージとして開始する、というリリースが出た。

これは、GSMAという団体が定義しているRich Communication Services(RCS)という仕様に基づいたもので、すでにAndroidはGoogleが使えるソフト(メッセージ)を出しているし、iOSもiMessageが対応しているにもかかわらず、別のソフトで対応する方針らしい。

なんでだろう?と調べて見ると、日本ならではの事情らしきものが見えた。

まず、携帯電話同士のメッセージのやりとりには、短い文章のみを送れるSMSと、画像などを添付して送れるMMSの2種類がある。
これらはパケット課金ではなく、1通いくら、という形でやりとりされている。
日本では、SMSは3社とも対応しているが、MMSは一部しか対応していない。

RCSの仕様書を読んでいくと、おもしろいことが分かった。
それは、「メッセージの送信者と受信者の状況」と「オフライン受信の可否」と「ファイルを添付するか否か」によって、SMS,RCS,MMSを自動選択する、という仕組みがある、ということである。

joyn Crane Product Definition Document Version 3.0
(この記事は上記のRCS実装の1つであるjoynを元に書いていたが、その後、RCS Universal Profileに関するドキュメントも公開された→「RCS Universal Profile Service Definition Document Version 2.2」若干記述が変わっているところがあるものの概ね同じです)

なお、pdfは「RCS Documentation」にて[Specifications]→[Universal Profile Service]でダウンロードすることができます。

さて、仕様書からSMS,RCS,MMSの送受信の動作に関して表で説明されている箇所を抜き出して見ると・・・

その1:オフライン受信を許可しない設定時にメッセージのみを送る場合

その2:オフライン受信を許可する設定時にメッセージのみを送る場合

その3:オフライン受信を許可しない設定時にファイル添付でメッセージを送る場合

その4:オフライン受信を許可する設定時にファイル添付でメッセージを送る場合

ちょっとした条件の違いで何を使うかが変わっている。

これを日本でそのまま使ってしまうと、パケット課金のRCSで送ろうと思ったけど、実はSMSやMMSで送られちゃいました、ということが起こりえる。
そうすると1通当たりの課金になってしまうため、たくさんメッセージを送るとすごいことになってしまう。

こういった課金事故を減らすために必ずRCSでメッセージを送信するような仕組みにしたソフトを使わせようとしているのではないか?

という印象を受けた

メールソフトの設定自動検出用DNSレコード


久しぶりにメールサーバの設定をいろいろやった。

その際にテスト用にメールソフトを設定したが、何やら自動検出の仕組みがあるようだ
調べて見ると、RFC6186により定義されているDNSのSRVレコードにより、IMAP/POP3/SMTPのサーバ名、ポート番号情報を広報することができるらしい。

SRVレコードの定義:RFC2782 A DNS RR for specifying the location of services (DNS SRV)
SRVレコードでメールサーバ定義を配布:RFC6186 Use of SRV Records for Locating Email Submission/Access Services

設定例としてmailcowの「DNS setup」の「The advanced DNS configuration」にちょうどいい感じのがあったので引用

Example DNS server configuration
mail                IN A       1.2.3.4
autodiscover        IN A       1.2.3.4
autoconfig          IN A       1.2.3.4

@                   IN MX 10   mail

_imap._tcp          IN SRV     0 1 143 mail.example.org.
_imaps._tcp         IN SRV     0 1 993 mail.example.org.
_pop3._tcp          IN SRV     0 1 110 mail.example.org.
_pop3s._tcp         IN SRV     0 1 995 mail.example.org.
_submission._tcp    IN SRV     0 1 587 mail.example.org.
_caldavs._tcp       IN SRV     0 1 443 dav.example.org.
_carddavs._tcp      IN SRV     0 1 443 dav.example.org.
_autodiscover._tcp  IN SRV     0 1 443 autodiscover.example.org.

@                   IN TXT     "v=spf1 mx ~all"
default._domainkey  IN TXT     "v=DKIM1; k=rsa; t=s; s=email; p=..."
; _dmarc            IN TXT     "v=DMARC1; p=reject; rua=mailto:mailauth-reports@example.org"

「_サービス名.tcp IN SRV 優先度 ウェイト ポート番号 サーバ名」というのが基本書式
優先度は0が最優先。最大は65535。
優先度が同じもののなかで、どちらが使われるかをウェイトで定義。ウェイトは数が大きい方が優先される。こちらも値は0~65535の範囲。

例えば、SSL無しのアクセスを禁止する場合、下記のように禁止するサービスの名前解決を「.」が返るようにする

_imap._tcp          IN SRV     0 0 0 .
_imaps._tcp         IN SRV     0 1 993 mail.example.org.
_pop3._tcp          IN SRV     0 0 0 .
_pop3s._tcp         IN SRV     0 1 995 mail.example.org.

IMAPを優先して使わせたい場合は、以下のようになるようだ。

_imap._tcp          IN SRV     0 1 143 mail.example.org.
_imaps._tcp         IN SRV     0 1 993 mail.example.org.
_pop3._tcp          IN SRV     10 1 110 mail.example.org.
_pop3s._tcp         IN SRV     10 1 995 mail.example.org.

Outlookの場合は、DNSの_autodiscoverについてのSRVレコード登録から、Webサーバ上にあるxmlファイル内にアクセスして、サーバ設定を読み込むようになっているようだ
Outlook 2010 におけるユーザー アカウント自動構成の計画

Exchange互換のSOGoを使う場合の設定は「6.5. Name Service Configuration for Web Services」に記載がある。

このページにSPF/DKIM/DMARCの動作確認「HAD Email Test Tool」が紹介されていたので記載されているメールアドレスに「test」と書いたメールを送ってみた。

・・・30分ぐらい待ってもメールが来ない
「 A reply will be sent with the findings」とあるから、何か見付かったらメールが来るってことで、来ないってことは問題ないということでいいのかな?っと


2018/07/18追記

Thunderbird MailとOutlookの古いやつだとxmlファイルを置いて設定検出が出来る
ただし、どちらもURLとxml書式が異なる

Thunderbirdの場合
・http://autoconfig.example.com/mail/config-v1.1.xml?emailaddress=fred@example.com
・http://example.com/.well-known/autoconfig/mail/config-v1.1.xml

Outlookの場合
・https://*domain*/autodiscover/autodiscover.xml
・https://autodiscover.*domain*/autodiscover/autodiscover.xml
・HTTP GET: http://autodiscover.*domain*/autodiscover/autodiscover.xml

Thunderbird のアカウント情報自動設定機能
Outlook 2010 におけるユーザー アカウント自動構成の計画

postfix/dovecotメールサーバでWindows Live Mail 2012がエラーになる


qmail+vpopmailという古代の環境から、postfix/dovecotのメールサーバに移行した。
移行の詳細については別途記事にしますが、移行後、Windows Live Mail 2012ユーザからクレームが・・・

POP3で受信ができないという

原因は、Windows Live Mail 2012のPOP3アクセス機能が古い、という点に尽きる。
対処するにはサーバ側でセキュリティを弱める設定を入れる必要があった。

その1:POP3受信時にエラー

/var/log/dovecot/pop3.log に下記のログ

Feb 19 10:35:59 oflex-1096-1 dovecot: pop3-login: Disconnected (tried to use disallowed plaintext auth): user=<osakana@example.net>, rip=xxx.xxx.xxx.xxx, lip=xxx.xx.x.xxx, session=<brxUt4ZlTfPbavEx>

→ dovecotの「ssl = required」と「disable_plaintext_auth = yes」の設定により発生
これを「ssl = yes」と「disable_plaintext_auth = no」に変更することで対処できる

設定箇所は下記の3ファイル

/etc/dovecot/dovecot.conf ではsslとdisable_plaintext_authの双方が設定されている可能性がある
/etc/dovecot/conf.d/10-auth.conf ではdisable_plaintext_authが設定されている可能性がある
/etc/dovecot/conf.d/10-ssl.conf ではsslが設定されている可能性がある

3ファイルをそれぞれ確認して修正すること

うちの環境ではssl=requriedがdovecot.confと10-ssl.confの双方で設定されていたが、
10-ssl.confしか認識しておらずいくら設定しても反映されないと悩んだ。

その2:SMTP送信時にエラー1

/var/log/maillog に下記のログ

Feb 19 10:41:49 mailserver.osakana.net postfix/smtpd[8343]: NOQUEUE: reject: RCPT from clienthostname.osakana.net[xxx.xxx.xxx.xxx]: 504 5.5.2 <clienthostname>: Helo command rejected: need fully-qualified hostname; from=<osakana@osakana.net> to=<osakana@example.com> proto=ESMTP helo=<clienthostname>

→postfixの「smtpd_helo_restrictions」で「reject_non_fqdn_helo_hostname」が設定されているため発生

まずは、現在値確認

# postconf smtpd_helo_restrictions
smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated check_helo_access pcre:/etc/postfix/helo_access.pcre reject_non_fqdn_helo_hostname reject_unknown_helo_hostname
#

変更前の /etc/postfix/main.cf の該当部分を確認

# HELO restriction
smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    check_helo_access pcre:/etc/postfix/helo_access.pcre
    reject_non_fqdn_helo_hostname
    reject_unknown_helo_hostname

変更後の /etc/postfix/main.cf の該当部分

# HELO restriction
smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    check_helo_access pcre:/etc/postfix/helo_access.pcre
    reject_unknown_helo_hostname
#    reject_non_fqdn_helo_hostname

postconfを実行して、変更されたことを確認

# postconf smtpd_helo_restrictions
smtpd_helo_restrictions = permit_mynetworks permit_sasl_authenticated check_helo_access pcre:/etc/postfix/helo_access.pcre reject_unknown_helo_hostname
#

その3:SMTP送信時にエラー2

/var/log/maillog に以下のログ

Feb 19 11:04:48 mailserver.osakana.net postfix/smtpd[11966]: NOQUEUE: reject: RCPT from clienthostname.osakana.net[xxx.xxx.xxx.xxx]: 450 4.7.1 <clienthostname>: Helo command rejected: Host not found; from=<osakana@osakana.net> to=<osakana@example.com> proto=ESMTP helo=<clienthostname>

→postfixの「smtpd_helo_restrictions」で「reject_unknown_helo_hostname」が設定されているため発生

変更前の値はエラー1と同じなのでここでは省略

変更後の /etc/postfix/main.cf の該当部分

# HELO restriction
smtpd_helo_required = yes
smtpd_helo_restrictions =
    permit_mynetworks
    permit_sasl_authenticated
    check_helo_access pcre:/etc/postfix/helo_access.pcre
#    reject_non_fqdn_helo_hostname
#    reject_unknown_helo_hostname

コメントアウト記述が2つに増えただけですね。

その4:SMTP送信時にエラー3

/var/log/maillog に以下のログ

Feb 19 11:07:08 mailserver.osakana.net postfix/smtpd[12710]: NOQUEUE: reject: RCPT from clienthostname.osakana.net[xxx.xxx.xxx.xxx]: 454 4.7.1 <osakana@example.com>: Relay access denied; from=<osakana@osakana.net> to=<osakana@example.com> proto=ESMTP helo=<clienthostname>

これは単純にテスト用にセットアップしたアカウントがSMTPポート25を使っていたせいで失敗していた。
ポート587に変更したら成功

fail2banで全部JAILのステータスを確認したい



Linuxサーバでfail2banを使ってアクセス拒否設定を行っている。

JAILを複数している場合に、全部を一括で確認する手段が標準ではない模様。
調べたところ「kamermans/fail2ban-allstatus.sh」の下記コメントを発見

joergludwig commented on 20 Dec 2017
Shorter version:
fail2ban-client status | sed -n ‘s/,//g;s/.*Jail list://p’ | xargs -n1 fail2ban-client status

これを ~/.bashrc に下記にように追加し、「fail2ban-check」で確認出来るように設定した。

alias fail2ban-check="fail2ban-client status | sed -n 's/,//g;s/.*Jail list://p' | xargs -n1 fail2ban-client status"

ZentyalというExchange互換をうたうUbuntuベースのメール/グループウェアアプライアンス


2019/07/02追記:「Zentyalを日本語で使う場合の設定手順」という別記事もあります。


以前、UbuntuをWeb GUIで管理するツールとしてZentyalというものを見つけたが、結局使わなかった。
現状、どんな感じになっているかを確認してみたところ、Web GUIメインというよりは、メールアプライアンスの管理画面として元気に動いていた。

商用版サイト:http://www.zentyal.com/
非商用版サイト:http://www.zentyal.org/
github:https://github.com/Zentyal/zentyal

Zentyal 5.0が2016/11にリリースされている。

ベースOSはUbuntu 16.04で、そこにOpenChange®, SOGo, Samba4, Heimdal Kerberos®, Dovecot, Postfix, Postgrey, Sieve, Fetchmail, Amavis, SpamAssasin, ClamAV, Apache, CUPS, Netfilter, BIND9, ISC DHCP, NTPd, OpenSSL, OpenVPNを載せてアプライアンスとしている。

興味深いのは「OpenChange
Microsoft Exchange Server互換をうたっており、メールやスケジュール管理のグループウェア的な利用方法もサポートしているらしい。
OutlookからExchange Serverとして使えるようだ。
いままでも、そういう製品はいくつかあったが、大抵商用ライセンスのみで、非商用版でも使えそうなのは見かけなかった。

Zentyalの場合、商用版と非商用版で何が違うのか?
DIFFERENCES BETWEEN ZENTYAL EDITIONS
どちらも「All the latest features.」とあり、機能差はないようだ。
非商用版は、常に最新パッケージを使うので、安定版にとどめておく、ということができない、という違いがあるようだ
まぁ、小規模で使うんだったら、まぁ、関係無い感じですね

Zentyalを使うには以下の4つのパターンがあるようだ
・Zentyal Cloudを契約し、Zentyalが提供する基盤を借りる
・Zentyal Serverを購入し、指定されたISOイメージを使ってインストールを行い、運用する
・Zentyal Development editionのISOイメージを使ってインストールを行い、運用する
・UbuntuにZentyal Development editionのレポジトリを追加し、インストールを行い、運用する

とりあえず試してみるのであれば「Zentyal Development editionのISOインストール」か「UbuntuにZentyal追加」になる。

公式Wiki」の更新状況が微妙なのだが、
いろいろ探すと「5.0対応のInstallation Guide」が出てくる。
この手順にしたがうと、素のUbuntu 16.04に対して、レポジトリを追加することでzentyalがセットアップできるようになるらしい。

この手順でインストールしたものは「DEVELOPMENT EDITION」という扱いで、zentyal.orgで入手できるバージョン扱いになる。
なお、development editionから商用版へのアップデートはできない、とのこと。

で・・・本来であれば導入に関する記事を書くはずだったのですが
いまだのConoHaでUbuntu 16.04 64bit環境がデプロイできないという件が解決していないので、続きがかけていません。

いつになったら解決するかなぁ・・・

2016/12/09 「ConohaでUbuntu16.04 64bitを構築すると高確率で設定したパスワードが利用できない

2016/12/16 「ConoHaでUbuntu 16.04 64bitを指定したパスワードでデプロイできない件は未解決のままもうすぐ10日経過

結局、1ヶ月以上経ってからバグで修正終わりました、という報告があっただけで、使えなかったことと検証したことに対するConoHaからの謝罪はありませんでした。あと、こちらから指摘しなければ利用料金を全額支払わせるつもりでしたね。