ユーザ用ツール

サイト用ツール


linux:sftp_server

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
linux:sftp_server [2023/08/15 19:05] mikotolinux:sftp_server [2023/08/20 13:34] (現在) mikoto
行 9: 行 9:
 bashログイン不可能なユーザーを作成。ディレクトリを''/sftp/chroot/home/sftp-user''とする。 bashログイン不可能なユーザーを作成。ディレクトリを''/sftp/chroot/home/sftp-user''とする。
 <code bash> <code bash>
-useradd -m -d /sftp/chroot/home/sftp-user -s /sbin/nologin /sftp-user+useradd -m -d /sftp/chroot/home/sftp-user -s /sbin/nologin sftp-user
 </code> </code>
 +ディレクトリが作成されなかった場合は作成する。
 +SFTPユーザーのルートディレクトリとする際、所有者をrootにしておかないとログインできないため、
 +所有者とグループを''root:sftp-user''としておく。
 +更に、このディレクトリの中に、書き込み可能なディレクトリを用意しておく。
 +こちらは所有者とグループを''sftp-user:sftp-user''に設定し、
 +パーミッションは700としておく。
 +<code bash>
 +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
 +</code>
 +ここで、ホームディレクトリ自体は750としてしまっても良い。その方が他のユーザーから読み取られる心配は少なくなる。
  
 鍵を作成する。 鍵を作成する。
行 19: 行 34:
  
 鍵を格納するためのディレクトリを作成し、公開鍵の内容を貼り付けて保存する。 鍵を格納するためのディレクトリを作成し、公開鍵の内容を貼り付けて保存する。
 +authorized_keysファイルは、ユーザーが参照できるように所有権を設定しておく。
 <code bash> <code bash>
 mkdir -p /sftp/chroot/sshkeys/sftp-user mkdir -p /sftp/chroot/sshkeys/sftp-user
 vim /sftp/chroot/sshkeys/sftp-user/authorized_keys vim /sftp/chroot/sshkeys/sftp-user/authorized_keys
 +chown sftp-user:sftp-user authorized_keys
 +chmod 600 authorized_keys
 </code> </code>
  
-===== SFTP で操作できるディレクトリを制限する =====+==== SFTP で操作できるディレクトリを制限する ====
 ユーザーが操作できるディレクトリを制限したいので、sshd_config を編集して以下を追加する。 ユーザーが操作できるディレクトリを制限したいので、sshd_config を編集して以下を追加する。
 ''%u''はユーザー名を表す。 ''%u''はユーザー名を表す。
行 38: 行 56:
 </file> </file>
 ここでは、** ForceCommand ** ディレクティブにinternal-sftp を指定することでsftpでの接続のみに制限している。 ここでは、** ForceCommand ** ディレクティブにinternal-sftp を指定することでsftpでの接続のみに制限している。
 +
 +変更後、サービスを再起動して反映する。
 +<code bash>
 +systemctl restart sshd
 +</code>
 +
 +==== 構成例2-Chrootなし、パスワード認証での設定 ====
 +通常のユーザーのホームディレクトリをルートディレクトリとし、パスワード認証で接続するよう設定する。
 +また、ルートディレクトリ直下で読み書き可能とする。
 +
 +ユーザーを作成し、パスワードを設定
 +<code bash>
 +useradd -s /usr/sbin/nologin sftp-pass
 +passwd sftp-pass
 +</code>
 +
 +sshd_configを編集し、以下を追加
 +<file apache>
 +Match User sftp-pass
 +  ForceCommand internal-sftp
 +  X11Forwarding no
 +  AllowTcpForwarding no
 +</file>
 +
 +sshd を再起動する
 +<code bash>
 +systemctl restart sshd
 +</code>
 +
 +ユーザーのホームディレクトリの所有者をrootに変更し、
 +パーミッションを775にする。
 +<code bash>
 +chown root: /home/sftp-pass
 +chmod 775 /home/sftp-pass
 +</code>
linux/sftp_server.1692093916.txt.gz · 最終更新: 2023/08/15 19:05 by mikoto