MongoDBは、最新のアプリケーション開発者向けに設計された、オープンソースの汎用のドキュメントベースの分散データベースです。従来のテーブルベースのリレーショナルデータベース構造に依存しないため、NoSQLデータベースとも呼ばれます。テーブルスタイルのメソッドではなく、JSON形式でデータを保存します。さまざまなプログラミング言語と簡単に統合できます。 Facebook、Cisco、Forbes、Adobe、Nokiaなどの多くの有名企業で使用されています。
この投稿では、Debian11にMongoDBNoSQLデータベースをインストールして保護する方法を紹介します。
- Debian11を実行しているサーバー。
- ルートパスワードはサーバーで構成されています。
MongoDBリポジトリを追加
デフォルトでは、MongoDBパッケージはDebian11のデフォルトリポジトリに含まれていません。そのため、MongoDB公式リポジトリをAPTに追加する必要があります。
まず、次のコマンドを使用して必要な依存関係をインストールします。
apt-get install curl apt-transport-https software-properties-common gnupg2 -y
すべての依存関係がインストールされたら、次のコマンドを使用してGPGキーをダウンロードして追加します。
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
次に、以下のコマンドを使用して、MongoDBリポジトリをAPTソースリストファイルに追加します。
echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org.list
次に、リポジトリを更新し、次のコマンドを使用してMongoDBサーバーをインストールします。
apt-get update -y
apt-get install mongodb-org -y
インストールが正常に完了したら、MongoDBサービスを開始し、システムの再起動時に開始できるようにします。
systemctl start mongod
systemctl enable mongod
次に、以下のコマンドを使用してMongoDBのバージョンを確認します。
mongod --version
次の出力が得られるはずです:
db version v4.4.9 Build Info: { "version": "4.4.9", "gitVersion": "b4048e19814bfebac717cf5a880076aa69aba481", "openSSLVersion": "OpenSSL 1.1.1k 25 Mar 2021", "modules": [], "allocator": "tcmalloc", "environment": { "distmod": "debian10", "distarch": "x86_64", "target_arch": "x86_64" } }
MongoDB認証を有効にする
デフォルトでは、認証はMongoDBで有効になっていません。セキュリティ上の理由から、MongoDB認証を有効にすることをお勧めします。
そのためには、MongoDBの管理ユーザーを作成する必要があります。
まず、次のコマンドを使用してMongoDBシェルに接続します。
mongo
接続したら、次のコマンドを使用してadminという名前のデータベースを作成します。
> use admin
次に、管理者ユーザーを作成し、パスワードを設定します:
> db.createUser(
{
user: "madmin",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
次の出力が表示されます。
Successfully added user: { "user" : "madmin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
次に、CTRL+Dを押してMongoDBシェルを終了します。次に、次のコマンドを使用してMongoDB構成ファイルを編集します。
nano /etc/mongod.conf
次の行を追加して、認証を有効にします。
security: authorization: enabled
ファイルを保存して閉じてから、MongoDBサービスを再起動して変更を適用します。
systemctl restart mongod
MongoDB接続を確認する
この時点で、MongoDB認証が有効になっています。次に、次のコマンドを実行して、ユーザー名とパスワードを使用してMongoDBシェルを接続します。
mongo -u madmin -p
認証が成功すると、次の出力が表示されます。
MongoDB shell version v4.4.9 Enter password: connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("8366d28f-55d3-4471-bd94-331329828181") } MongoDB server version: 4.4.9 >
次に、データベースをadminに変更し、次のコマンドを使用してすべてのユーザーを一覧表示します。
> use admin
> show users
次の出力が得られるはずです:
{ "_id" : "admin.madmin", "userId" : UUID("26dd5225-7bb6-4a57-96a0-7efc4e1a98ba"), "user" : "madmin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
MongoDBをアンインストールする
システムにMongoDBが必要ない場合は、システムからアンインストールできます。
まず、次のコマンドでMongoDBサービスを停止します。
systemctl stop mongod
次に、次のコマンドを実行してMongoDBパッケージを削除します。
apt-get remove mongodb-org --purge
次に、次のコマンドを実行して、MongoDBログとデータディレクトリを削除します。
rm -rf /var/lib/mongodb
おめでとう!これで、Debian 11にMongoDBが正常にインストールされ、保護されました。これで、WebアプリケーションでMongoDBを使用できます。詳細については、MongoDBの公式ドキュメントをご覧ください。