SSH
内容 [#ec946fe9]
-SSHさせずにSFTPのみを許可して、ホームディレクトリ以上にあがらないようにする
手順 [#g26fbac1]
# cd /etc/sshd
# cp -p sshd_config sshd_config.`date +%Y%m%d`
# vi sshd_config
---
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
※下記項目はAllowUsersより下に記述する。
Match User hogeuser
ChrootDirectory
ForceCommand internal-sftp
# /usr/sbin/sshd -t
# service sshd restart
2016/1/12追記 [#t7e76b8c]
※上記のみでは「packet_write_wait: Connection to 接続先: Broken pipe」と表示されてsftp接続できない可能性があります。
sftpの仕様上上位ディレクトリの所有者と所有グループがrootになっている必要があるためです。
この場合、1つroot所有者&root所有グループでディレクトリを作成し、その配下にchrootさせたいユーザーが読み書き可能なディレクトリを作成することでchrootを実現できます。
# useradd chrootするユーザー
# passwd chrootするユーザー
# mkdir /対象パス/tmpdir/ftpdata
# usermod -d /対象パス/tmpdir/ chrootするユーザー名
# chown root:chrootするユーザー名
# chmod -R 750 tmpdir
# chown chrootするユーザー名:chrootするユーザー名 /対象パス/tmpdir/ftpdata
この場合、chrootさせたいユーザーが操作可能な範囲は、tmpdir/ftpdata/配下のみとなります。