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/配下のみとなります。

参考URL [#b585ee57]

http://askubuntu.com/questions/49271/how-to-setup-a-sftp-server-with-users-chrooted-in-their-home-directories