紹介
MariaDBはオープンソースのリレーショナルデータベース管理システムであり、一般的には人気のあるLAMP(Linux、Apache、MySQL、PHP/Python/Perl)スタックのデータベース部分としてMySQLの代替として使用されます。これはMySQLの代替として利用されることを意図しています。
このインストールガイドの簡単なバージョンは、次の3つの手順で構成されています:
- パッケージインデックスを
apt
を使用して更新します。 apt
を使用してmariadb-server
パッケージをインストールします。 このパッケージには、MariaDBと対話するための関連ツールも含まれています。- 含まれている
mysql_secure_installation
セキュリティスクリプトを実行して、サーバへのアクセスを制限します。
このチュートリアルでは、Ubuntu 22.04サーバにMariaDBをインストールし、実行中で安全な初期設定であることを確認する方法について説明します。
前提条件
- このチュートリアルに従うには、Ubuntu 22.04 を実行しているサーバーが必要です。このサーバーには、非ルートの管理ユーザーと、UFW で構成されたファイアウォールが設定されている必要があります。これを設定するには、Ubuntu 22.04 の初期サーバーセットアップガイドに従ってください。
ステップ 1 — MariaDB のインストール
この記事を執筆時点では、Ubuntu 22.04 のデフォルトの APT リポジトリには MariaDB バージョン 10.5.12 が含まれています。
これをインストールするには、サーバー上のパッケージインデックスを apt
で更新します:
次に、パッケージをインストールします:
これらのコマンドで MariaDB がインストールされますが、パスワードの設定やその他の構成変更を促すことはありません。デフォルトの構成では MariaDB のインストールが安全でないため、mariadb-server
パッケージが提供するスクリプトを使用して、サーバーへのアクセスを制限し、未使用のアカウントを削除します。
ステップ 2 — MariaDB の構成
新しい MariaDB インストールの場合、次のステップは含まれているセキュリティスクリプトを実行することです。このスクリプトは、リモートrootログインやサンプルユーザーなどのセキュリティの低いデフォルトオプションを変更します。
セキュリティースクリプトを実行してください:
これにより、一連のプロンプトが表示され、MariaDBインストールのセキュリティオプションを変更できます。最初のプロンプトでは、現在のデータベースrootパスワードを入力するように求められます。まだ設定していない場合は、「なし」として「ENTER」を押します。
OutputNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, you'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
次に、Unixソケット認証に切り替えるかどうかを尋ねられます。すでに保護されたrootアカウントがあるため、この手順をスキップできます。 「n」と入力してから、「ENTER」を押します。
Output. . .
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
次のプロンプトでは、データベースrootパスワードを設定するかどうかを尋ねられます。Ubuntuでは、MariaDBのrootアカウントは、自動システムメンテナンスに密接に関連しているため、そのアカウントの構成された認証方法を変更しないでください。
そうすると、パッケージの更新によって管理アカウントへのアクセスが削除されることで、データベースシステムが破損する可能性があります。 「n」と入力してから、「ENTER」を押します。
Output. . .
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] n
後で、ソケット認証が使用ケースに適さない場合の追加の管理アカウントのパスワードアクセスの設定方法について説明します。
そこから、すべての後続の質問のデフォルトを受け入れるために、「Y」と入力してから「ENTER」を押します。これにより、一部の匿名ユーザーとテストデータベースが削除され、リモートrootログインが無効になり、新しいルールが読み込まれ、MariaDBがすぐに行った変更を実装します。
それにより、MariaDBの初期セキュリティ設定が完了しました。次のステップはオプションですが、MariaDBサーバーにパスワードで認証したい場合はこのステップに従うことをお勧めします。
ステップ3 — (オプション) パスワード認証を使用する管理ユーザーの作成
UbuntuシステムでMariaDB 10.5を実行している場合、root MariaDBユーザーはデフォルトでパスワードではなくunix_socket
プラグインを使用して認証されるように設定されています。これにより、多くの場合、セキュリティと使いやすさが向上しますが、外部プログラム(例: phpMyAdmin)に管理権限を付与する必要がある場合には複雑になることもあります。
サーバーは、ログの回転やサーバーの起動と停止などのタスクにrootアカウントを使用するため、rootアカウントの認証詳細を変更しないことが最善です。 /etc/mysql/debian.cnf
構成ファイルで資格情報を変更することは最初は機能するかもしれませんが、パッケージの更新でこれらの変更が上書きされる可能性があります。パッケージメンテナーは、rootアカウントを変更する代わりに、パスワードベースのアクセス用に別の管理アカウントを作成することをお勧めしています。
このために、adminという新しいアカウントを作成します。このアカウントはrootアカウントと同じ機能を持ちますが、パスワード認証が構成されています。ターミナルからMariaDBプロンプトを開きます:
次に、root権限とパスワード認証を持つ新しいユーザを作成します。ユーザ名とパスワードを好みに合わせて変更してください:
セッション内で保存され、利用可能であることを確認するために、権限をフラッシュします:
その後、MariaDBシェルから終了します:
最後に、MariaDBのインストールをテストします。
ステップ4 — MariaDBのテスト
デフォルトのリポジトリからインストールすると、MariaDBは自動的に実行されます。これをテストするには、その状態を確認します。
以下のような出力が表示されます:
Output● mariadb.service - MariaDB 10.5.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
. . .
MariaDBが実行されていない場合は、sudo systemctl start mariadb
コマンドで開始できます。
さらに確認するために、管理コマンドを実行するクライアントであるmysqladmin
ツールを使用してデータベースに接続できます。たとえば、このコマンドはUnixソケットを使用してMariaDBにrootとして接続し、バージョンを返します:
同様の出力が表示されます。
Outputmysqladmin Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.12-MariaDB-1build1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 15 min 53 sec
Threads: 1 Questions: 482 Slow queries: 0 Opens: 171 Open tables: 28 Queries per second avg: 0.505
結論
このガイドでは、MariaDB関係データベース管理システムをインストールし、mysql_secure_installation
スクリプトを使用してセキュリティを確保しました。また、MariaDBサーバーの機能をテストする前に、パスワード認証を使用する新しい管理ユーザーを作成するオプションもありました。
実行中でセキュリティの確保されたMariaDBサーバーがある今、次の手順の例をいくつか示します:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-22-04