Debian 11にMongoDBをインストールしてセキュリティを確保する方法
Debian 11にMongoDBをインストールしてセキュリティを確保する方法
このページで
- 前提条件
- MongoDBリポジトリを追加する
- MongoDB認証を有効にする
- MongoDB接続を確認する
- MongoDBをアンインストールする
- 結論
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 mongodMongoDB接続を確認する
この時点で、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の公式ドキュメントをご覧ください。