qmailの情報収集 2019/08/26

2019/08/26: このURLの初期版作成
2023/11/17: 情報更新


qmailを使ってないけど、このURLや2016年の「qmailの情報収集 2016/03/31」と2012年の「いまさらqmailのパッチ情報収集 2012/02/17」には今もアクセスがあるので内容を更新しておく。

2023/11/17のトピック

・netqmail.orgとqmail.orgのサイト消滅
djbのqmailページは現存しているがメンテナンスはされていない
notqmail2020/05/20に1.08をリリースしたのが最後だが、githubでは開発継続中
s/qmailはURL変更。2023/10/22 4.2.28を出し、4.3を開発中
・openQmailはサイト消滅
・aQmailはgithubあるけど2017年12月以降未更新
・IndiMailはgithubが公式ページ化? ソースコードはgithubsourceforge

継続してメンテナンスされているのは、IndiMail と s/qmail であるようだ。

実際の運用に関して参考になりそうな資料

saGredo.eu linux notePatching qmail
qmailへの各種パッチ適用手法について

saGredo.eu linux noteConfiguring DKIM for qmail
qmailのvirtualdomain環境時に署名を行う手法をindimailによるqmail-dkimパッチ集を使用して解説。なお、IndiemailでのDKIM関連記述


ここから下は以前の記述


うちはqmailを使わなくなったけど、使っていた当時に書いた2016年の「qmailの情報収集 2016/03/31」と2012年の「いまさらqmailのパッチ情報収集 2012/02/17」には、いまでもちらほらアクセスがある。

で・・・最近、qmail的に大ニュースがあったので久々に情報更新。

期待の新星「notqmail」リリース

1998年6月リリースのqmail v1.03に対するパッチをまとめたnetqmail がv1.04として2003年10月にリリースされた。しかし、netqmailは2007年11月のv1.06を最後に更新が無くなった。

今回、qmailでもnetqmailでもないものとして、notqmailがv1.07としてリリースされた。

ゆくゆくはいろんな機能を取り入れることになっていく予定ですが、現状では有名どころの既存qmailパッチ間の差異が大きいようで、notqmailのブランチとして各パッチ適用済みバージョンも提供されている。(詳細は公式ページのPatchesを参照のこと)

BranchOriginal Patch
notqmail-badmailfrom-wildcardTom Clegg’s badmailfrom wildcard
notqmail-badmailfrom-x-relayclientJeremy Kitchen’s badmailfrom-x-relayclient
notqmail-big-concurrencyJohannes Erdfelt’s big-concurrency
notqmail-big-todoRussell Nelson’s big-todo
notqmail-dns-any-to-cnameJonathan de Boyne Pollard’s any-to-cname
notqmail-dns-oversizeChristopher K. Davis’s oversize DNS packet
notqmail-ext-todoAndré Opperman’s ext_todo or “silly qmail syndrome”
notqmail-smtp-authErwin Hoffmann’s smptauth
notqmail-smtp-tlsFrederik Vermeulen’s qmail-smtp-tls
notqmail-smtpd-loggingAndrew Richards’ qmail-logmsg
notqmail-smtpd-spfJana Saout’s qmail-spf

「s/qmail」は細々運営中?

2016年に公式リリースされた「s/qmail」は、2019年6月のv3.3.23が最新リリースとなっている。

ただ、作者のnewsページを見てみると「aqmail is a joint project of Erwin Hoffmann (s/qmail) and Kai Peter (eqmail) to provide an alternative Qmail. Coming soon.」として「aqmail」というものを始めるらしい。

qmail開発者2人によるジョイントプロジェクト「aqmail」

aqmail is a joint project of Erwin Hoffmann (s/qmail) and Kai Peter (eqmail) to provide an alternative Qmail. Coming soon.」として「aqmail」 が2017年に開始されている。

が・・・githubのレポジトリ https://github.com/aqmail/aQmail は全然更新されていないが、元となるs/qmailとeQmailは更新されているという・・・

qlibというeQmail作者が作ったライブラリを利用している。

「eQmail」

サイトとしては「openQmail」という名称となっている。

元のqmailは内部で「djb’s libs」と呼ばれるdjbが作成したライブラリ群を使用しているがこれらはあくまでqmail内部でのみ使われているようなものだった。これを単体ライブラリ化したものがlibdjb(最終リリース2000年10月)となる。そして、このライブラリをGPLとして再実装したものが libowfat(最新リリース2018年10月)というものとなる。

libowfatとdjb’s libsをeQmail作者が使いやすいように実装し直したものが qlib というライブラリになるようで、eQmailではコレを使用している。

こちらは2019年8月リリースのeQmail-1.10.1が最新となっている。

「IndiMail」

IndiMail」という公式ページがあるが管理状況が怪しい。

SOURCEFORGEのIndiMailプロジェクトページを見てみるとそこそこ更新されている。

qmail部分であるindimailパッケージのバージョンとしては2018年10月リリースのindimail v2.6が最新であるようだ。

RoundcubeでUID THREAD Internal error occurredが出た

iRedmailによる統合メールサーバ環境でRoundcubeによるWebメール機能を使っていたら、一部のアカウントで「UID THREAD : Internal error occurred」といったエラーがでた。

iRedmail環境ではRoundcubeのログ、というより、IMAPアクセス時のログを追う感じで調査する必要があり、該当のログは /var/log/dovecot/imap.log にあった。

Jul 25 09:34:29 サーバホスト名 dovecot: imap-login: Login: user=<メールアドレス>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=19537, secured, session=
Jul 25 09:34:29 サーバホスト名 dovecot: imap(メールアドレス): Logged out in=60 out=804
Jul 25 09:34:31 サーバホスト名 dovecot: imap-login: Login: user=<メールアドレス>, method=PLAIN, rip=127.0.0.1, lip=127.0.0.1, mpid=19541, secured, session=<9T/TlnaOYtB/AAAB>
Jul 25 09:34:31 サーバホスト名 dovecot: imap(メールアドレス): Error: open(/var/vmail/vmail1/ドメイン名/a/c/c/account//Maildir/cur/1549258275.M236704P2463.サーバホスト名,S=5291,W=5417:2,) failed: Permission denied (euid=150(vmail) egid=2000(vmail) missing +r perm: /var/vmail/vmail1/ドメイン名/a/c/c/account//Maildir/cur/1549258275.M236704P2463.サーバホスト名,S=5291,W=5417:2,)
Jul 25 09:34:31 サーバホスト名 dovecot: imap(メールアドレス): Logged out in=94 out=1035

えーと・・・

[root@ホスト名 ~]# ls -l /var/vmail/vmail1/ドメイン名/a/c/c/account//Maildir/cur/1549258275*
-rw------- 1 root root 5291  2月  4 14:35 /var/vmail/vmail1/ドメイン名/a/c/c/account//Maildir/cur/1549258275.M236704P2463.サーバホスト名,S=5291,W=5417:2,
[root@ホスト名 ~]#

なんでだろう???

とりあえずchownでvmail:vmailに変えて解決しました。

eSIM対応デバイスのメモ 2019/09/06版

IIJがeSIM対応を始めた。(国内初、IIJmioでeSIM対応のデータ通信サービスを開始)

現時点でeSIM対応デバイスというのは何があるのかを調べて見た。

後述するページにかいてあったものをまとめると、以下のような感じだ。

Apple

AppleのサポートページにあるeSIMに関する記述:「eSIM でデュアル SIM を活用する

Apple iPhone XS (香港,マカオモデルも含む,中国モデルは無い?)
Apple iPhone XS Max (香港,マカオ,中国モデルは物理的なデュアルSIM)
Apple iPhone XR (香港,マカオ,中国モデルは物理的なデュアルSIM)
Apple 11インチ iPad Pro
Apple 12.9インチ iPad Pro (第3世代)
Apple Air (第3世代)
Apple iPad mini (第5世代)

Apple Watchについては標準のeSIM対応手順ではないようで、ちょっと厳しいようだ

Apple Watch Series 3 (GPS+Cellularモデル)
Apple Watch Series 4 (GPS+Cellularモデル)

Android

Google Pixel 2/3/3XLの日本向け端末ではeSIMのかわりにFelicaモジュールが導入されているため使用できない。一部にオーストラリア版もeSIMがない、という記述があったが、どうやらSIMロックがかかっているPixelがいくつかの携帯電話会社から販売されているようで、それだとeSIMが使えないらしい。
Pixel Phone Helpフォーラム「Pixel 3/3XL eSIM support in Australia」でOptusで買ったデバイスだとeSIMインタフェースが無いという事象の報告と、unlockしたやつだと表示されるという報告。
Pixel Phone Help「Get a SIM card & insert it into a Pixel phone」には「 if the phone was purchased in Japan  or if bought with Verizon or Charter service 」という注意書きだった)

Google Pixel 2 (日本以外)
Google Pixel 3 (日本以外)
Google Pixel 3XL (日本以外)
Google Pixel 3a (日本以外)
Google Pixel 3a XL (日本以外)

Planet Gemini PDA (4Gモデル)
Planet Comso Communicator (4Gモデル)

パソコン系

Windows10でのeSIM設定について「eSIM を使って Windows 10 PC で携帯データ ネットワーク接続を利用する

Microsoft Surface Pro LTE Advanced
Lenovo Yoga 630 (snapdragon850搭載Windows)
HP Spectre Folio 13 (日本ではeSIMモデル未販売)
ASUS TransBook Mini T103HAF-LTE,T103HAF-GR079LTE(ただしIIJのeSIMではトラブル発生中)
Acer Swift 7
Acer Swift 3(こちらは物理eSIMカードのようだ)

Android Wear系(時計)

Huawei Watch 2 Pro (2018モデル)
Samsung Gear S2 classic(3G電波のみ対応)
Samsung Gear S3
Samsung Galaxy Watch


参照情報一覧

・Apple 「eSIM でデュアル SIM を活用する」と「2 枚の nano-SIM カードでデュアル SIM を使う

iPhone XS、iPhone XS Max、iPhone XR は、nano-SIM と eSIM を使ったデュアル SIM に対応しています。(1)

eSIM はデジタル SIM なので、物理的な nano-SIM を使うことなく、通信事業者 (キャリア) のモバイル通信プランをアクティベートすることができます。

(1)iPhone の eSIM は、中国大陸では提供予定がありません。香港およびマカオでは、iPhone XS だけが eSIM を搭載しています。中国大陸、香港、マカオでの 2 枚の nano-SIM を使ったデュアル SIM については、こちらの記事を参照してください。

eSIM でデュアル SIM を活用する

中国大陸以外にいる場合や、香港やマカオで iPhone XS をお使いの場合は、eSIM でデュアル SIM を活用する方法をこちらの記事でご確認ください。

2 枚の nano-SIM カードでデュアル SIM を使う

IIJmio eSIMプラン

動作確認済端末(2019年7月4日現在)
Microsoft Surface Pro LTE Advanced
Apple iPhone XS、iPhone XS Max、iPhone XR
Apple 11インチiPad Pro、12.9インチiPad Pro(第3世代)、iPad Air(第3世代), iPad mini(第5世代)
(※)Apple Watch Series 3/Series 4 (GPS + Cellularモデル)では動作しません。

Ubigi eSIMの互換性ガイド

1. List of compatible eSIM devices: 
Smartphones with embedded eSIM*:iphone XS,
iPhone XS Max,
iPhone XR,
Google Pixel 3
*if your phone is locked to your carrier, you will not be able to install Ubigi on its eSIM.
Windows 10 PCs:Lenovo Yoga 630,
HP Spectre Folio
Tablets with embedded eSIM:iPad Air (3rd Generation)
iPad Pro (3rd Generation)
iPad Mini (5th Generation)
Gemini PDA

FLEXIROAM eSIM

Currently supported devices: iPhone XS, XS Max, XR, Pixel 3, Pixel 3 XL
*Not supported by iPhone XR and XS Max purchased in Hong Kong, Macau and Mainland China
*Not supported by Pixel devices purchased in Australia
Same day activation, no contract required!

・CANSTAR BLUEの「What is an eSIM? Providers & Features Explained

ここはいろんな紹介ページだけど、機種がまとまっている。

Watches with eSIM Compatibility
Huawei Watch 2 Pro
Apple Watch Series 3
Apple Watch Series 4
Samsung Gear S2
Samsung Gear S3
Samsung Galaxy Watch
Selected phones with eSIM Compatibility
Google Pixel 2
Google Pixel 3
Samsung Galaxy Note 9
Samsung Galaxy S9, S9+
iPhone XS
iPhone XS Max

・hp「HPビジネス向けノートブックとモバイルワークステーションPC – eSIM対応のWWANモジュールを搭載したコンピューターでは、SIMが装備されていると、スマートカード認証に失敗する場合がある

hpの場合、内部拡張カードのWWANモジュール上にeSIM対応モジュールを採用しているので、カードの採用具合によってeSIM対応していたりするようだ。

eSIM対応のWWANモジュールは次の機器に装備されています:
インテルXMM 7360 LTE-Advanced
インテルXMM 7560 LTE-Advanced Pro
インテルXMM 7262 LTE-Advanced
HP LT4132 LTE/HSPA+ 4Gモバイルブロードバンドモジュール
Snapdragon X12 LTE-Advanced

次のWWANモジュールは、当初eSIM機能なしで出荷されましたが、eSIM機能はファームウェアの更新で有効にできます:
インテルXMM 7360 LTE-Advanced: SoftPaq sp91807でeSIM機能を有効にできます
HP LT4132 LTE/HSPA+ 4Gモバイルブロードバンドモジュール:SoftPaq sp84042でeSIM機能を有効にできます

eSIM対応のWWANモジュールを搭載できるコンピューター:
HP Elite x2 1012 G2
HP Elite x2 1013 G3
HP EliteBook 1040 G4ノートブックPC
HP EliteBook 725 G4ノートブックPC
HP EliteBook 735 G5ノートブックPC
HP EliteBook 745 G4ノートブックPC
HP EliteBook 745 G5ノートブックPC
HP EliteBook 755 G4ノートブックPC
HP EliteBook 755 G5ノートブックPC
HP EliteBook 820 G4ノートブックPC
HP EliteBook 828 G4ノートブックPC
HP EliteBook 830 G5ノートブックPC
HP EliteBook 836 G5ノートブックPC
HP EliteBook 840 G4ノートブックPC
HP EliteBook 840 G5 Healthcare EditionノートブックPC
HP EliteBook 840 G5ノートブックPC
HP EliteBook 840r G4ノートブックPC
HP EliteBook 846 G5ノートブックPC
HP EliteBook 848 G4ノートブックPC
HP EliteBook 850 G4ノートブックPC
HP EliteBook 850 G5ノートブックPC
HP EliteBook x360 1030 G2ノートブックPC
HP EliteBook x360 1030 G3ノートブックPC
HP EliteBook x360 1040 G5ノートブックPC
HP EliteBook x360 830 G5ノートブックPC
HP EliteBook x360 830 G6ノートブックPC
HP ProBook 430 G4ノートブックPC
HP ProBook 440 G4ノートブックPC
HP ProBook 450 G4ノートブックPC
HP ProBook 640 G3ノートブックPC
HP ProBook 640 G4ノートブックPC
HP ProBook 645 G3ノートブックPC
HP ProBook 645 G4ノートブックPC
HP ProBook 650 G3ノートブックPC
HP ProBook 650 G4ノートブックPC
HP ProBook 655 G3ノートブックPC
HP ProBook x360 440 G1ノートブックPC
HP ZBook 14u G4 Mobile Workstation
HP ZBook 14u G5 Mobile Workstation
HP ZBook 15 G4 Mobile Workstation
HP ZBook 15 G5 Mobile Workstation
HP ZBook 15u G4 Mobile Workstation
HP ZBook 15u G5 Mobile Workstation
HP ZBook 17 G5 Mobile Workstation
HP ZBook Studio G5 Mobile Workstation

・gemalto「eSIM搭載コンシューマIoTデバイスをアクティベートする3つの方法

SIMメーカの1つジェムアルトに掲載されているeSIMデバイスにどうやって契約情報を紐つけるか、という手法には3種類あります、といった解説。

今回、IIJmioで提供が始まったのは契約固有のQRコードを読みとる「QRコードによるアクティベーション」となる。

スマホ/パソコン上のアプリからオンライン契約処理をして使える様にする、というのは「GSMAのルートディスカバリーサービスによるeSIMアクティベーション」となる。

どちらの手法もeSIM搭載端末がWiFiなどの別の手法で契約管理を行うサーバにアクセスできる必要があります。

・IIJてくろぐ「IIJmio モバイルサービス eSIMプラン (ベータ版) に関する諸情報

ASUS TransBook Mini T103HAF-LTE, T103HAF-GR079LTEのeSIMで読み込みを行うと本体修理が必要になる、という記述。

UbigiのUbigiサービスの利用条件

フリーロック eSIMプレインストールUbigi SIM
スマートフォン【iOS】 iPhone XS/XR
iOS 12.1以降)
タブレット【iOS】 iPad Air、iPad Pro、iPad Mini
【Android】 Gemini PDA
ノートPCLenovo Yoga 630
HP Spectre Folio
Surface Pro 5 LTE AdvancedASUS Mini Transformer T103HAFACER Swift 7VAIO Series 11/13/Pro PF/PGACER Swift 3

ACER 4G LTEページ

Swift 7 には eSIM が内蔵されています。Swift 3 eSIM は取り外し可能です。

ユーザバックエンドがSQLのiredmailのSOGoでユーザがログインできない

2020/09/10追記

iRedMail内のパスワード文字列取り扱いについて「Password hashes」というドキュメントが公開された。

それによればmd5-cryptを使いたい場合は「{CRYPT}$1$5ulpxxxx$VS0xHxxKxMPBSIPQlXDXC/」という風に「{CRYPT}」という前置詞を追加すれば良いらしい。


qmail+vpopmailからパスワード暗号化文字列ごと移植したpostfix+dovecotベースの統合環境iredmail環境がある。

iredmailにはExchange互換サーバのSOGoもあるので、そちらでログインしようとしたらエラーになる。

roundcubeからだとログインができるし、dovecotを使うPOP3/IMAPアクセスでも問題無い。

/var/log/sogo/sogo.log へのエラーは下記の様になっていた。

Jul 04 13:15:04 sogod [9257]: SOGoRootPage Login from 'クライアントIPアドレス' for user 'ユーザ名@ドメイン名' might not have worked - password policy: 65535  grace: -1  expire: -1  bound: 0

iredmailのフォーラムに「Can’t configure password policy when using SOGo」といのがあり、sogo.confに「passwordPolicy = YES;」を追加すればいいじゃん?とあったのでやってみたが、変化はなし。

SOGo側のbug tracking system「 0003899: SQL authentication 」にてヒントを発見。

暗号化文字列の指定の問題のようだ。

今回、sogo.confは下記の様に「userPasswordAlgorithm = ssha512」となっており、パスワード暗号化文字列がssha512フォーマットである、ということになっている。

    SOGoUserSources = (
        {
            type = sql;
            id = users;
            viewURL = "mysql://sogo:~@127.0.0.1:3306/sogo/users";
            canAuthenticate = YES;

            // The algorithm used for password encryption when changing
            // passwords without Password Policies enabled.
            // Possible values are: plain, crypt, md5-crypt, ssha, ssha512.
            userPasswordAlgorithm = ssha512;
            prependPasswordScheme = YES;

            // Use `vmail.mailbox` as per-domain address book.
            isAddressBook = YES;
            displayName = "Domain Address Book";
            SOGoEnableDomainBasedUID = YES;
            DomainFieldName = "domain";
        },

しかし、今回、vpopmail時代の文字列「$1$5ulpxxxx$VS0xHxxKxMPBSIPQlXDXC/」という書式、つまりはmd5-cryptフォーマットを流用しているので認証できなかった、ということになる。

メインとなるiredmail側は新しくパスワードを設定した場合はssha512、移植したものはmd5-cryptという運用にしている。

ただ、postfix,dovecot,roundcubeの運用に関しては、ssha512でもmd5-cryptでも問題無くログインできている。

それに対してSOGo側は「SOGO Installation and Configuration Guide」を見ると userPasswordAlgorithm には1つの値しか指定はできないようだ。

セキュリティを考えると全体をmd5-cryptに下げる、という選択肢はとれないので、SOGoを使いたい場合は、パスワードを再設定する、ということになる。

パスワードを再設定すると以下のログとなる。

Jul 04 13:50:43 sogod [1094]: SOGoRootPage successful login from 'クライアントIPアドレス' for user 'ユーザ名@ドメイン名' - expire = -1  grace = -1

ラズパイ4がUS,EU圏以外でも発売できる理由って何なんだろう?

ラズベリーパイ4が発売になりました。

基板上にFCC ID(US)とCEロゴ(EU圏)が印字されているので、たぶんこの2箇所で使うのは合法なんだろうなぁ、って感じです。

で・・・いま手元にあるラズパイ3の箱を見てみると各国の電波系の認証IDとロゴがあります。

CE

CEマークで、EU圏で使う場合に必要です。

FCC

FCCマークで、アメリカで使う場合に必要です。

FCC IDが発行されます。文字列を指定できるようで、製品名称が入ったりします。

CMIT ID 中国のCCC認証を取得すると発行されるIDです。SRRCの場合もあるようです。

KCC

韓国のKCCマークです。

MSIP-CMN-P2R-RPI32がラズパイ3のIDのようです。

NCC

台湾のNCCマークです。

通称技適マークです。 工事設計認証のマーク。TELECとも呼ばれることがあります。

香港で使用するための認証です。

上記の認証を発行している組織「通訊事務管理局」のロゴです。

というわけで、私が所有しているラズパイ3を合法的に利用できるのは、日本、アメリカ、EU圏、韓国、中国、香港、台湾であるようです。

それ以外の国については認可がおりてないため取り締まられる可能性がある、ということになります。

いままでの機器における認可の取得状況を見る限り、ラズパイ4についても、同じようにアメリカとEU圏以外についてはちゃんと認証を取得しなければ不味いはずなのですが、現時点ではそれ以外の国についてちゃんと認証取得が完了しているかどうかは不明です。

いったいどのようになっているのでしょうかねぇ・・・


株機器会社イー・オータマの「各国申請代行」のページに各国の認証ロゴがあり、調べる手がかりになりました。

総務省の平成24年の記事「 各国の基準認証制度の概要 -MRA情報の調査に親しむ- 」というpdfファイルは韓国、カナダ、中国、オーストラリア、EU圏、シンガポール、アメリカにおける電波認証に係わる組織と規制についての説明が簡単にされており、大変役にたちました。

また平成22年発行の「各国基準認証制度の概要」ではインド、中国、韓国、カナダ、ペルー、ロシアで(データ通信も行う)無線機器を販売する際に必要となる認証について解説されています。