sftpをchroot環境で設定する。

CentOS6ではOpenSSH5.3がデフォでインストールされているので簡単にchroot環境が設定できる。

参照URL:http://lab.eli-sys.jp/2012/07/01/sftp-chroot%E3%81%AE%E8%A8%AD%E5%AE%9A%EF%BC%88centos-6%EF%BC%89/

先にsshでログインできる環境を整えた上で、システム設定、/etc/ssh/sshd_configを以下のように修正する。
[code]
# Subsystem sftp /usr/libexec/openssh/sftp-server (この行をコメントにする。)
以下を最終行に追加する
Subsystem sftp internal-sftp

Match Group sftponly
ChrootDirectory /home/%u  # この行のディレクトリ指定はchrootユーザーのホームディレクトリを指定する。
X11Forwarding no
AllowTCPForwarding no
ForceCommand internal-sftp
[/code]
修正できたらsshを再起動する。
[code]
# /etc/init.d/sshd restart
[/code]

sftpオンリーグループを登録する。
[code]
# groupadd -g 2000 sftponly
[/code]

chroot環境を構築したいユーザーをsftpオンリーグループに追加する。
[code]
# usermod -G sftponly username
[/code]

chrootユーザーのホームディレクトリをrootに属性変更する。
[code]
# chown root:root /home/username
# chmod 755 /home/username
[/code]
Selinuxが有効の場合は以下のように設定する。(以下のコマンドを管理者モードで実行する。)
[code]
# setsebool -P ssh_chroot_rw_homedirs on
# restorecon -R /home/username
[/code]

以上でchroot環境の設定終了。

poderosa等の端末ではログインを拒否される。
WinSCP等のsftpではログインできるが/home/usernameから上位のディレクトリはアクセスできなくなっていればOK。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.