私はDebian安定版を実行しており、「sftponly」グループのユーザーのために次の環境を確立しようとしています。
私の実験と調査から、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にはエクスプロイトの履歴があります)。
システムへの制限付きアクセスを許可する代替シェルである rssh を見てください。
rsshは、ssh(1)を介してホストへの制限付きアクセスを提供するための制限付きシェルであり、シェルがrsshに設定されているユーザーが1つ以上のコマンドを使用できるようにしますscp(1)、sftp(1)cvs(1 )、rdist(1)、rsync(1)、およびそれらのコマンドのみ。
rssh.conf ファイルを使用して、ユーザーごとまたはシステム全体で使用できるコマンドを構成できます。
あるいは、 scponly を使用して、必要なことを実行できます。 sshスイートのラッパーとして機能し、ファイル転送を許可しますが、シェルアクセスは許可しません。
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
OpenSSHには、組み込みのSFTPサーバーはありますが、組み込みのSCPサーバーはないので、同じように簡単でも信頼できるものもありません。
警告:Vince Berkの提案は多くの理由で悪いです:
... 等々。この種のアプローチは、非常に脆弱です。
これはサードパーティのツールであり、問題の範囲外ですが、とにかく言及する価値があると思いました。
脱獄キット: https://olivier.sessink.nl/jailkit/
ユーザーの刑務所を簡単にセットアップできるツールのコレクションがあります。バイナリとライブラリを刑務所にコピーし、刑務所内からOSにロギングをセットアップします。私はそれを使用してsftp/scp/rsync-only chrootsをビルドしました。
また、jk_lsh
(jailkit限定シェル)が付属しており、jailの外部で使用して、ユーザーが実行できるコマンドを制限できます。 chrootなしでのみscp/sftp/rsyncを許可したい。