<続>さくらインターネット VPS(v3) 2G設定メモ:

さくらインターネット VPS(v3) 2G設定メモの続き。

このページは更に<続々>さくらインターネット VPS(v3) 2G設定メモ:に続く。

ドメイン移行

postfix配送が問題なさそうなので、旧サーバ(まだ動いてる)のドメインを新サーバIPに変更。

さくらインターネットでドメイン取得しているので、会員メニュー=>ドメインメニュー=>ゾーン編集でIP変更するだけ。20120331をもって移行。DNS反映は10分〜30分ぐらい(DNSによって違う。一番遅かったのが自宅プロバイダのDNS)。

変わった頃を見計らって、main.cfのmydestinationにドメインを追加、/etc/init.d/postfix reload。

data移行

旧サーバはたいした量でもないし(総量20GBの70%程度)、この機会にゴミ(っていえば全部だけどさ)を処理するので、sshfsでマウントして確認しながら手動cp。

sshfsは(相手側)rootでないとattribution関係エラーが出たので、旧サーバのrootのsshアクセスを一時許可してやった(いやだったけど)。

sshfs root@旧IP:/foo/bar /mnt/bar

細々とした覚え

躓いた点を忘れないうちに順不同メモ。

visudo

/etc/sudoersを書き換えようとしてvisudoを動かそうとしたら、ない。

yum search visudo..ない。

/usr/sbin/

にもともと入っていた。rootのパスの初期設定にsbinがないだけだった。

pythonバージョン混乱

さくらインターネット VPS(v3) 2G設定メモで書いたように、2.7系の最新版を手動インストールしたが、web2py(web2pyを使う参照)を設定しようとしたら動かない。sqlite3がDBとして使えないというエラーが出る。

標準に入っているpyhton(あるいは、気づかずにyumインストールしてしまっていたのかもしれないそれ・・・もはや記憶が定かではない)をyum remove phytonして再度make installしたら問題がなくなった。

fetchmail and procmail with SSH トンネル

                   +-------example.com---------------
[radio-signal.com]-|=>[my.example.com]-|-[mail.example.com]
                   +--------------------------------

メールサーバーのmail.example.comは内部外部ともssh系が効かない。内部のpop/imapのみでしかメールは取得できない(*1)。

自分が扱えるexample.comドメインのホストmy.example.comのポートはsshしか空いてない。

このような場合どうするか。

まずは、my.example.comがmail.example.comのメールをfetchmailで取ってきて、あとはsshフォワーディング(トンネル)で各クライアントからmy.example.comにimapアクセスというのが考えられる。

しかし使っているクライアント(PC)は一つではないし、いちいちそれを設定するのは面倒。JailBreakしていないiPhone/iPadからそれがやれるとは思えない(やれるかもしれんけど)。

というわけで、my.example.comに貯めたメールをVSP(v3)2Gのサーバ(radio-signal.com)に再度引っ張ってきてそのメールアカウントでimapsアクセスすることにした。二段のfetchmail/procmailというわけである。もっとうまいやり方があれば、お教えください。

A.mail.example.com<==fetchmail/procmail<==my.example.com

B.my.example.com<==sshトンネル:fetchmail/procmail==radio-signal.com

C.radio-signal.com<==imapsでアクセス

以下手順

A-1.foo@my.example.comはmail.example.comのメールを取得

Maildir形式でfetch/procmailでmail.example.comから自分のメールをfetchmail(pop3なりimapなり)デーモンで取得する。my.example.comのユーザをfooとする。パスワードはfizzbuzzとする。

ここらへんはsshを意識しないで済むので省略。

my.example.comにはimapサーバを動かしておく(imap-courierが入ってたのでそれを使った)。

B-1.bar@radio-signal.comのssh公開鍵をfoo@my.example.comに登録

radio-signal.comとexample.comの間はsshフォワーディングで接続。

radio-signal.comのimapユーザ(bar)のパスフレーズなしssh公開鍵を作っておいてfoo@my.example.comの.ssh/authorized_keysに登録する。

なお、fooにはradio-signal.comからのssh接続のみを許可。

B-2.bar@radio-signal.comの.ssh/config

my.example.comのsshポートを15555とした場合、bar@radio-signal.comの.ssh/configには

Host my-dokoka-imap
Hostname my.example.com
Port 15555
user foo
LocalForward 16143 localhost:143

としておいて、

ssh -N my-dokoka-imap &

これで、foo@my.example.comにトンネリング。radio-signal.comの16143ポートでmy.example.comのimapに接続できる。

B-3.bar@radio-signal.comの.fetchmailrc

ポート16143で、foo@my.example.comのMaildirからimapでメールをfetch。

set daemon 60
set nobouncemail
poll localhost
port 16143
proto imap
user foo
password fizzbuzz
keep 
no mimedecode
mda "/usr/bin/procmail"

で、

fetchmail

B-4.bar@radio-signal.comの.procmailrc

fetchしたメールをbar/Maildirに保存

PATH=$HOME/bin:/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir/
DEFAULT=$MAILDIR
LOGFILE=$MAILDIR/from
LOCKFILE=$HOME/.lockmail

B-5.ssh常時接続とfetchmailデーモン起動をradio-signal.comの/etc/rc.d/rc.localに登録

su bar -c "ssh -N my-dokoka-imap &"

su bar -c "/usr/bin/fetchmail"

一応rebootして上手く動作するかどうかを確認。

B-6. sshトンネルとfetchmailの持続チェック

sshの断線とfetchmailデーモンの停止(これは結構ある)チェックはやってません。問題が出そうなら対処必要。


C.各所からimapsでbar@radio-signal.comにアクセス

普通にアクセスする。

CoffeeScript

wget http://nodejs.org/dist/v0.6.14/node-v0.6.14.tar.gz

Pyhton 2.7.2にbiz2モジュールが入っていなかったのでnode.jsのmakeでエラー

http://d.hatena.ne.jp/motsat/20110813/1313214923と同じ。

上記ページを参考にしてPyhton 2.7.2をmake installしなおしたのちにnode.jsをmake install。

後は、

rehash

npm install -g coffee-script

でOK.

logwatch



*1: pop3sが動くという話も聞いているが、その某mail.example.comの管理はアレなので使いたくない。でもそのメールは浮世的に使わないとダメなことになっているので仕方ない。

this file --> last modified:2012-05-03 12:16:11