ケーススタディ: PGP/GPG の電子署名で投稿制限をするML
この機能を使うには Crypt::OpenPGP モジュールが必要です。
OS 附属のパッケージシステムなどでインストールして下さい。
このモジュールが依存しているモジュールがたくさんあるので、
OS 附属のパッケージシステムが使えないと、
インストールは、かなり面倒です。
レシピ
PGP/GPG の電子署名で投稿制限をするML
設定例は次のようになります。
check_pgp_signature が、この PGP/GPG 認証オプション部分です。
電子署名が正当なユーザだけに投稿が許されます。
article_post_restrictions = reject_system_special_accounts
check_pgp_signature
reject
もちろんデフォルトでは使いません。
利用したい場合は、明示的に article_post_restrictions を変更して下さい。
注: &fml8; 2008/08/17 以降のバージョンでは isolate (SPAM の隔離)が推奨です。
article_post_restrictions = reject_system_special_accounts
check_pgp_signature
isolate
キーの操作
PGP のキーリングは、
動作条件ごとに別に保存するようになっています。
たとえば記事投稿用のキーは
$ml_home_dir/etc/pgp-article-post-auth/
ディレクトリ以下に、
リモート管理用のキーは
$ml_home_dir/etc/pgp-admin-command-mail-auth/
ディレクトリ以下に置くといった具合です。
これらのキーは pgp2 pgp5 gpg コマンドで操作してください。
ただ、
デフォルトのディレクトリではないこと、
モードごとに異なるディレクトリを使うため、
fmlpgp などのユーティリティプログラム( wrapper )を利用するほうが便利です。
例: elena ML で記事投稿で使うキーの生成
fmlpgp elena --article-post-auth -kg
コマンドラインオプションで
--article-post-auth (記事投稿時に電子署名で認証)
--command-mail-auth (コマンドメールを電子署名で認証)
--admin-command-mail-auth (リモート管理のコマンドメールを電子署名で認証)
--article-post-encrypt (記事を暗号化(未実装))
などと使用する条件を指定してください。
それぞれの条件に対して異なるキーリングのディレクトリが使われます。
用意されているコマンド(wrapper)は次の通りです。
pgp2 用:
fmlpgp
pgp5 用:
fmlpgp5
fmlpgpe
fmlpgpk
fmlpgps
fmlpgpv
gpg 用:
fmlgpg
fmlgpgv