セキュアなSFTPサーバーのファイルシステムの保護


12

これは開発上の問題とは思えないかもしれませんが、本質的にはそうです。方法を説明させてください。開発の主な焦点は、動的コンテンツページです。一部のお客様から、古い静的コンテンツ用にサーバー内のスペース(有料)を許可するように依頼されました。顧客に別のドメインへのftpアカウントを与えることでこれを達成するために使用します。(たとえば、顧客ドメインはcustomer.comですが、otherdomain.com / customerstaticを介して静的コンテンツにアクセスしていました)。

ここで、Linuxサーバーで顧客にsftpアカウントを提供するセキュリティを強化したいと考えています。シェル環境でopenssh / sftp-serverを使用しているため、ログインまたはコマンドを実行できません。

問題は、本質的に多くのファイルシステムファイルがデフォルト(drwxr-xr-x)であるということです。これは、すべてのユーザーがディレクトリのコンテンツと場合によってはいくつかのファイルを読み取ることができることを意味します。ファイルシステム全体を-rwxr-x--xに変更することは賢明なことだとは思いません。なぜなら、その読み取り許可が必要なシステムファイルの数がわからないからです。

過去に誰かがこの問題に直面したことがあります。持っているなら、その道を教えてくれませんか?

ありがとう


良い質問と簡潔な完全な回答-モデレーターはおそらくタイトルを変更し、ウィキ以外の質問に変えるべきです。
MikeyB

質問のウィキを解除することはできません。ごめんなさい
ジェフアトウッド

回答:


22

SFTPは本来安全ではありません。それらをあなたのファイルシステム全体に入れることです。これをチェックして、chrootベースでSFTPアクセスを有効にする方法を確認してください。これにより、アクセスできるディレクトリ、たとえばホームディレクトリ、またはアップロード先をロックできます。

Linuxでは、この部分に注意を払います(/ etc / ssh / sshd_configの構成)。

  Match Group sftponly
         ChrootDirectory %h
         ForceCommand internal-sftp 
         AllowTcpForwarding no

これは、「sftponly」ユーザーグループの誰もがホームディレクトリに制限されることを意味します。

詳細についてはリンクを参照し、sshd_configのマンページも参照してください。お役に立てば幸いです。


さらにinternal-sftp、クライアントがsftpサブシステムを要求するときにOpenSSHを使用するようにOpenSSHに指示する必要がある場合がありますsftp-server。外部プログラムを使用するように設定されている場合があります。これを行うにSubsystem sftp internal-sftpは、(Matchセクションの下ではなく)構成ファイルのメインセクションで行を追加または変更します。
ネイト

ジョシュ、ユーザーのホームディレクトリのルート所有権を必要としないようにする方法を考えたことはありますか?
マットシモンズ


1

「多くのファイルシステムはデフォルトで755パーミッションです」と言うとき、実際にはデフォルトのumaskが022に設定されていることを意味します。 umaskを007に設定すると、デフォルトの許可が770になります。


0

OpenVZサーバーのセットアップを検討してから、会社ごとに個別の小さなVM ftp / sftp「コンテナー」を作成することを検討してください。これにより、それらはすべて分離され、OpenVZのコツをつかめば、この種の小さなことには本当に便利です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.