Red Hat Training

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

4.2. root アクセスの制御

ホームマシンを管理する場合には、ユーザーは root ユーザーまたは、root または sudo などの setuid プログラムを使用して有効な su 権限を取得するために、一部のタスクを で実行する必要があります。setuid プログラムは、プログラムを作成するユーザーではなく、プログラムの所有者のユーザー ID(UID)を操作する 1 つです。このようなプログラムは、以下の例のように、長い形式一覧の所有者セクションの 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 つまたは単一ユーザーモードへのアクセスは、ブートローダーのパスワード保護を禁止する必要があります(このトピックの詳細は 「ブートローダーのセキュリティー保護」 を参照してください)。
以下は、管理者がさらに root ログインを禁止できる 4 つの方法です。
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 クライアント
  • 電子メールクライアント
コンソールデバイス(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、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 ファイルは、認証後にコンソールが開か ない ため、ツールの OpenSSH スイートを使用して root ユーザーがリモートでログインしないようにします。

表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 アクセスの制限
/lib/security/pam_listfile.so モジュールを介して PAM により、特定のアカウントを拒否するのに優れた柔軟性を持たせることができます。管理者は、このモジュールを使用してログインが許可されないユーザーの一覧を参照できます。root をシステムサービスに制限するには、/etc/pam.d/ ディレクトリーでターゲットサービスのファイルを編集し、認証に pam_listfile.so モジュールが必要であることを確認してください。
以下は、ディレクティブが 1 行 1 行にある場合に、/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 つの中央一覧を使用して複数サービスへのアクセスを拒否することができます。
管理者が複数のサービスへのアクセスを拒否する場合は、/etc/pam.d/pop/etc/pam.d/imap などの PAM 設定ファイル、または SSH クライアントの場合は /etc/pam.d/ssh のように同様の行を追加できます。
PAM の詳細 『は、/usr/share/doc/pam-<version>/html/ ディレクトリーにある『Linux-PAM System Administrator's Guide』』 を参照してください。

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

効果 悪影響を与えるものではない
PAM が認識するネットワークサービスへの root アクセスを阻止します。以下のサービスが root アカウントにアクセスできないようにします。
  • login
  • gdm
  • kdm
  • xdm
  • ssh
  • scp
  • sftp
  • FTP クライアント
  • 電子メールクライアント
  • PAM 対応のサービス
PAM が認識していないプログラムおよびサービス。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。