2012年9月15日土曜日

OSC 2012 Tokyo/Fallにmikutterユーザ会として出展しました

9月7,8日に開催されたオープンソースカンファレンス2012 Tokyo/Fallに mikutterユーザ会として出展しました。
http://www.ospn.jp/osc2012-fall/

去年のOSC仙台以来2回目の参加でいきなりブース出展、しかも一番規模が大 きな東京会場ということでかなり不安もありましたが、お隣の日本NetBSDユー ザグループさんやmikutterのユーザさん達等からいろいろと支援して頂いたり しつつ、mikutterの薄い本vol.2の印刷が間に合わないトラブル等もありましたが、 なんとか無事に終えることが出来ました。ありがとうございました。

mikutterブースの様子。mikutter開発者の @toshi_aさんは、残念ながら お仕事の都合で来れないということで、モックアップとしての参加に。隣に ちびづるん(モックアップ)なるものも参加していたり。 (あっ、マミさ…あれ? 違う… という参加者のつぶやきが聞こえてきたりも)

いろいろなキャラクターが同居しているのもオープンソース界隈ではよくあること(?)
(ちなみに、mikutterグッズはほぼ全てお隣のNetBSDユーザーグループさんからの提供です。)

いろいろと頂いたもの。「mikutterブース」として用意していったものは LiveUSBメモリイメージとmikutterのうすい本 vol.2のサンプル程度だったのですが、 いろいろなブースを巡っていたらいつの間にかバッグがノベルティだらけに。 特にデカかったのはOpenSolarisの本。1000ページ近くあり、持って帰るのが大変な位でした。 (オライリー本は一日目に買っておいて良かった...)

流石に何も作らず持って行かないのはマズいと急遽作成したmikutter LiveUSBメモリイメージ。 配布条件が「4GB以上の全削除可能なUSBメモリを持っている事」 という割と狭い感じでしたが、それでも10人近くの方がUSBメモリを持参してきてくれました。 (中にはわざわざ新品を買ってきたという方も。もうしわけねぇヽ('ω')ノ三ヽ('ω')ノ)

そしてこのカンファレンス中に「mikutterがDebianのパッケージになる…かもしれない」という話が 浮上。Debianのパッケージになると、その派生ディストリビューションにもパッケージとして入ること もあるため、これはwktkしつつ待ちたいところ。
(mikutterのDebianパッケージの問題として、mikutter本体とskinデータのライセンスの違いが一番大きい。 mikutter本体はGPLv3であるものの、skinデータは初音ミクの歌声データ等が含まれる為GPL互換にはできず、 DFSGに適合できない。その点について解決するために、初音ミクに関連するskinを含まないmikutterを 準備する必要がある…という感じ。)

その他にも、お名前.comさんからmikutterユーザ会として VPS(KVM) 4GBプラン 1年分を頂いたりもしました。 今後これを皆で使えるように整備するのが当面の仕事になりそう。

これからもmikutterをよろしくお願いしますヾ(@⌒ー⌒@)ノ

2012年9月13日木曜日

OpenSMTPDからGmailのSMTPサーバを利用する

OpenSMTPDとは

OpenSMTPDはOpenBSDプロジェクトのうちの一部として開発されているSMTPデー モンで、OpenBSDの標準システムに含まれており、またLinux等への移植性も確 保されている。

今回は、Arch Linux上のOpenSMTPDを用いて自宅ローカルネットワークからの メールをGmailのSMTPサーバを経由して送信できるようにする。

OpenSMTPDのインストール

ArchLinuxのOpenSMTPDパッケージはAURにあるので、yaourtを用いてビルドし インストールする。特にPKGBUILDの編集などは必要ないようだ。

$ yaourt -S opensmtpd

インストールされる全ファイルの一覧は以下の通りである。軽量・安全・簡単を 売りにしているだけあって、ファイル数は少なく抑えられている。

[miku@test mail]$ yaourt -Ql opensmtpd
opensmtpd /etc/
opensmtpd /etc/mail/
opensmtpd /etc/mail/smtpd.conf
opensmtpd /etc/rc.d/
opensmtpd /etc/rc.d/smtpd
opensmtpd /usr/
opensmtpd /usr/bin/
opensmtpd /usr/bin/mailq
opensmtpd /usr/bin/newaliases
opensmtpd /usr/lib/
opensmtpd /usr/lib/systemd/
opensmtpd /usr/lib/systemd/system/
opensmtpd /usr/lib/systemd/system/smtpd.service
opensmtpd /usr/libexec/
opensmtpd /usr/libexec/mail.local
opensmtpd /usr/libexec/opensmtpd-portable/
opensmtpd /usr/libexec/opensmtpd-portable/makemap
opensmtpd /usr/sbin/
opensmtpd /usr/sbin/makemap
opensmtpd /usr/sbin/smtpctl
opensmtpd /usr/sbin/smtpd
opensmtpd /usr/share/
opensmtpd /usr/share/man/
opensmtpd /usr/share/man/man5/
opensmtpd /usr/share/man/man5/smtpd.conf.5.gz
opensmtpd /usr/share/man/man8/
opensmtpd /usr/share/man/man8/makemap.8.gz
opensmtpd /usr/share/man/man8/newaliases.8.gz
opensmtpd /usr/share/man/man8/smtpctl.8.gz
opensmtpd /usr/share/man/man8/smtpd.8.gz

smtpd.confの編集

デフォルトのsmtpd.confは以下のようになっている。設定ファイルの形式は、 pf.conf等に似ている。127.0.0.1でlistenしているため、内部へのmbox形式の メール配送と外部へのメール送信のリレーのみを行うようになっている。

listenするインターフェース又はネットワークを10.0.0.0/8等に変更すれば、 LAN内のホストからの要求も受け付けるようになる。この際、accept from 〜等で ネットワーク毎にルールを設定することもできる。

# $OpenBSD: smtpd.conf,v 1.2 2009/11/03 22:32:10 gilles Exp $

# This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.

# XXX try to find a portable way to get the IP interface
#listen on lo0
listen on 127.0.0.1

map "aliases" { source db "/etc/mail/aliases.db" }

accept for local alias aliases deliver to mbox
accept for all relay

しかし、このままでは内部への配送は正しく行われるが、外部へのリレーは利 用しているプロバイダや回線の契約によってはOP25Bにより正しく行われない可 能性がある。そこで、GmailのSMTPサーバを経由し外部へのメール送信を行う ように設定を変更する。

Gmailでは、STARTTLSを用いた認証を行うことでSMTPサーバを利用できる。 サーバホスト名はsmtp.gmail.com、ポート番号は587、アカウント名は"gmail アカウント@gmail.com"、パスワードはGmailのものを用いる。

以上の変更点を適用したsmtpd.confは以下のようになった。

listen on lo

map "aliases" { source db "/etc/mail/aliases.db" }
map "secrets" { source db "/etc/mail/secrets.db" }

accept for local alias "aliases" deliver to mbox
accept from all for all relay via tls+auth://smtp.gmail.com:587 auth "secrets"

この他にも、Gmailのユーザ名とパスワードを保持刷るためのファイル /etc/mail/secrets.dbが必要になる。このファイルはプレーンテキストで以下 のように書かれた/etc/mail/secretsを、makemapコマンドを用いて変換したも のである。

smtp.gmail.com Gmailのアカウント名@gmail.com:Gmailのパスワード

このsecretsとsecrets.dbのパーミッションは640、オーナーはroot:_smtpdに 設定する。

smtpdの起動

smtpdの動作を確認するため、まずはコマンドラインから-d(Do not daemonize)と-v(verbose output)オプションを付けて起動する。

試しにメールを送信してみる。

[miku@test ~]$ telnet localhost 25
Trying ::1...
Connected to localhost.
Escape character is '^]'.
220 test.k.hachune.net ESMTP OpenSMTPD
EHLO hachune.net
250-test.k.hachune.net Hello hachune.net [IPv6:::1], pleased to meet
you
250-8BITMIME
250-ENHANCEDSTATUSCODES
250-SIZE 18446744073709551615
250 HELP
MAIL FROM:
250 2.1.0 Sender ok
RCPT TO:
250 2.0.0 Recipient ok
DATA
354 Enter mail, end with "." on a line by itself
Subject: SMTPD Test
From: Miku Hachune
To: Phenomer
Date: Thu, 13 Sep 2012 17:29:26 +0900

mikumiku
.
QUIT

メールが正しく届いていればOK、もし届いていないようであればmailqや端末 上のログを確認する。 このままOpenSMTPDを使い続ける場合は、/etc/rc.confのDAEMONSにsmtpdを追 加しておく。

参考

OpenSMTPD
http://www.opensmtpd.org/

その他のメール クライアントの設定 - Gmail ヘルプ
https://support.google.com/mail/bin/answer.py?hl=ja&answer=78799