Archive for the ‘proftpd’ tag
proftpd 1.3.2rc1 iconv パッチ
proftpd 1.3.1 に mod_clamav をインストールしようとしたら、rpmbuild 時にエラー発生。
ためしに、パッチを当てたソースから configure を行うも以下のような同様のエラー。
error: Installed (but unpackaged) file(s) found:
調べたら、proftpd.pc というファイルや libsupp.a が新たに生成されていたので、そのインストール先が spec ファイルにねぇということで怒られていました。そこを下のように %files に追加して rpmbuild 完了。
%files
・・・
%{_libdir}/proftpd/libsupp.a
%{_libdir}/pkgconfig/proftpd.pc
.mo .po ファイルも –enable-nls オプションで生成されるけど、nls オプションが微妙だし、–disable-nls にしますた。
ついでに、調べている時に ProFTPD のサイトで 1.3.2rc1 のリリースがあったので、1.3.2rc1 版の iconv パッチを作っておきました。
- 1.3.2rc1 用
proftpd-1.3.2rc1.patch.gz
RPM と SRPM は現在動作確認中です 作成完了しました。mod_clamav / NLSTパッチ付ですが。
proftpd で /var/log/secure にでてくるヤツ
/sbin/nologin で設定しているユーザが FTP でログインすると /var/log/secure に下のようなメッセージが表示される。
/sbin/nologin で shell を指定していないユーザは下のようなログは表示されない。
Apr 11 15:54:03 orz proftpd[7811]: orz.miroq.info (XXX.XXX.XXX.XXX[XXX.XXX.XXX.XXX]) - USER hoge: Login successful.
Apr 11 15:54:03 orz proftpd[7811]: orz.miroq.info (XXX.XXX.XXX.XXX[XXX.XXX.XXX.XXX]) - Preparing to chroot to directory ‘/home/hoge
Apr 11 15:54:03 orz proftpd: pam_unix(proftpd:session): session opened for user hoge by (uid=0)
Apr 11 15:54:07 orz proftpd[7811]: orz.miroq.info (XXX.XXX.XXX.XXX[XXX.XXX.XXX.XXX]) - FTP session closed.
Apr 11 15:54:07 orz proftpd: pam_env(proftpd:setcred): Unable to open config file: /etc/security/pam_env.conf: No such file or d
irectory
Apr 11 15:54:07 orz proftpd: PAM audit_log_acct_message() failed: Operation not permitted
Apr 11 15:54:07 orz proftpd: pam_unix(proftpd:session): session closed for user hoge
/etc/security/pam_env.conf がねえと思って、ファイルを確認するが余裕で存在している。
/etc/proftpd.conf で設定している項目を確認すると、
AuthOrder mod_auth_pam.c* mod_auth_unix.c
という項目があった。評価が前から(?) なので mod_auth_pam.c の問題なのかな?
ということで、
AuthOrder mod_auth_unix.c
に変更して、proftpd を reload 。ログインしてみると、問題の /var/log/secure に表示はされなくなったけど、pam 周りになにかあったのかなぁ?と疑問。とりあえず表示されていないからいいけど、原因を究明したいところw
上のログから chroot しているので、その配下に pam_env.conf に関する項目のファイルが必要なのかな?
そして(uid=0)という項目も気になる。audit 関連?
proftpd 1.3.1 iconv パッチ
UTF-8 な日本語ファイルを FFFTP などでみると思いっきり文字化けしてる。
OS からも FFFTP からもやっぱり日本語ファイル名は文字化けなくみたいわけで・・・。
ということで、ProFTPD iconv() 文字コード変換パッチを使用していたのですが、Fedora 8 の ProFTPD の最新 Ver が 1.3.1 になり、1.3.1 では –enable-nls オプションをつけ、proftpd.conf に
UseUTF8 on
をつけたら UTF-8 の文字コードであっても表示はされるのだが、日本語ファイル名は文字化けのまま。
上記サイトの patch を当てようとおもったが、src/netio.c modules/mod_ls.c の部分が変更になっていてそのままでは当てられなくなっているので、patch に記述している分を手動で変更してみた。
変更後、rpmbuild で自分用 RPM を作成しインストール。問題なく UTF-8 な日本語ファイルも FFFTP で表示されますた。
rpmbuild で RPM を作るまでの行程は以下のとおり。
# mkdir /usr/src/redhat
# cd /usr/local/src
# yumdownloader –source proftpd
# rpm -Uvh proftpd-1.3.1-1.fc8.src.rpm
# cd /usr/src/redhat# cd SPEC
# vi proftpd.spec
※ %configure 部分を以下のように変更
<変更前>
–with-modules=mod_readme:mod_auth_pam:mod_tls \
<変更後>
–with-modules=mod_readme:mod_auth_pam:mod_tls:mod_codeconv:mod_df \# cd ../SOURCE
# bunzip2 proftpd-1.3.1.tar.bz2 ; tar xvf proftpd-1.3.1.tar
# cp ~/proftpd-1.3.1-iconv.patch ./
# patch -p0 < ./proftpd-1.3.1-iconv.patch
# tar cvf proftpd-1.3.1.tar proftpd-1.3.1 ; bzip2 -z proftpd-1.3.1.tar# cd ../SPEC
# rpmbuild -bb –target i686 proftpd.spec# cd ../RPM/i686
# rpm -Uvh proftpd-1.3.1-1.fc8.i686.rpm
これで、あとは proftpd.conf を編集。表示は SJIS 書き込み/読み込みは UTF-8 なので、
CharsetLocal UTF-8
CharsetRemote CP932
を追記。
一応、今回作った SRPM / RPM / patch をおいておきます。お好きにどぞ。
RPM
- proftpd-1.3.1-1.fc8.i686.rpm
proftpd-ldap-1.3.1-1.fc8.i686.rpm
proftpd-mysql-1.3.1-1.fc8.i686.rpm
proftpd-postgresql-1.3.1-1.fc8.i686.rpm
SRPM
patch
そして、今回 ProFTPD iconv() 文字コード変換パッチ を製作したT.Tsujikawa 氏に感謝。