20070502
RubyでPOPクライアント
RubyのPOP3を扱うライブラリを使ってメールの受信を試みるが、ここのサンプル通りにやってみたところpop.startではねられる。APOPで試してもだめ。受信できるメーラの設定を見ると"SSLを使用する"がONになっていたので、どうやらPOPサーバが「POP over SSL」を要求しているようだ。
でその対応をRubyだけでできるかというと1.8系では未対応のようだ(1.9系では対応される予定?)。
さらに調べると、SSL非対応のPOPクライアントをSSL対応サーバに対して使うには「SSL Proxy」を使えばいいということがわかった。
- 追記
ポート995を使う時点で「POP over SSL」のようだ。
stunnel
「SSL Proxy」のためにstunnelを導入する。インストールはsynapticで実施。stunnel.confという設定ファイルを書くようだが格納場所がわからない。調べたところ、どこでもよくstunnelの起動時に引数として与えればよいようだ。
sudo stunnel stunnel.confとやってもうまくいかない。なんとなくstunnelのバージョンを調べるとVer3代、最新版はVer4代、どうやらインストールしたバージョンが古かった予感。synapticを見ると「stunnel4」があったのでそちらをインストールしなおした。すると/etc/stunnel/stunnel.confが作成されていた。
デフォルトから変更したものだけを書いておく。
cert = /etc/stunnel/stunnel.pem
client=yes ;←デフォルトでyesだったかも。またはコメントアウトされていたかな。
[pop3s]
accept = localhost:110 ;メーラの設定はこちらを指定する。
connect = pop.gmail.com:995
[ssmtp]
accept = localhost:25 ;メーラの設定はこちらを指定する。
connect = smtp.gmail.com:465
次にどうやら証明書を作らないとダメらしい。stunnelを説明しているサイトによっては、証明書の説明が何も無いところもあったので無くてもいいのかと思って試していたがダメだった。で、証明書の作り方についてはインストールされたREADME( /usr/share/doc/stunnel4/README.Debian)の通りにやった。
- /etc/default/stunnelを編集しENABLE=1へ。
- edit /etc/stunnel/stunnel.confを希望する設定へ編集(上述)。
- openssl req -new -x509 -nodes -days 365 -out stunnel.pem -keyout stunnel.pem を実行。
- このときにいろいろ証明書に必要な内容を聞かれるが、とりあえずテストなので全部デフォルトにした^^;どのような内容を聞かれるかはここ参照。
- chmod 600 stunnel.pem アクセス権を変更。
- dd if=/dev/urandom of=temp_file count=2 次の手順で必要なテンポラリファイルを生成。
- openssl dhparam -rand temp_file 512 >> stunnel.pem
実行してテストしてみる。
sudo stunnelとやっても、
sudo stunnel /etc/stunnel/stunnel.confとやっても、
次のメッセージが表示されどうやらうまく動かない。
inetd mode must define a remote host or an executableしょうがないのでコマンドラインの引数に直接指定してみたところ動いた。設定ファイルが有効になってない?
stunnel -c -d 127.0.0.1:ポート -r リモートホスト:ポートtelnetを使ってテストする。ロカールのポートに接続してリモートに転送されればOK。
telnet 127.0.0.1 110
参考
トンネル掘削機:各ソフトウェアの特徴や比較等がある。http://old.netsecurity.ne.jp/article/3/2744.html:stunnelの一部の引数の説明
インストールの管理
Ubuntuを使っているとインストールを管理するツールとしてapt/dpkg/synaptic/aptitudeが出てきた。それぞれの関係はどうやらこんな感じ。( synaptic > aptitude ) == apt > dpkg
- synaptic:GUIベースのaptフロントエンド
- aptitude:テキストベースのaptフロントエンド
フルスクリーンモード有り - apt:dpkgの機能に加え、依存関係等も処理してくれる。
- dpkg:基本的なパッケージ管理機能の提供
- 番外
- アプリケーションの追加と削除:synapticの一部?基本的にこれでいけるはずなんだけど、リポジトリに登録したものがsynapticやaptitudeでは検索にヒットするのに、こちらではヒットしないなどちょっと怪しい。
新規リポジトリの追加方法
デフォルトで登録されているリポジトリには無いソフト(パッケージ)をインストールする際の手順。1.リポジトリリストに追加したいソフトが登録されているリポジトリを追加する。
リストは
/etc/apt/sources.list2.パッケージリストを更新する。
sudo aptitude update3.検索でヒットすることを確認する。
sudo aptitude search hoge4.インストールする。
sudo aptitude install hoge
インストール済み一覧の表示
aptitudeでやる方法を探したが見つからず。んー、できないのかなあ。dpkg -l
参考
http://ja.wikipedia.org/wiki/Debianhttp://debian.fam.cx/?AptGet#content_1_13
aptitudeユーザマニュアル
2007年11月11日(日) 17:30:57 Modified by n0gam0ga