サーバにchrootでsftpでのみログインできるようにする設定方法です。
本設定を行うと、以下のようになります。
- ssh接続はできないようにする。
- sftp接続のみできるようにする。
- /をホームディレクトリとし、/etc/など設定ファイル周りの情報は見れないようする。
sshd_configの修正
vim sshd_config
修正内容
Protocol 2 SyslogFacility AUTHPRIV PasswordAuthentication no ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials yes UsePAM yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL LANGUAGE AcceptEnv XMODIFIERS X11Forwarding yes #Subsystem sftp /usr/libexec/openssh/sftp-server #コメントアウトした Subsystem sftp internal-sftp #追加 PermitRootLogin without-password UseDNS no Match User upload_user #追加 ChrootDirectory /var/www/vhosts/hoge-hoge.com #追加 ForceCommand internal-sftp #追加
sftp専用ユーザー作成
useradd upload_user su - upload_user ssh-keygen -t dsa 全Enter (パスワード無しログインするため)
鍵作成
cd .ssh/ ll total 8 -rw------- 1 upload_user upload_user 668 Oct 26 20:06 id_dsa -rw-r--r-- 1 upload_user upload_user 625 Oct 26 20:06 id_dsa.pub mv id_dsa.pub authorized_keys chmod 600 authorized_keys mv id_dsa private_key.pem
接続のために使用するprivate_key.pemはダンロードして保管する。
ディレクトリ作成
ChrootDirectoryで指定したものは、rootのみ書き込み権限があること。
mkdir -p /var/www/vhosts/hoge-hoge.com ll -d /var/www/vhosts/hoge-hoge.com drwxr-xr-x 3 root root 4096 Oct 26 20:10 /var/www/vhosts/hoge-hoge.com
設定反映
/etc/init.d/sshd restart
sftpでログインすると、chrootの設定により、ホームディレクトリは、/home/upload_userではなく、
/になります。
upload_userでは、/に見えていますが、実際には、/var/www/vhosts/hoge-hoge.comをみています。