web-dev-qa-db-ja.com

'public' sftpを保護する方法は?

サービスの一部のユーザーがSFTPを使用してファイルをアップロードできるようにするサーバーがあります。ユーザーについて話すとき、ユーザーが誰であるか、何人がアクセスできるかがわかりません。

私は次のようにアクセスを設定しました:

  • ユーザー名とパスワードを使用したSFTP(SSH)アクセス:PasswordAuthentication yes
  • ユーザーは、internal-sftpの使用を強制されるグループsftpに属しています。
  • ログインは、ChrootDirectory %hである/srv/sftp/incomingにサンドボックス化されます。
  • ログインシェルは/bin/falseです。

このような範囲のユーザーのSFTPアクセスを保護するために他にできることはありますか?

マシンはArchLinuxを実行します。 Webサーバーはnginxですが、/srv/sftp/incoming内のファイルはWebサーバーによって提供されません。内部使用のみです。

1
Afr

すべてのユーザーにSSHキーを設定できるため、ユーザーは秘密キーを使用してSFTPサーバーにアクセスする必要があります。クライアントが自分で秘密鍵と公開鍵を生成し、public鍵を送信できるようにして、~/.ssh/authorized_keysファイルに追加できるようにします。

もちろん、秘密鍵と公開鍵は自分で生成できますが、それはどういうわけか秘密鍵をクライアントに送信する必要があることを意味し、それが安全ではなくなります。

ssh-keygen -t rsa

キーが設定されている場合、/etc/ssh/sshd_configでパスワードログインを無効にできるため、サーバーにアクセスするには秘密キーを使用する必要があります。

PasswordAuthentication no
3
Gen