ウェブサイト検索

Debian 11にMongoDBをインストールしてセキュリティを確保する方法


Debian 11にMongoDBをインストールしてセキュリティを確保する方法

このページで

  1. 前提条件
  2. MongoDBリポジトリを追加する
  3. MongoDB認証を有効にする
  4. MongoDB接続を確認する
  5. MongoDBをアンインストールする
  6. 結論

MongoDBは、現代のアプリケーション開発者向けに設計されたオープンソースの一般目的のドキュメントベースの分散データベースです。また、従来のテーブルベースのリレーショナルデータベース構造に依存しないため、NoSQLデータベースとも呼ばれています。データはテーブルスタイルの方法の代わりにJSON形式で保存されます。さまざまなプログラミング言語と容易に統合できます。Facebook、Cisco、Forbes、Adobe、Nokiaなど、多くの著名な企業によって使用されています。

この記事では、Debian 11にMongoDB NoSQLデータベースをインストールして安全にする方法を示します。

前提条件

  • Debian 11を実行しているサーバー。
  • サーバーにはルートパスワードが設定されています。

MongoDBリポジトリを追加する

デフォルトでは、MongoDBパッケージはDebian 11のデフォルトリポジトリには含まれていません。したがって、APTにMongoDBの公式リポジトリを追加する必要があります。

まず、次のコマンドを使用して必要な依存関係をインストールします:

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を成功裏にインストールし、セキュリティを確保しました。これで、ウェブアプリケーションでMongoDBを使用できるようになりました。詳細については、MongoDBの公式ドキュメントをご覧ください。

関連記事: