web-dev-qa-db-ja.com

WindowsでのOpenSSHのユーザー権限の適切な設定?

WindowsでOpenSSHをセットアップしてSFTPサイトを提供しようとしています。ユーザーのセキュリティ設定で問題が発生しています。

ユーザーを作成するために行った基本的な手順は次のとおりです。

  1. ホストマシンで新しいユーザーを作成する
  2. クライアントのホームフォルダーを指すcygwinのファイルパスを調整したopenssh passwdファイルにユーザーを追加します(例:/ cygdrive/e/homefolders/username)
  3. ユーザーにフォルダーへの読み取り/書き込みアクセスを許可する

私が遭遇している問題は、ユーザーがログインできるようにするには、ユーザーがOpenSSHプログラムフォルダーに対する実行権限を持っている必要があるということです。 「etc」などの特定のフォルダへのアクセスを無効にできることがわかりましたが、ここでアクセス許可を提供する必要があるのではないかと心配しています。 FileZillaを使用すると、フォルダー階層「/ cygdrive/e/homefolders/username」が表示され、「/」をブラウザーで読み取りアクセスできるフォルダーにアクセスできます。

このセットアップで適切なセキュリティを確保するために使用する必要がある特定の戦略はありますか?実行権限を提供する必要がある特定のファイルまたはフォルダーだけですか?自分のフォルダーへの読み取り/書き込みアクセス以外のすべてを完全にロックしたいのですが、それは可能ではないようです。

7
dmr83457

さらに調査したところ、組み込みのchroot機能を使用するという以下の最初の提案はcygwinではサポートされていないことがわかりました。

あなたは他の選択肢を見る方が良いかもしれません。おそらくwebdav、おそらくftpsサーバー(filezilla)、またはおそらく他の1つ proprietary sftpサーバー。

Cygwin OpenSSHでこれを行う必要がある場合に使用できるオプションは、scponly Shellを使用することです。手順は pdf です。


Windowsで使用しているopensshのバージョンがわからない。しかし、sftp chrootをセットアップしたいようです。

これらの関連する質問をチェックしてください。

1
Zoredache

SFTPはどのくらい悪いですか? Cygwinはややハックで、OpenSSH for Windowsはかなり古くなっています。私のアプローチは、あなたが抱えているほとんどの問題を解決するWebDAVを使用することでした:

  • ファイルの読み書き
  • 暗号化された認証トークンとファイルを保護
  • ほぼすべてのOSでサポートされています
  • 熱狂的なファイアウォール構成耐性

IISは、サーバー2000に付属するバージョンでもサポートします。

1
jldugger

私が遭遇している問題は、ユーザーがログインできるようにするには、ユーザーがOpenSSHプログラムフォルダーに対する実行権限を持っている必要があるということです。 「etc」などの特定のフォルダへのアクセスを無効にできることがわかりましたが、ここでアクセス許可を提供する必要があるのではないかと心配しています。 FileZillaを使用すると、フォルダー階層「/ cygdrive/e/homefolders/username」が表示され、「/」をブラウザーで読み取りアクセスできるフォルダーにアクセスできます。

これはOpenSSH priv-sep設定の一部です。

これ(PDF)は、それと他のOpenSSHセキュリティ機能に関する優れた論文です

簡単に言うと、メインデーモンは、プログラムの残りの部分のエクスプロイトが「ルート」アクセスを許可するのを防ぐために、非特権プロセスに切り替えます。

chroot like setup を使用して、ユーザーのホームディレクトリ外へのアクセスを完全に防ぐこともできます。

OSXクライアント以外での作業をあきらめたとしても、私はwebdavの提案を2番目に述べます。

0
LapTop006