web-dev-qa-db-ja.com

安全なSFTPサーバーのためのファイルシステムの保護

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

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

問題は、本質的に多くのファイルシステムファイルがデフォルト(drwxr-xr-x)であるということです。つまり、すべてのユーザーがディレクトリの内容と、場合によっては一部のファイルを読み取ることができます。ファイルシステム全体を-rwxr-x--xに変更することは、その読み取り権限が必要なシステムファイルの数がわからないため、賢明な方法ではないと思います。

過去に誰かがこの問題に直面したことがあります。もしあれば、道を教えてもらえますか?

ありがとう

12
Geo

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

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

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

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

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

22
Josh K

「多くのファイルシステムにはデフォルトで755のアクセス許可があります」と言うと、その実際にははデフォルトのmaskが022に設定されていることを意味します。 umaskを027に設定してデフォルトのアクセス許可を750にするか、umaskを007に設定してデフォルトのアクセス許可を770にすることで、このデフォルトを(新しいファイルの場合)変更できます。

1
Brent

これは興味深いかもしれません- http://sublimation.org/scponly/wiki/index.php/Main_Page

一部のユーザーをscpのみに制限できるようにします。オプションでそれらをchrootします。

1
stephen mulcahy

OpenVZサーバーをセットアップしてから、会社ごとに個別の小さなVM ftp/sftp'container 'を作成することを検討してください。これにより、すべてが個別に保たれ、OpenVZのコツをつかんだらこのような小さなことには本当に便利です。

0
Kyle Brandt