linux:sftp_server
文書の過去の版を表示しています。
SFTP サーバー構築
概要
sftp-userというユーザーを作成し、/sftp/chroot/home/sftp-user
というディレクトリ内のみ
アクセス可能でログイン不可能の設定でSFTPサーバーを構築する。
手順
bashログイン不可能なユーザーを作成。ディレクトリを/sftp/chroot/home/sftp-user
とする。
useradd -m -d /sftp/chroot/home/sftp-user -s /sbin/nologin sftp-user
ディレクトリが作成されなかった場合は作成する。
SFTPユーザーのルートディレクトリとする際、所有者をrootにしておかないとログインできないため、
所有者とグループをroot:sftp-user
としておく。
更に、このディレクトリの中に、書き込み可能なディレクトリを用意しておく。
こちらは所有者とグループをsftp-user:sftp-user
に設定し、
パーミッションは700としておく。
mkdir -p /sftp/chroot/home/sftp-user chown root:sftp-user /sftp/chroot/home/sftp-user chmod 755 /sftp/chroot/home/sftp-user mkdir /sftp/chroot/home/sftp-user/writable chown sftp-user:sftp-user /sftp/chroot/home/sftp-user/writable chmod 700 sftp-user:sftp-user /sftp/chroot/home/sftp-user/writable
鍵を作成する。
ssh-keygen -t rsa 4096 # 名前はsftp-keyで作成、パスフレーズは無しにする
鍵を格納するためのディレクトリを作成し、公開鍵の内容を貼り付けて保存する。 authorized_keysファイルは、ユーザーが参照できるように所有権を設定しておく。
mkdir -p /sftp/chroot/sshkeys/sftp-user vim /sftp/chroot/sshkeys/sftp-user/authorized_keys chown sftp-user:sftp-user authorized_keys chmod 600 authorized_keys
SFTP で操作できるディレクトリを制限する
ユーザーが操作できるディレクトリを制限したいので、sshd_config を編集して以下を追加する。
%u
はユーザー名を表す。
# User Configuration Match User sftp-user ChrootDirectory /sftp/chroot/home/%u AuthorizedKeysFile /sftp/chroot/sshkeys/%u/authorized_keys ForceCommand internal-sftp X11Forwarding no AllowTcpForwarding no PasswordAuthentication no
ここでは、 ForceCommand ディレクティブにinternal-sftp を指定することでsftpでの接続のみに制限している。
変更後、サービスを再起動して反映する。
systemctl restart sshd
linux/sftp_server.1692178931.txt.gz · 最終更新: 2023/08/16 18:42 by mikoto