ウェブサイト検索

CentOS 7 でシングル ユーザー モードをパスワード保護する方法


以前の記事の 1 つで、CentOS 7 でシングル ユーザー モードで起動する方法について説明しました。 これは「メンテナンス モード」とも呼ばれ、Linux は基本的な機能のための少数のサービスのみを開始して、単一のユーザー (通常はスーパーユーザー) が、fsck を使用して破損したファイルシステムを修復するなど、特定の管理タスクを実行します。

シングル ユーザー モードでは、 システムはログイン資格情報 (ユーザー名とパスワード) なしでコマンドを実行できるシングル ユーザー シェル を実行し、ファイル システム全体にアクセスできる限定されたシェルに直接アクセスします。

これは、侵入者にシェルへの直接アクセス (およびファイルシステム全体へのアクセスの可能性) を与えるため、大規模なセキュリティ ホールです。したがって、以下で説明するように、CentOS 7 ではシングル ユーザー モードをパスワードで保護することが重要です。

CentOS/RHEL 7 では、レスキュー緊急ターゲットシングルユーザー モードでもあります)はパスワードです。デフォルトで保護されています。

たとえば、systemd 経由でターゲット (ランレベル) を rescue.target に変更しようとすると ( >emergency.target))、次のスクリーンショットに示すように、root パスワードの入力を求められます。

systemctl isolate rescue.target
OR
systemctl isolate emergency.target

ただし、侵入者がサーバーに物理的にアクセスできる場合、e キーを押して最初のブート オプションを編集することで、grub メニュー項目からブートするカーネルを選択できます。

“linux16” で始まるカーネル行で、引数 ro“rw init=/sysroot/bin/sh ” に変更できます。 を実行し、SINGLE=/sbin/sushell 行が CentOS 7 でシングル ユーザー モードで起動します。 > ファイル /etc/sysconfig/init 内の SINGLE=/sbin/sulogin

したがって、CentOS 7 でシングル ユーザー モードをパスワードで保護する唯一の方法は、次の手順を使用して GRUB をパスワードで保護することです。

CentOS 7 で Grub をパスワード保護する方法

まず、 図に示すようにgrub2-setpassword ユーティリティを使用して、強力な暗号化パスワードを作成します。

grub2-setpassword

パスワードのハッシュ/boot/grub2/user.cfgに保存され、ユーザー、つまり「root」/に定義されます。 boot/grub2/grub.cfg ファイルでは、次のように cat コマンドを使用してパスワードを表示できます。

cat /boot/grub2/user.cfg

次に、/boot/grub2/grub.cfg ファイルを開き、パスワードで保護するブート エントリを検索します。menuentry で始まります。エントリが見つかったら、そこから --unrestricted パラメータを削除します。

ファイルを保存して閉じ、CentOS 7 システムを再起動し、e キーを押してブート エントリを変更してみます。表示されているように、資格情報の入力を求められます。

それでおしまい。 CentOS 7 の GRUB メニューがパスワードで保護されました。