サーバにchrootでsftpでのみログインできるようにする

サーバに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をみています。