昨日使い始めたばかりなので、glusterは苦手です。
2台のサーバーがあります。どちらもglusterfs-serversを実行しています。
サーバー1から:Sudo glusterfs peer probe server2
であり、クラスターに追加されます。質問はありませんでした。 server2にserver1がクラスターに追加できるように指示することは何もしませんでした。私には意味がありません。
これは私を混乱させます。つまり、誰かが私のglusterfsサーバーをクラスターに追加するとどうなるでしょうか。まったくセキュリティがないように見えました。それは正気ではなく、私はそれを取得しません。
TL、DR:安全です。サードパーティはそれ自体で既存のクラスターに参加できません。内部から招待する必要があります。
質問はありませんでした。 server2にserver1がクラスターに追加できるように指示することは何もしませんでした。
私自身もこの質問があったので、ドキュメントを見に行きました。
新しいクラスターを作成するときは、1つのサーバーで開始し、gluster peer probe OTHER_SERVER
を使用して他のサーバーを追加します。初期化されていない新しいglusterfsサーバーを追加するため、追加のセキュリティは厳密には必要ありません。 (でない限り新しくインストールされ、初期化されていないglusterをパブリックアクセスで実行したままにしておくと、問題が発生します)。
では、攻撃者が既存のクラスタに参加するのを防ぐのは何ですか重要なのは次の段落です。
このプールが確立されると、信頼されたメンバーのみが新しいサーバーをプールにプローブできます。新しいサーバーはプールをプローブできません。プールからプローブする必要があります。 ( ソース )
ドキュメントに記載されているように、サードパーティ/敵対者はクラスタに参加できないため、内部から招待する必要があります。
Glusterは、関連する攻撃を軽減するための他のセキュリティメカニズムも提供します。
gluster volume set VOL_NAME auth.allow IP1,IP2
重要なことについては、外部からの接続を許可しないファイアウォールが設定されたサーバー間のプライベートリンク(IPSec/VPN)を検討することもできます。
これは正気でないことに同意します。セキュリティはglusterfsのアドオンです。 @ceejayozで指摘されているように、glusterfsは物理的に安全で隔離されたネットワークでのみ実行されるように設計されています。
幸い、glusterfsはsslサポートを追加しましたが、残念ながらほとんどドキュメント化されていません。おそらくsslを使用すると状況が改善されますが、ドキュメント化されていないため、確実とは言えません。存在するドキュメントは このブログ にあります。悲しいことに、それは一連のステップを与えるだけです。
Glusterサーバーは、インフラストラクチャの独立したファイアウォールセクションに配置する必要があります。それらは公共のインターネットに公開されることを意図していません。
私も最初はglusterfsに関するセキュリティ上の懸念を持っていたので、参照用にこのトピックに追加したいと思います。
私の組織は、非常に大規模なRHGSクラスターを導入して、分散した複数の古いストレージシステムを統合するプロセスを進めています。
私が持っていたセキュリティ上の懸念は、次のようなクライアントシステムからrootとしてglusterコンソールコマンドを実行する機能に関連していました...
「はい| gluster --remote-Host = rhgs1ボリューム削除データ」
うわぁ! rootアカウントを制御していないシステムでroot権限を持っていると、データが破壊される可能性があります。
幸い、これはそうではありません。 /var/log/glusterfs/cli.logで示されるように、ボリュームを変更するコマンドはいずれも終了ステータス1を返し、EPOLLERRで失敗します。そのクライアントがアクセスできるボリュームに関する情報しか取得できないようです。
基本的に、システムはどのGlusterノードからでもクラスターメンテナンスタスクを実行できるようにクラスターピアである必要があります。彼らがglusterfsクラスターを「セキュアストレージプール」と呼ぶ理由がわかります。
私の意見では、問題を解決するにはいくつかの方法があります。