今年の初めには、lots of MongoDB databases were hackedです。これには私のデータベースも含まれていました。昨日、認可を有効にした私の新しいデータベースがハッキングされていることに気付きました。ユーザー名とパスワードは非常に安全です(ランダムな文字と記号のある16文字以上のパスワード)。MongoDBデータベースを安全にロックダウンする方法は?
私は今それを完全に保護することに決めましたが、私は正直なところでどこを進めるべきか分かりません。
security:
authorization: enabled
、それは(sudo service mongod restart
後に)十分にする必要があります:私は既に持っています。 1つのデータベースと管理者ユーザーしかいないが、リモート接続からの匿名アクセスは引き続き許可されている。私はmongod --auth
のようなmongodを走らせるべきであると多くの場所を読んでいるが、これは上記のように認可を有効にするのと同じだ。
この時点で、私はサーバー上で匿名認証を無効にするのに苦労しています。私は何を取りこぼしたか?アカウントを使用せずに認証できるのはなぜですか?
'security.authorization'設定ディレクティブはコマンドライン' --auth'オプションと同等です。 'mongo'シェルでセキュリティが有効になっていることを確認できますか?' db.serverCmdLineOpts()。parsed.security.authorization'の出力は 'enabled'にする必要があります。使用しているMongoDBの具体的なバージョンは?最初のユーザーをどのように作成しましたか? [初期ユーザーの作成](https://docs.mongodb.com/manual/tutorial/enable-authentication/#create-the-user-administrator)(通常はユーザーadminロールを持つ必要があります)による認証を適切に有効にしている場合は、 )、anonアクセスはもう許可されなくなります。 – Stennie
@Stennieコマンドを実行すると、 'authorization is undefined'とだけ言います。 '--auth'は有効になっておらず、' mongod.conf'ファイルは正しく読み込まれません。私は新しい管理者ユーザー( 'use admin'、' db.createUser() ')を作成し、' sudo service mongod restart'を使って再起動しましたが、まだ匿名でログインできます。 – MortenMoulder
どのO/SとMongoDBサーバーのバージョンを使用していますか? '承認が未定義である場合'は、想定されている設定ファイルが使用されていないように見えます。 'mongo'シェルで' db.serverCmdLineOpts()。parsed'を実行すると、設定ファイルのパス( 'db.serverCmdLineOpts()。parsed.config')を含むすべてのコマンドラインオプションが返されます。 – Stennie