caﬀ と mail-transport-agent
第 156 回 2017 年 10 月度 東京エリア Debian 勉強会

yy y ja jp

2017 年 10 月 21 日

Agenda

1
2
3
4

caﬀ
Mail Transport Agentmail-transport-agent
caﬀ と mail-transport-agent

caﬀ

caﬀ(1) – CA - Fire & Forget
キーサインパーティなどで便利なツール
signing-party パッケージでインストールできるキーサインパーティに参加した後で、このコマンドを実行すれば必要な作業をやってくれるcaﬀ

caﬀ(1) – CA - Fire & Forget
キーサインパーティなどで便利なツール
signing-party パッケージでインストールできる
キーサインパーティに参加した後で、このコマンドを実行すれば必要な作業をやってくれる1
2
3

参加した人の公開鍵を取得
その公開鍵に自分の秘密鍵で署名署名済みの公開鍵をその人にメールで送信Mail Transport Agent (1/3)

メール転送エージェント MTA
受け付けたメッセージを他のサーバなどに転送する

Mail Transport Agent (1/3)

メール転送エージェント MTA
受け付けたメッセージを他のサーバなどに転送する
受け付けかた（インターフェース）
SMTP（TCP 25 番ポートなど）
sendmail 互換（/usr/sbin/sendmail コマンドを実行して標準入力に渡すなど）など

Mail Transport Agent (1/3)

メール転送エージェント MTA
受け付けたメッセージを他のサーバなどに転送する
受け付けかた（インターフェース）
SMTP（TCP 25 番ポートなど）
sendmail 互換（/usr/sbin/sendmail コマンドを実行して標準入力に渡すなど）など

転送のしかた自力で DNS を引いて送付先サーバに転送他のサーバに渡して転送してもらう（リレー）Mail Transport Agent (2/3)

受け付けかた（インターフェース）

SMTP（TCP 25 番ポートなど）
sendmail 互換（/usr/sbin/sendmail コマンドを実行して標準入力に渡すなど）など
メッセージをマシン上にある（ローカル）MTA に渡すだけなら、わざわざメールサーバ（SMTP サーバ）を立ち上げてそれ経由で渡す必要はない– /usr/sbin/sendmail コマンドを起動して、そのコマンド自体が転送してくれれば充分Mail Transport Agent (3/3)
転送のしかた自力で DNS を引いて送付先サーバに転送他のサーバに渡して転送してもらう（リレー）Mail Transport Agent (3/3)
転送のしかた自力で DNS を引いて送付先サーバに転送他のサーバに渡して転送してもらう（リレー）
自力で転送してしまうと

Mail Transport Agent (3/3)
転送のしかた自力で DNS を引いて送付先サーバに転送他のサーバに渡して転送してもらう（リレー）
自力で転送してしまうとそのメールサーバをインターネット公開にしていない
場合は自分宛てのメールが受信できない – エラーメー
ルも受け取れないMail Transport Agent (3/3)
転送のしかた自力で DNS を引いて送付先サーバに転送
他のサーバに渡して転送してもらう（リレー）
自力で転送してしまうとそのメールサーバをインターネット公開にしていない
場合は自分宛てのメールが受信できない – エラーメー
ルも受け取れない
自分のメールアドレスのドメインがそのサーバ管理でない場合はなりすまし（フィッシング）になってしまう
This message may not have been sent by:
xxx@example.com

Why is this message in Spam? It’s similar to messages
that were detected by our spam filters.

Mail Transport Agent (3/3)
転送のしかた自力で DNS を引いて送付先サーバに転送
他のサーバに渡して転送してもらう（リレー）
自力で転送してしまうとそのメールサーバをインターネット公開にしていない
場合は自分宛てのメールが受信できない – エラーメー
ルも受け取れない
自分のメールアドレスのドメインがそのサーバ管理でない場合はなりすまし（フィッシング）になってしまう
This message may not have been sent by:
xxx@example.com

Why is this message in Spam? It’s similar to messages
that were detected by our spam filters.
OP25B の影響で送信できないこともあるmail-transport-agent (1/4)
Debian ポリシーで定められた仮想パッケージのうちの1つ/usr/share/doc/debian-policy/virtual-package-names-list.txt.gz

https://www.debian.org/doc/packaging-manuals/
virtual-package-names-list.txt で見られる

mail-transport-agent
Smail, Sendmail, &c)a mail transport agent (e.g.

mail-transport-agent を提供しているパッケージは
apt-cache showpkg mail-transport-agent や https://packages.debian.org/stable/mail-transport-agent で見られる

mail-transport-agent (2/4)
Debian のデフォルトは exim4-daemon-light– 仮想パッケージ default-mta も提供 (Provides)
どのパッケージも Conflicts: mail-transport-agent,Replaces: mail-transport-agent, Provides:
mail-transport-agent と書いてある⇒ 2 つ以上インストールできない$ apt-cache show exim4-daemon-light
Package: exim4-daemon-light
Source: exim4
Version: 4.89-2+deb9u1
Installed-Size: 1167
Maintainer: Exim4 Maintainers <pkg-exim4-maintainers@lists.alioth.debian.org>
Architecture: amd64
Replaces: exim4-base (<= 4.61-1), mail-transport-agent
Provides: default-mta, exim4-localscanapi-2.0, mail-transport-agent
Depends: exim4-base (>= 4.89), libc6 (>= 2.16), libdb5.3, libgnutls30 (>= 3.5.6
Conflicts: mail-transport-agent

mail-transport-agent (3/4)
MTA のパッケージが 2 つに分かれていることもある –mail-transport-agent を提供するパッケージが sendmail
互換インターフェース (/usr/sbin/sendmail) などを提供$ apt-cache show msmtp-mta
Package: msmtp-mta
Source: msmtp
Version: 1.6.6-1（略）
Replaces: mail-transport-agent
Provides: mail-transport-agent
Depends: msmtp
Conflicts: mail-transport-agent
Description-en: light SMTP client with support for server profiles - the regula（以下略）$ apt-cache show msmtp
Package: msmtp
Version: 1.6.6-1（略）
Depends: libc6 (>= 2.22), libgnutls30 (>= 3.5.6), libgsasl7 (>= 1.1), debconf (Recommends: ca-certificates
Suggests: msmtp-mta
Description-en: light SMTP client with support for server profilesmail-transport-agent (4/4)

どの MTA が SMTP サーバも提供するかはパッケージのプログラム次第

SMTP サーバも提供する – exim4-daemon-light, postfix,
nullmailer など
SMTP サーバを提供しない（リレー専用） – msmtpなど

caﬀ と mail-transport-agent (1/2)

caﬀ は署名済みの公開鍵をその人にメールで送信実行されたマシン上にある（ローカル）MTA を使ってメール送信している
デフォルトの MTA だとローカル配送のみ
Subject: Mail delivery failed: returning message to sender（略）
Mailing to remote domains not supported

インターネットに出ていかない！ MTA の設定が必要

caﬀ と mail-transport-agent (2/2)
もし自分の（uid に使っている）メールアドレスが自分の管理するメールサーバのドメインでないのならメールサーバ（SMTP サーバ）なし
リレー専用
な MTA を選べば設定がかんたん– 例: msmtp-mta パッケージ

caﬀ と mail-transport-agent (2/2)
もし自分の（uid に使っている）メールアドレスが自分の管理するメールサーバのドメインでないのならメールサーバ（SMTP サーバ）なし
リレー専用
な MTA を選べば設定がかんたん– 例: msmtp-mta パッケージ
https://wiki.debian.org/msmtp
個人の設定ファイル ˜/.msmtprc に Gmail アカウントとSMTP サーバの情報を書いてリレーする方法が書かれている
パスワードを GPG 鍵で暗号化して保存する方法も書かれているまとめcaﬀ はローカルの MTA を使ってメール送信する
ローカルの MTA は mail-transport-agent 仮想パッケージを提供するパッケージをインストールすればよいマシンには mail-transport-agent 仮想パッケージを提供するパッケージのうち 1 つだけをインストールできる(Conflicts/Replaces/Provides)
MTA のパッケージが 2 つに分かれていることもある（msmtp/msmtp-mta, qmail/qmail-run など）
MTA には SMTP だけでなく sendmail 互換インターフェースもある – caﬀ 作業マシンがインターネット公開のメールサーバでないなら SMTP は不要
自分が管理していないドメインのメールアドレスなら、その外部 SMTP サーバにリレーするようにローカルのMTA をインストール（msmtp-mta パッケージがおすすめ）し設定するとよい