坂元です。 >FreeBSD5.4を使っています。 >SFTPで公開するサーバーを考えているのですが、 >ポーツのopenssh-portable4.0.0.1をメイクをするときに、WITH_OPENSSH_CHROOTを付 >けて、メイクします。 >こうすることで、chrootはできるのですが、このときのchrootディレクトリでは、 >/usr/local/libexec/sftp-server >がファイルとして見えてしまうのですが、これを見れないようにするか、安全に保護 >する方法はないでしょうか。
別解となりますが、/usr/src/libexec/ftpd/ftpd.cからchrootの処理をパクッて きて、sftp-serverに移植してみました。比較してもらうと分かりますが、私が 新たに書いたコードは、 uid = getuid(); if ((pw = getpwuid(uid)) == NULL) fatal("Cannot get user info"); residue = NULL; の4行のみです。 1. cd /usr/src 2. patch < sftp-patch 3. /etc/make.confに、SFTP_CHROOT=yes と追加 4. cd /usr/src/secure/libexec/sftp-server 5. make && make install で、chroot版sftp-serverがインストールされます。Makefile以外のパッチは openssh-portableにもあたると思います。その場合は、WITH_OPENSSH_CHROOTオ プションは無効にしたほうが良いでしょう。 メリットとして、chroot後のディレクトリツリー以下にバイナリやライブラリを 準備する必要がない一方、デメリットとして、sftp-serverにSUID rootする必要 があります。手元の環境でちょろっと試してみただけなので、自己責任でお使い ください。 P.S. いちおうsend-pr済みです。 -- 坂元 英紀 E-mail: [EMAIL PROTECTED]
sftp-patch
Description: Binary data