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