これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド kuvert です。
プログラム:
NAME
kuvert - 受信者に基づいて電子メールに自動的に署名および/または暗号化します
SYNOPSIS
クベール [-d] [-o] [-r|-k]
DESCRIPTION
Kuvert は、送信メールの完全性と機密性を独立して保護するツールです。
ユーザーの操作を最小限に抑えながら、メール クライアントの機能を実現します。
キューからメールを読み取り (または SMTP 送信を受け入れ)、受信者を分析し、
誰に対してメールを暗号化および/または署名するかを決定します。 結果のメールは強制的に送信されます。
RFC3156 で定義された PGP-MIME フレームワークを使用し、最終的に送信メール サーバーに送信されます。
Kuvert はすべての暗号化タスクに GnuPG を使用し、次のものときれいにインターフェイスできるように設計されています。
外部シークレット キャッシュ ツール。
OPTIONS
起動後、kuvert は定期的にキュー ディレクトリをスキャンし、からのメールを処理します。
そこには; GnuPG パスフレーズの設定によっては、kuvert が自身をデーモン化する場合があります。 どちらでも
この場合、kuvert はアクティブに終了するまで永久に実行されます。
Kuvert の動作は、次の例外を除き、主に構成ファイルを使用して構成されます。
次のコマンドライン オプション:
-d デバッグ モードを有効にします。追加のデバッグ情報が STDERR に書き込まれます。 (これは
通常のロギングとは独立しています。)
-o ワンショット モードを有効にします。kuvert は永久にループせず、現在のもののみを処理します。
キューの内容を確認して終了します。 Kuvert は、この場合にも SMTP リスナーを開始しません。
モード。
-r 実行中の kuvert デーモンに、構成ファイルと gpg キーリングをリロードするように指示します。
これは、SIGUSR1 をそれぞれのプロセスに送信することと同じです。
-k 実行中の kuvert デーモンに正常に終了するように指示します。 これは、
SIGTERM をそれぞれのプロセスに送信します。
OPERATION
起動時に kuvert は設定ファイルと gnugp キーリングを読み取り、
電子メールアドレスとキーの関連付け。
その後、Kuvert はメール転送エージェント (MTA) のラッパーとして機能します。
いつものように電子メールを送信しますが、直接送信する代わりに kuvert に送信します。
kuvert は定期的にキューをスキャンし、キュー内の電子メールを処理します。 キーホルダーの場合
受信者のキーが含まれている場合、kuvert はその受信者への電子メールを暗号化して署名します。
利用可能なキーがない場合、kuvert は電子メールに (クリア/分離) 署名のみを行います。 続いて、
電子メールは、MTA プログラムまたは SMTP を使用して送信されます。
処理される電子メールには、任意の有効な MIME 構造を含めることができます。 kuvert は MIME を解凍します
ロスレスで構造化し、(暗号化/署名された) メールを PGP/MIME オブジェクトに再パックします。
RFC3156に記載されています。 メールの構造は保持されます。 署名と暗号化カバー
最上位のヘッダーを除くすべてのメールコンテンツ: たとえば、
「件名」ヘッダーは平文で渡されますが、本文または添付された MIME オブジェクトは平文で渡されます。
署名/暗号化されています。
暗号化または署名の決定は、次のコマンドを使用してアドレスごとに上書きできます。
設定ファイルを使用することも、実際の電子メールでディレクティブを使用してさらに細かく設定することもできます。
Kuvert に対して、電子メールをまったく変更しないように指示することもできます。
USCISに、 メール 〜へ クバート
Kuvert は主に、キュー ディレクトリにダンプされるメールに依存しています。 クベールが運営する
数値のファイル名を持つファイルのみ。 キューディレクトリに保存するものはすべて、
このようなファイル名は、単一の RFC2822 形式の電子メールを含むものとして扱われます。
ただし、主流の MUA はこのようなファイルをどこかにドロップするスキームをサポートしていないため、
kuvert には、kuvert_submit というヘルパー プログラムが付属しています (「 kuvert_submit(1))
sendmail のメール送信動作を模倣しますが、kuvert キューにフィードします。 あなたのMUAができるなら
メール送信用のプログラムを実行するように指示される場合は、kuvert_submit を使用できます。
あるいは、SMTP 経由で電子メールを kuvert に送信することもできます。 Kuvertにはビルトインが付属しています
キュー ディレクトリにフィードする受信専用メール サーバー。 他の人に許可するのと同じように、
署名のために電子メールを送信するのは愚かで危険です。kuvert のメール サーバーのみです
ローカルホストの IP アドレスをリッスンし、MUA が SMTP 認証を使用して
自分の提出物のみが受け入れられるようにしてください。 MUA が SMTP AUTH PLAIN をサポートしている場合、または
LOGIN し、ローカルホストと送信電子メールに特定のポートを使用するように指示できます。
この仕組みを利用することができます。
運搬 メール 以降
Kuvert は、ローカル MTA プログラムを実行するか、SMTP を話すことによってアウトバウンド電子メールを送信できます。
選択した (固定) 送信メール サーバーに送信します。
受信者、 アイデンティティ SMTP 封筒
一般に、kuvert は、ヘッダーの To、Cc、Bcc、および Resent-To ヘッダーを使用して受信者を識別します。
キューに入れられたメール。 メールを kuvert に送信するために使用したメカニズムが明示的に設定されていた場合
受信者、次にこれら オーバーライド 電子メール内のヘッダー。
これは、kuvert_submit が受信者のリストを指定して -t オプションなしで呼び出された場合に当てはまります。
SMTP送信用。
kuvert が受信 SMTP 経由で電子メールをキューに入れる場合、SMTP エンベロープ オーバーライド 電子メールのヘッダー:
エンベロープには存在するがヘッダーには存在しない受信者は Bcc として扱われます。
ヘッダーにはリストされているがエンベロープにはリストされていない受信者は、 無視され。 すべての Resent-To ヘッダーは
SMTP で送信された電子メールの場合は無視されます。
オーバーライドする受信者が指定されていない場合にのみ、kuvert はメールの Resent-To ヘッダーをチェックします。
存在する場合、電子メールは再送信先アドレスに直ちに送信されます。 無し さらに
処理。 (これは、受信者を通過させない MUA の標準的な「バウンス」動作です
MSP/MTA に直接接続します)。
アウトバウンド電子メールを送信するとき、kuvert は通常、キューに入れられた電子メールの From ヘッダーを次のように使用します。
身元。 電子メールが SMTP 経由でキューに入れられた場合、エンベロープは再び オーバーライド メールヘッダー。
ローカル MTA 経由で電子メールを送信する場合、kuvert は「-f」を使用してエンベロープ送信者を設定することに注意してください。
プログラム; MTA によってそのようなことを行うのに十分な信頼が得られていない場合、メールは
ユーザー名とその事実を示す X-Authentication-Warning ヘッダーが追加されます。
エンベロープは明示的に設定されました。
パスフレーズ ハンドリング
Kuvert は、貴重な鍵のパスフレーズを処理しません。 gpg を使用することを選択できます。
エージェントを(オンデマンドまたはキャッシュ)パスフレーズ ストアとして使用するか、kuvert にどのプログラムかを伝えることができます
必要に応じてパスフレーズをクエリするために実行する必要があります。 このようなクエリ プログラムは次のように実行されます。
GnuPG へのパイプライン、kuvert はパスフレーズにアクセス、保存、キャッシュしません
それ自体: シークレット キャッシュには、Linux などのより良いオプションが利用可能です。
カーネル内のキーストレージ (キーコントロール(1))。
認定条件 クバート 決定する この試験は (いいえ) に Do
受信者ごとに、kuvert に XNUMX つの異なるアクションのいずれかを適用するように指示できます。
なし
電子メールはそのまま送信されます (構成ディレクティブの削除を除く)。
署名のみ
電子メールは(クリア/分離済み)署名されています。
フォールバック
この受信者が使用できるキーがある場合、または
署名されただけです。
フォールバック-すべて
キーが利用可能な場合、電子メールは暗号化され、署名されます。 を 受信者、または受信者のみ
それ以外の場合は署名してください。 アクションが「なし」に設定されている受信者および Bcc に送信された受信者は、
このアクションの影響を受けません。
フォールバックオールアクションは、暗号化に関する限り「全か無か」のアクションです。
この電子メールには暗号化されたバージョンと暗号化されていないバージョンが混在しないようにします。
送信されます。可能であれば全員に暗号化を使用します。そうしないと、全員が暗号化されます。
署名されています (または署名されていない場合もあります)。 (Bcc の受信者は例外です。)
指定
Kuvert はアクション仕様に XNUMX つのソースを使用します: 個別の電子メール内のディレクティブ
アドレス、設定ファイル内のアクション ディレクティブ、電子メール内の X-Kuvert ヘッダー、
最後に、設定ファイルで指定されたデフォルトのアクションです。
1. まず、kuvert は構成ファイル内のアクション ディレクティブを探します。 このような指令
アクションとアドレスと照合する正規表現として指定されます。
最初に一致したディレクティブが使用されます。
2. 一致するディレクティブが見つからない場合は、設定ファイルで指定されたデフォルトのアクションが実行されます。
適用される。
3. Kuvert は、X-Kuvert ヘッダーの存在をチェックするようになりました。その内容は、
アクション キーワード。このメールの受信者を除くすべての受信者に適用されます。
この段階でのアクションは「なし」です。 (つまり、「no」を指定した場合、
一部のアドレスに対して「暗号化/署名」が設定されている場合、これを一括してオーバーライドすることはできません。
ファッション。)
4. 次に、Kuvert は各受信者の電子メール アドレスを分析します。 アドレスの形式が次の場合
一部のテキスト「action=someaction」[メール保護]>"、kuvert は引用部分を削除し、
受信者のアクションを someaction でオーバーライドします。
5. 最後に、kuvert は受信者に「fallback-all」アクションがあるかどうかを確認します。 もしそうなら、クベルト
a) 受信者 (Bcc を除く) のアクションが「signonly」または「none」であるかどうかを確認します。 これなら
この場合、すべての「フォールバック」アクションと「フォールバックオール」アクションは次のようにダウングレードされます。
「サインオンリー」。
b) すべての受信者 (Bcc を除く) のキーが利用可能かどうかを確認します。 そうでない場合は、すべて
「fallback」および「fallback-all」アクションは「signonly」にダウングレードされます。
6. Bcc: ヘッダーで指定された受信者は常に独立して扱われ、
他のアクションとは別に、「フォールバックオール」アクションはすべて「フォールバック」にダウングレードされます。
BCC アドレス。暗号化が使用されている場合、電子メールは個別に暗号化されるため、
「通常」に送信された電子メールには、Bcc に送信された受信者の記録は表示されません。
受信者。 また、Bcc: ヘッダーは電子メールを送信する前に削除されます。
キー 選択
Kuvert は、キーリング内のキーの順序に基づいて、どのキー (潜在的に
暗号化には、特定のアドレスを持つ多くのアドレスを使用する必要があります。 デフォルトでは、kuvert は last
指定されたアドレスで見つかったキー。 複数のキーを持っている人向け
単一アドレスでは問題が発生する可能性があるため、kuvert にはアドレスをオーバーライドするメカニズムがあります。
暗号化キーの選択: アドレスを暗号化するキーを指定できます。
設定ファイル (以下を参照) を使用するか、設定ファイル内でのキーの選択をオーバーライドすることもできます。
単一メール:
受信者のアドレスが次の形式で指定されている場合
何らかの名前「key=keyid」[メール保護]>
Kuvert は二重引用符で囲まれた部分を削除し、この特定のキーをこの受信者に使用します。
そしてこの一通のメールについても。 keyid は XNUMX 進数のキー識別子として指定する必要があります。 これ
このメカニズムは、キーリングに含まれる関連付けをオーバーライドし、一緒に使用する必要があります。
注意。 キーとアクションの両方のオーバーライドを単一のオーバーライドとして同時に指定できることに注意してください。
次のようなカンマ区切りのエントリ:
何らかの名前「action=fallback,key=0x12345」[メール保護]>
署名キーも同様の方法でオーバーライドできます。From アドレスに
「キー=キー ID" スタンザ、kuvert はこの XNUMX つの電子メールに署名するためにこのキーを使用します。
CONFIGURATION
kuvert 構成ファイルはプレーンテキストであり、空白行と「#」で始まる行は無視されます。
無視されます。
設定には、オプションとアドレス/アクション仕様の XNUMX つのカテゴリがあります。
住所 行動
アドレス + アクションの指定は XNUMX 行に XNUMX つずつ指定されます。 このような行は次の文字で始まる必要があります
空白、その後にアドレス正規表現、その後に空白とアクション
キーワード。 アクション「フォールバック」および「フォールバックオール」の場合、kuvert では、
「fallback,0x42BD645D」のような単一のキー識別子。 行の残りの部分は
無視されます。
アドレス正規表現は完全な Perl 正規表現であり、生の SMTP に適用されます。
アドレス (つまり、電子メール アドレスのコメントや名前ではありません)、大文字と小文字は区別されません。 の
正規表現は ^ と $ でアンカーする必要がある場合があります。 kuvert はあなたのためにそれをしません。
次の例のように、正規表現のコアのみを指定する必要があります (m// や // は使用しません)。
# メーリングリストのロボットを混同しないでください
^.*-request@.*$ なし
action キーワードは、「none」、「signonly」、「fallback」、または「fallback-all」のいずれかである必要があります。 見る
セマンティクスについては、「Kuvert が何を (しないで) 行うかをどのように決定するか」セクションを参照してください。 行動の順序
構成ファイル内の指定は重要です。検索は最初に一致した時点で終了します。
オプション
オプションは XNUMX 行に XNUMX つ指定され、オプション行はオプション名で始まり、その後に続く必要があります。
いくつかの空白によって。 すべてのオプションでは大文字と小文字が区別されます。 オプション内容によっては、
または、オプション行の残りのすべてがオプション値として割り当てられます。 列をなして
コメントはサポートされていません。
次のオプションのリストでは、山括弧は次のように必須の引数を示します。
デフォルトキー
ブール引数を持つオプションは、「1」、「on」、および「t」を true として認識し、「0」、「off」、
"f" は false (およびその大文字バージョン)。 他のオプションにはさらに制限があります
引数の型。 kuvert は通常、起動時にオプションの健全性をチェックします。
知られている オプション
シスログ
kuvert がログ記録に syslog を使用する必要があるかどうか、使用する場合はどの機能を使用するか。
デフォルト: 何もありません。 これは、以下のログファイル オプションとは独立しています。
ログファイル
kuvert がログ メッセージをファイルに追加して書き込むかどうか。 デフォルト: なし
設定。 これは、上記の syslog オプションとは独立しています。
エラー時のメール
kuvert で重大または致命的なエラーが発生した場合、次の場合に電子メールがこのアドレスに返信されます。
設定。 デフォルト: 未定義。 この電子メールは、syslog による通常のログに加えて送信されます。
またはログファイル。
キューディル
kuvert とそのヘルパー プログラムが処理対象のメールを保存する場所。 デフォルト:
~/.kuvert_queue. 必要に応じてディレクトリが作成されます。 ディレクトリは次の者によって所有されている必要があります
ユーザーは kuvert を実行しており、モード 0700 を持っています。
テンポディレクトリ
kuvert が一時ファイルを保存する場所。 デフォルト: というディレクトリ
クベルト。 。 $TMPDIR または /tmp にあります。 必要に応じてディレクトリが作成され、
kuvert を実行しているユーザーが所有し、モード 0700 を持つ必要があります。このディレクトリは次のとおりです。
電子メールの処理後は完全に空になります。
識別
kuvert が送信メールに X-Mailer ヘッダーを追加するかどうか。 デフォルト: false。 の
X-Mailer のヘッダーは、プログラム名とバージョンで構成されます。
前文
kuvert が生成された MIME メールに説明のプリアンブルを含める必要があるかどうか。
デフォルト:true
間隔
これにより、キューのチェック間隔が秒単位で設定されます。 デフォルト: 60 秒。
msサーバー
アウトバウンド電子メール用のメール送信サーバー。 デフォルト: 未設定。 これが設定されている場合、kuvert
SMTP を使用してアウトバウンド電子メールを送信します。 設定されていない場合、kuvert はメール送信を使用します。
ローカルマシン上のプログラム。 以下の msp を参照してください。
msport
メール送信サーバーがリッスンする TCP ポート。 デフォルト: 587。次の場合は無視されます。
msserverが設定されていません。
SSL
送信 SMTP 送信に SSL または STARTTLS を使用するかどうか。 値は次のとおりです。
STARTTLS を使用する場合は「starttls」、生の SSL を使用する場合は「ssl」のいずれかになります。 SSL暗号化は使用されません
このオプションが設定されていない場合。
ssl-cert
SSLキー
ssl-ca
SSL クライアント証明書を SMTP サーバーに提示する場合は、両方の ssl-cert を設定します。
そしてSSLキー。 システム全体の CA 証明書の設定に証明書が含まれていない場合
SMTP サーバーが使用している場合は、関連するすべてのファイルを含む PEM ファイルを指すように ssl-ca を設定します。
CA 証明書。 ssl オプションが設定されていない場合、これらはすべて無視されます。
msuser
メール送信サーバーで SMTP 認証に使用するユーザー名。 SMTP認証
msuser が設定されていない場合は試行されません。 msserver が設定されていない場合は無視されます。
mspass
SMTP認証のパスワード。 msserver または msuser が設定されていない場合は無視されます。
クエリからのmspass-secret
mspass をクエリ シークレット プログラムの代わりに使用して取得する必要があるかどうか。
構成ファイルで mspass を指定します。 msserver または msuser が設定されていない場合は無視されます。 もし
このオプションが設定されている場合、query-secret プログラムを使用して「smtp-
最初のメールが処理されるとき、パスワードはキャッシュされます。
認証が成功しない場合は、認証が成功するまで再度質問されます。
msp
kuvert が電子メールの配信に使用するプログラムを定義します。 デフォルト: "/ usr / sbin / sendmail
-om -oi -oem"。msserver が設定されている場合、これは無視されます。引数には完全な文字列を含める必要があります。
プログラムへのパス。プログラムは共通のメール転送エージェントを受け入れる必要があります。
Linux 標準ベースで定義されている引数 (「
<http://refspecs.linux-foundation.org/LSB_2.0.0/LSB-Core/LSB-Core.html#BASELIB-SENDMAIL-1>)。
取り外し可能
kuvert に対して、起動時にバックグラウンドで実行できることを示し、
ターミナル。 デフォルト: false。
接続解除は、選択したパスフレーズ入力メカニズムが必要ない場合にのみ機能します。
元の端末を介した対話。 パスフレーズを委任する場合にこれが当てはまります
gpg-agent への処理を行い、X11 pinentry 用に設定するか、秘密クエリの場合は設定します。
プログラムは、独自のウィンドウを持つ X11 プログラムです。
マポート
Kuvert は、SMTP 経由で処理する電子メールを受け入れることができます。 このオプションは、TCP ポート kuvert を設定します。
リッスンします (ローカルホストのみ)。 デフォルト: 2587。ma-user と ma-pass が異なる場合は無視されます。
両方セット。 このメカニズムを使用したい場合は、メール プログラムに localhost を使用するように指示してください。
または 127.0.0.1 を送信メール サーバーとして使用し、SMTP 認証を有効にします (下記を参照)。
maユーザー
このオプションは、メールを受け入れるために必要な SMTP 認証ユーザー名を設定します。
SMTP。 デフォルト: 未定義。 Kuvert は、ユーザーとユーザーの両方がいない限り、SMTP 送信をリッスンしません。
とma-passが設定されています。 Kuvert は、次の場合を除き、SMTP 経由での電子メールの処理を受け入れません。
SMTP 認証を使用して自分の身元を証明します (または、ローカル マシン上の誰でも認証できます)
あなたが署名した電子メールを送信するには、kuvert を使用してください!)。 Kuvert は現在 AUTH PLAIN のみをサポートしています
および LOGIN (ループバック インターフェイスのみでリッスンするため、これは大きな問題ではありません)。
このオプションは、kuvert があなたのものとして認識するユーザー名を設定します。 これは何でも構いませんし、
実際のアカウント名である必要はありません。
マパス
このオプションは、次の場合にメール ユーザー エージェントが SMTP 認証に使用する必要があるパスワードを設定します。
SMTP 経由でメールを送信します。 デフォルト: 未設定。 Kuvert は SMTP をリッスンしません
ma-user と ma-pass の両方が設定されていない限り、送信はできません。 このパスワードは必須ではありません
実際のアカウントのパスワード (実際にはそうすべきではありません)。 SMTP 送信を使用することに注意してください
kuvert 構成ファイルを厳密なアクセス許可 (0600) で保護する必要があります。
が提案されています)。
デフォルトキー
署名キーとして使用するデフォルトのキーを指定します。 デフォルト: 未設定。これは、GnuPG が取得することを意味します。
(通常は最初に利用可能な秘密鍵) を選択します。 From でオーバーライドできます:
アドレスについては、「キーの選択」セクションを参照してください。
デフォルトアクション
受信者に対するオーバーライドが見つからない場合に実行されるアクション。 デフォルト: なし。
認識されたアクションについては、「Kuvert が行うべきこと (行わないこと) をどのように決定するか」セクションを参照してください。
常に信頼する
暗号化のためにすべてのキーを信頼するように gpg に指示するかどうか。 デフォルト: false。
使用剤
kuvert がすべてのパスフレーズ処理を gpg-agent に委任し、gpg を呼び出す必要があるかどうか
適切なオプションを付けて。 デフォルト: false。 設定されていない場合、kuvert はユーザー (または
一部の指定されたパスフレーズ ストア) でパスフレーズをオンデマンドで使用できます。
クエリーシークレット
パスフレーズの取得にどのプログラムを使用するかを kuvert に指示します。 デフォルト: "/bin/sh -c
'stty -エコー; read -p \"パスフレーズ %s: \" X; \ stty エコー; echo $X'" を使用する場合は無視されます。
エージェントが設定されています。 Kuvert はパスフレーズを内部に保存せず、
署名時に gpg を使用してパイプライン内のプログラムを示しました。 パスフレーズ ストアを使用する場合
(Linux カーネルの keyutils や Secret-agent など)、検索内容を入力します。
ここのプログラム。 プログラムは kuvert の環境で実行されます。最初の %s は
引数の spec は XNUMX 進数の keyid に置き換えられ、パスフレーズは標準出力で期待されます。
終了コードは無視されます。 can-detach が設定されていない場合、プログラムは kuvert の
ターミナル。 デフォルトのクエリ プログラムでは、kuvert のバックグラウンド化が禁止されていることに注意してください。
そのもの。
フラッシュシークレット
このプログラムは、kuvert が有効な場合に外部パスフレーズ キャッシュを無効にするために呼び出されます。
パスフレーズが無効であることが GPG によって通知されます。 デフォルト: 未定義。 use-agentの場合は無視されます
が設定されています。 プログラムは kuvert の環境とその最初の %s で実行されます。
引数の仕様は問題の XNUMX 進キー ID に置き換えられます。 その終了コードは無視されます。
can-detach が設定されていない場合、プログラムは kuvert のターミナルにアクセスできます。
診断
Kuvert は通常、情報メッセージを syslog および/または独自のログファイルに記録します。
無効にして調整することができます。
kuvert が特定の電子メールの処理を成功させる障害を検出した場合
不可能です。kuvert は (切り離されていない場合) STDERR でそれを報告し、エラーも電子メールで送信します。
mail-on-error オプションが有効かどうかを報告します。 部分的または完全に未加工のもの
メールはキューに残りますが、名前が変更されます (名前の先頭には「failed.」が付きます)。 それはです
このような残り物を削除するか、名前をすべて数値のみに変更するかはあなた次第です。
問題は解決されました。
致命的な問題が発生した場合の動作も同様です。 クベルトに警告した後、
終了コード 1 で終了します。
ENVIRONMENT そして 信号
Kuvert 自体は環境変数のみを使用します: $TMPDIR はフォールバックの場所を提供します
kuvert の一時ディレクトリ用。
Kuvert は、その完全な環境を子プロセス、つまり gpg と任意のパスフレーズに渡します。
クエリプログラム。
SIGUSR1 を受信すると、kuvert はその構成ファイルとキーリングをリロードします。 のいずれか
SIGHUP、SIGINT、SIGQUIT、および SIGTERM を使用すると、kuvert が正常に終了し、
クエリ プログラムを使用する場合はパスフレーズ。 他の信号はすべて無視されます。
onworks.net サービスを使用してオンラインで kuvert を使用する