CentOS 8でパスワードなしのシリアルコンソールアクセスを設定するには?

CentOS 8でパスワードなしのシリアルコンソールアクセスを設定するには?

これレッドハット公式ページいくつかのあいまいなヒントがあります。

/etc/securettyにはできるだけ多くのデバイスがリストされているため、ほとんどの場合、実際の効果はデフォルトでそのデバイスを許可することになるため、この変更は小さな影響しか与えません。ただし、より制限の厳しい構成を使用している場合は、pam_securetty.soモジュールを有効にする行を/etc/pam.dディレクトリの対応するファイルに追加し、新しい/etc/securettyファイルを作成する必要があります。

パスワードのないシリアルコンソールへのアクセスを許可するよりきれいな方法がないことが奇妙です。

これページうまく動作するソリューションが提供されていますが、より簡単な方法があるかどうか疑問に思うことはできません。

答え1

CentOS 8の現在の状態ではそうは思いません。

問題は、シリアルポートを介した既存のUnixログインには、2つのコンポーネント、つまりポート設定を初期化し、gettyユーザー名を要求するプロセスとloginパスワードを要求するプロセス、パスワードを確認し、ユーザーセッションを開始するプロセスが含まれることです。 RHEL / CentOS SELinuxの規則は、これを念頭に置いて作成されました。

agettyloginとの組み合わせを両方のタスクを実行する他のものに置き換え、一致するようにPAMとSELinuxの設定を調整するあなたが提供したリンクから

自動ログイン設定はセキュリティの面で非常に重要な作業であるため、誤って実行される可能性が低いように、通常は多段階プロセスを実行する必要があります。これを定期的に実行する場合は、選択したツール(スクリプトやAnsibleなど)を使用して自動化するのを防ぐ方法はありません。

答え2

私はよりきちんとしたアプローチがないという点で同様の懸念を抱いているので、リンクされた質問に提供されているものとは異なる解決策を見つける必要があります。

  1. カーネル用のコンソールを構成する必要があります。これはプラットフォームによって異なりますが、一般的console=ttyS0にまたはですconsole=hvc0。これで/etc/securetty、の説明に従ってシリアルコンソールをに接続する必要はありません。pam_securetty(8):
   pam_securetty [...] will also allow root logins on the tty specified
   with console= switch on the kernel command line and on ttys from the
   /sys/class/tty/console/active.
  1. ルートログインが明確でなければなりません許可するシリアルコンソールには次のモジュールが/etc/pam.d/login必要です。pam_securetty
#%PAM-1.0
auth        required    pam_securetty.so
...
  1. その後、systemdで自動ログインを設定する必要があります。ゲッティ、渡された引数を実行して置き換えます。systemctl edit [email protected]ログイン -o '-p -- \\u'自動ログインの使用:
ExecStart=-/sbin/agetty --autologin root --noclear --keep-baud 115200,38400,9600 %I $TERM

関連情報