web-dev-qa-db-ja.com

OpenSSHは 'internal-sftp'のようなものですが、SCP用ですか?

私はDebian安定版を実行しており、「sftponly」グループのユーザーのために次の環境を確立しようとしています。

  • 投獄された
  • sFTPで転送できます
  • sCPで転送できます
  • sSHでインタラクティブにログインできない

私の実験と調査から、sshd_configの次のスタンザは私にそこで90%を取得するようです:

Match group sftponly
ChrootDirectory /sftp/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

これは私に投獄されたSFTPを与え、SSHを与えません、それは良いことです。ただし、SCPも無効になります。これは、かなりの数のクライアントがSFTPではなくSCPを使用するレガシースクリプトプロセスであり、交換対象のサーバーが両方のプロトコルをサポートしているため、理想的とは言えません。変更されたため、SCPを完全に無効にすることはおそらく現実的ではありません。

着信SCP接続によりsshdがユーザーのログインシェルを介して「scp」プロセスをそのユーザーとして生成するため、この構成ではSCPが無効になるのは当然です。特別な 'internal-sftp'ハンドラーがなければ、通常はSFTPにも同じことが当てはまるようです。

それで、私の質問は次のとおりだと思います:scponlyやrsshなどのサードパーティツールを使用せずに、SCPに対して「internal-sftp」と同じ効果を達成する方法はありますか? 「internal-sftp」の本当に良い点は、サポートファイルで刑務所をセットアップしたり、潜在的に悪用可能なサードパーティのsetuidバイナリを処理したりする必要がないことです(特に、rsshにはエクスプロイトの履歴があります)。

16
brianjcohen

システムへの制限付きアクセスを許可する代替シェルである rssh を見てください。

rsshは、ssh(1)を介してホストへの制限付きアクセスを提供するための制限付きシェルであり、シェルがrsshに設定されているユーザーが1つ以上のコマンドを使用できるようにしますscp(1)、sftp(1)cvs(1 )、rdist(1)、rsync(1)、およびそれらのコマンドのみ。

rssh.conf ファイルを使用して、ユーザーごとまたはシステム全体で使用できるコマンドを構成できます。

あるいは、 scponly を使用して、必要なことを実行できます。 sshスイートのラッパーとして機能し、ファイル転送を許可しますが、シェルアクセスは許可しません。

3
user9517

Sshでこれを行う必要がありますか?

もしそうなら、あなたは彼らのシェルを次のように設定してみることができます:

/usr/libexec/openssh/sftp-server

上記を/ etc/shellsに追加してください

組み込みアカウントの使用から切り離したい場合は、proftpdをセットアップできます

私はproftpdを使用して安全なSFTPをセットアップしました。次のようにコンパイルされたproftpd:

./configure --prefix =/usr --sysconfdir =/etc --with-modules = mod_sftp

以下のこの記事、およびGoogleでの設定方法に関するその他の記事を使用できます。

http://tutorialgenius.blogspot.com/2012/02/linux-installing-and-configuring.html

2
coderwhiz

OpenSSHには、組み込みのSFTPサーバーはありますが、組み込みのSCPサーバーはないので、同じように簡単でも信頼できるものもありません。

警告:Vince Berkの提案は多くの理由で悪いです:

  1. 起動ファイルに関するシェルの動作は、環境変数の影響を受ける可能性があり、SSHはサーバー構成に応じてリモートで設定できます。
  2. ユーザーはssh/bin/bashを実行してシェルを取得するだけです。 ttyがないので使いづらいでしょうが、彼が実行できる他のすべてのプログラムについては言うまでもありません。
  3. ユーザーが "ssh Host rm -f .bash_profile"だけを実行できる場合、.bash_profileの権限を変更してもあまり効果がありません。ホームディレクトリの権限については何も言及されていません。

... 等々。この種のアプローチは、非常に脆弱です。

これはサードパーティのツールであり、問​​題の範囲外ですが、とにかく言及する価値があると思いました。

脱獄キット: https://olivier.sessink.nl/jailkit/

ユーザーの刑務所を簡単にセットアップできるツールのコレクションがあります。バイナリとライブラリを刑務所にコピーし、刑務所内からOSにロギングをセットアップします。私はそれを使用してsftp/scp/rsync-only chrootsをビルドしました。

また、jk_lsh(jailkit限定シェル)が付属しており、jailの外部で使用して、ユーザーが実行できるコマンドを制限できます。 chrootなしでのみscp/sftp/rsyncを許可したい。

0
chutz