電気ウナギ的○○

About Home

SFTP で chroot させるための設定

shinoda (2014年11月 4日 18:59)
CentOS サーバ(CentOS 6.5 + OpenSSH 5.3p1 という環境)で、特定ユーザの SFTP 接続を chroot させるための設定のメモ。

今回、FTP サーバを立ち上げていないサーバに、外注の Web デザイナーさんにデータのアップロードをしてもらうことになった。そのためだけに FTP サーバをセットアップするのもなあ・・・ということで、SFTP で接続してもらうことにした。となると、SFTP 接続してきた特定のユーザだけ chroot するよう設定が必要だよね。
つまり、そのユーザは自分がデータをアップロードするディレクトリから、他の上位ディレクトリには移動できなくする・・・というわけね。

もちろん当社に協力していただいているデザイナーさんに、よそのディレクトリに移動して大事なデータを盗み見たりするような人はいませんが、念の為にね(笑)

1.データアップロード用のディレクトリ作成(root で)
 (例)mkdir -p /var/hosts/www.exsample.jp
    ※ /var/hosts/www.exsample.jp の所有者は root であること!

2.chroot するユーザの作成
 (例)useradd -g 7000 -s /sbin/nologin -u 7001 -d /var/hosts/www.exsample.jp webusr01
 ※パスワードも忘れずに!

3.chroot 先のディレクトリに、webusr01 で触れる子ディレクトリを作っておく。
 (上の例では、/var/hosts/www.exsample.jp 自体は root ユーザのものなので、webusr01 ではファイルを書き込んだりできない)
 (例)
 mkdir /var/hosts/www.exsample.jp/www
 chown webusr01 /var/hosts/www.exsample.jp/www

3.sshd の設定変更
 上の例の webusr01 のように、頭に web と付くユーザだけ chroot することにする
 /etc/ssh/sshd_config の一番下に、以下の設定を追加。

# override default of no subsystems
#Subsystem       sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match User web*
  ChrootDirectory ~

 ※最初に書かれていた Subsystem の行はコメントにする。

4.sshd の再起動
 (例)service sshd restart

これで、頭に web とついたユーザは chroot されるようになる。

ちなみに、色々ググりながら設定したんだけど、ForceCommand で実行プログラムを指定すれば Subsystem の設定を上書くので、Subsystems の設定行を直接変更することはないでぇ!つまり、

# override default of no subsystems
Subsystem       sftp    /usr/libexec/openssh/sftp-server

Match User web*
  ChrootDirectory ~
  ForceCommand internal-sftp

こういう設定でいけるはずやでぇ!と書かれているサイトがあったんだけど、うちの環境では、

error: subsystem: cannot stat /usr/libexec/openssh/sftp-server: No such file or directory
subsystem request for sftp failed, subsystem not found

というエラーになったで。(ForceCommand はちゃんと書いてたけど)
chroot 先には /usr/libexec/openssh/sftp-server は無いから当然 "No such file or directory" になるわけで。

結局、手順例に書いたように、

#Subsystem       sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

としなきゃダメだったな。うーん・・・

あ、もしかして、webusr01 のログインシェルに /sbin/nologin を設定してるから???

まあ、とりあえず望んでた動きにはなっているのでこのまま行くけど・・・

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/3165

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE