tohokuaikiのチラシの裏

技術的ネタとか。

debianサーバを6.0(squeeze)にアップグレードしてはまったこと

そろそろ5.0がサポート切れるので2年ぶりにアップグレード。
CentOSよりややメンテナンス期間は短いけど、それを補って余りあるバージョンアップの楽さ。サーバ用途にはあと10年はdebianで行きたい。

/etc/apt/sources.list のwheezyの綴りをsqueezeにするだけでOKとは楽すぎる。
もちろん、ミドルウェアのアップデートにはそれなりに事情があるけど、OS全体としてはほぼ問題なし。よく使ってるミドルウェアなら大抵のことは織り込み済みだし。

vsftpdでのハマリ。。pam_userdb.soが無い

vsftpdっていうよりpamの問題化。
vsftpdでバーチャルユーザーを使っているのだけど、ログインできなくなった。

ん〜、って思ってvsftpdのconfigファイル一式や、db_loadを見たけどわからない。。。

/etc/pam.d/vsftpdを見ると

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd.d/vsftpd_vuser_list
account required /lib64/security/pam_userdb.so db=/etc/vsftpd.d/vsftpd_vuser_list

ってあって、念のため/lib64/security/pam_userdb.soを見ると無い・・・・。これか。。。

pam_userdb.soではなく・・・

findでpam_userdb.soを探すと、/lib/x86_64-linux-gnu/security/pam_userdb.so にあった。
#521860 - libpam-modules: libdb upgrade silently breaks pam_userdb.so - Debian Bug report logs
とかでバグレポ上がって、
5.1.4. 新しい libdb による pam_userdb.so の非互換性
っていうのでdb4.8_load使ってってなってるので、/etc/pam.d/vsftpd のパスを変更してdb4.8_loadでユーザーDBを作り直して、WinSCPでつないでみたところ

Connection failed.
OOPS: vsftpd: refusing to run with writable root inside chroot()

ってエラーが出た。んん〜。

ダメジャン・・・・

Debian wheezyでのvsftpd設定メモ | 妄想コバンザメ
によると、

他のプランとしては、chrootユーザのホームディレクトリの書き込み権限を消す。
(略)
根本的な解決方法としては、vsftpd-2.3.5+をインストールし、vsftpd.confにallow_writable_root=YESを追加する。
http://vsftpd.devnet.ru/eng/

allow_writable_root=YESが使えない通常のvsftpd2.3.5では、chrootユーザのホームディレクトリの書き込み権限を消さないといけないので、こうするしか方法はない。

こりゃ参ったね。。。まぁ、chrootさせるユーザーにホームディレクトリなんてほとんどいじらせないから問題ないので、そうした。