web-dev-qa-db-ja.com

sftp経由でchrootのjailされたアカウントにログインしようとすると、接続が中止される

/ var/www/htmlなどにあるWebサーバーにログインできるユーザーkake_sftpを作成しようとしています。私はchrootがアクセス許可を機能させるためにいくつかの追加のサブディレクトリを必要とすることを知っているので、新しいフォルダーを追加したり、フォルダーのレイアウトを少し変更したりして問題ありません。

ユーザーをグループwww-dataに作成し、ホームディレクトリを/ var/www/htmlに作成しました

$ cat /etc/passwd | grep kake_sftp
kake_sftp:x:1001:1001::/var/www/html:/bin/bash

$ groups kake_sftp
kake_sftp : kake_sftp www-data

次に、/ etc/ssh/sshd_configにいくつかの変更を加えました。 「Subsystem sftp/usr/lib/openssh/sftp-server」を「Subsystem sftp internal-sftp」に置き換え、最後に次の行を追加しました

Match User kake_sftp
ChrootDirectory /var/www
ForceCommand internal-sftp
AllowTcpForwarding no

Wwwフォルダーの権限は次のように設定されています。

$ ls -la /var/www
drwxrwxr-x  3 root root     4096 Apr  7 12:17 .
drwxr-xr-x 12 root root     4096 Apr  4 10:17 ..
drwxr-xr-x  2 root www-data 4096 Apr  4 11:34 html

Filezillaをsftpに設定してログインしようとすると、次のエラーが表示されます。

Error:  Network error: Software caused connection abort
Error:  Could not connect to server

Sftp経由でメインユーザーでログインしようとすると、魅力的に機能します。したがって、クライアントに問題はありません。

1
Kake_Fisk

これが機能しない理由は、chrootされたディレクトリに書き込み権限があったためです。すべての書き込み権限を取り消すことで、なんとか接続できました。

chmod 555 /var/www
0
Kake_Fisk