Menu Close
Settings Close

Language and Page Formatting Options

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.2. Root アクセスの制御

ホームマシンを管理する場合、ユーザーはいくつかのタスクを root ユーザーとして、または sudosu などの setuid プログラムを使用して効果的な root 権限を取得して実行する必要があります。setuid プログラムとは、プログラムを操作するユーザーではなく、プログラムの所有者のユーザー ID(UID) で動作するプログラムのことです。このようなプログラムは、以下の例のように、長いフォーマットリストの所有者セクションでsで示されます。
~]$ ls -l /bin/su
-rwsr-xr-x. 1 root root 34904 Mar 10  2011 /bin/su
注記
s は大文字または小文字の場合があります。大文字で表示されている場合は、基になる許可ビットが設定されていないことを意味します。
しかし、組織のシステム管理者の場合、組織内のユーザーが自分のマシンに対してどの程度の管理アクセスを持つべきかについて選択する必要があります。pam_console.so と呼ばれる PAM モジュールを介して、リムーバブルメディアの再起動やマウントなど、通常は root ユーザー専用に予約されている一部のアクティビティーは、物理コンソールにログインする最初のユーザーに許可されます。 しかし、ネットワーク設定の変更、新しいマウスの設定、ネットワークデバイスのマウントなど、その他の重要なシステム管理タスクは、管理者権限がなければできません。その結果、システム管理者は、ネットワーク上のユーザーがどの程度のアクセスを受けるべきかを決定する必要があります。

4.2.1. Root アクセスの拒否

管理者が、これらの理由またはその他の理由でユーザーに root としてのログインを許可することに不安がある場合は、root パスワードを秘密にして、ブートローダーのパスワード保護によってランレベル 1 またはシングルユーザーモードへのアクセスを禁止する必要があります (詳細は 「ブートローダーのセキュア化」 を参照)。
管理者は、以下の 4 つの方法を使用して、root ログインが禁止されていることを確認できます。
root シェルの変更
ユーザーがrootとして直接ログインできないようにするには、システム管理者が/etc/passwdファイルでrootアカウントのシェルを/sbin/nologinに設定します。

表4.2 Root シェルの無効化

影響あり 影響なし
root シェルへのアクセスを阻止し、そのような試みがあればログに記録します。以下のプログラムは root アカウントにアクセスできません。
  • login
  • gdm
  • kdm
  • xdm
  • su
  • ssh
  • scp
  • sftp
FTP クライアント、メールクライアント、多くの setuid プログラムなど、シェルを必要としないプログラム。以下のプログラムは root アカウントにアクセスできません
  • sudo
  • FTP クライアント
  • Email クライアント
任意のコンソールデバイス (tty) を使用した root アクセスの無効化
rootアカウントへのアクセスをさらに制限するために、管理者は/etc/securettyファイルを編集してコンソールでのrootログインを無効にすることができます。このファイルには、rootユーザーがログインを許可されているすべてのデバイスが一覧表示されています。ファイルがまったく存在しない場合、root ユーザーは、コンソールまたは raw ネットワークインターフェイスを介して、システム上の任意の通信デバイスを介してログインすることができます。これは危険なことです。なぜなら、ユーザーは Telnet を使用して自身のマシンに root としてログインすることができ、これにより、パスワードがプレーンテキストでネットワーク上に送信されてしまうからです。
デフォルトでは、Red Hat Enterprise Linux 7 の/etc/securettyファイルでは、マシンに物理的に接続されたコンソールでrootユーザーがログインすることしかできません。rootユーザーがログインできないようにするには、rootとしてシェルプロンプトで次のコマンドを入力して、このファイルの内容を削除します。
echo > /etc/securetty
KDM、GDM、XDM のログインマネージャーでsecuretty サポートを有効にするには、次の行を追加します。
auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so
追加対象のファイルは以下のとおりです。
  • /etc/pam.d/gdm
  • /etc/pam.d/gdm-autologin
  • /etc/pam.d/gdm-fingerprint
  • /etc/pam.d/gdm-password
  • /etc/pam.d/gdm-smartcard
  • /etc/pam.d/kdm
  • /etc/pam.d/kdm-np
  • /etc/pam.d/xdm
警告
空の/etc/securettyファイルがあっても、rootユーザーが OpenSSH ツールを使用してリモートでログインすることはできません

表4.3 Root ログインの無効化

影響あり 影響なし
コンソールまたはネットワークを使用して root アカウントにアクセスできないようにします。以下のプログラムは root アカウントにアクセスできません。
  • login
  • gdm
  • kdm
  • xdm
  • tty を開くその他のネットワークサービス
root としてログインしないが、setuid またはその他のメカニズムを使用して管理タスクを実行するプログラム。以下のプログラムは root アカウントにアクセスできません
  • su
  • sudo
  • ssh
  • scp
  • sftp
Root SSH ログインの無効化
SSH プロトコルを介した root ログインを防ぐには、SSH デーモンの設定ファイル /etc/ssh/sshd_config を編集し、以下の行を変更します。
#PermitRootLogin yes
の行を以下のように変更します。
PermitRootLogin no

表4.4 Root SSH ログインの無効化

影響あり 影響なし
ツールの OpenSSH スイート経由での root アクセスを防ぎます。以下のプログラムは root アカウントにアクセスできません。
  • ssh
  • scp
  • sftp
OpenSSH のツール群に含まれないプログラム。
PAM を使用して、サービスへの root アクセスを制限する
PAM は、/lib/security/pam_listfile.soモジュールを通じて、特定のアカウントを非常に柔軟に拒否することができます。管理者は、このモジュールを使用して、ログインを許可されていないユーザーのリストを参照できます。システムサービスへの root アクセスを制限するには、/etc/pam.d/ ディレクトリーの対象サービスのファイルを編集し、pam_listfile.so モジュールが認証に必要であることを確認します。
以下は、/etc/pam.d/vsftpd PAM 設定ファイルの vsftpd FTP サーバーに対するモジュールの使用例です (ディレクティブが 1 行の場合、最初の行の最後の \ 文字は 不要 です)。
auth   required   /lib/security/pam_listfile.so   item=user \
sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
これにより、PAM は /etc/vsftpd.ftpusers ファイルを参照し、記載されているユーザーのサービスへのアクセスを拒否するように指示されます。管理者はこのファイルの名前を変更することができ、各サービスごとに個別のリストを保持することも、1 つの中央リストを使用して複数のサービスへのアクセスを拒否することもできます。
管理者が複数のサービスへのアクセスを拒否したい場合、同様の行を PAM 設定ファイル (メールクライアントの場合は /etc/pam.d/pop/etc/pam.d/imap、SSH クライアントの場合は /etc/pam.d/ssh) に追加することができます。
PAM についての詳細情報は、『The Linux-PAM System Administrator's Guide』 を参照してください。/usr/share/doc/pam-<version>/html/ ディレクトリーにあります。

表4.5 PAM を使用した root の無効化

影響あり 影響なし
PAM を認識したネットワークサービスへの root アクセスを阻止します。以下のサービスは、root アカウントにアクセスできないようにします。
  • login
  • gdm
  • kdm
  • xdm
  • ssh
  • scp
  • sftp
  • FTP クライアント
  • Email クライアント
  • すべての PAM 対応サービス
PAM を意識していないプログラム、サービス。