/etc/securetty のエントリの効果

/etc/securetty のエントリの効果

RHEL 5.5ではデフォルトで

[deuberger@saleen trunk]$ sudo cat /etc/securetty 
console
vc/1
vc/2
vc/3
vc/4
vc/5
vc/6
vc/7
vc/8
vc/9
vc/10
vc/11
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11

console各エントリ タイプ ( 、、 )の違いは何ですか? 具体的には、各エントリ タイプvc/*tty*追加および削除した場合の最終結果は何ですか?

私の理解では、これらはログイン方法とログイン時間に影響しますが、他に何か影響はありますか? また、どのエントリが存在するかによって、いつログインでき、いつログインできないかが決まりますか?

編集1

私が知っているのは、それが- -から- -tty1-6を使用して到達した最初の 6 つのコンソールからログインできるかどうかに対応するということです。私はそれらが仮想コンソールであると常に思っていたので、少し混乱しています。そして、それは何に対応していますか?CtrlAltF1CtrlAltF6console

ありがとう。

編集2

シングル ユーザー モードでは、どのような効果がありますか?

答え1

/etc/securettyモジュールはこれを参照して、pam_securettyどの仮想端末 ( tty*)rootからのログインが許可されるかを決定します。

以前は、/etc/securettyのようなプログラムによってlogin直接参照されていましたが、現在は PAM がそれを処理します。したがって、 への変更は、/etc/securettyを使用する構成ファイルで PAM を使用するすべてのものに影響しますpam_securetty.so。したがって、loginデフォルトではプログラムのみが影響を受けます。

/etc/pam.d/loginローカル ログインには使用され、/etc/pam.d/remoteリモート ログイン (telnet など) には使用されます。

主なエントリ タイプとその影響は次のとおりです。

  • /etc/securetty存在しない場合は、rootどこからでもログインできますtty
  • /etc/securettyが存在し、空の場合、アクセスはシングルユーザーrootモードまたはによって制限されていないプログラムに制限されますpam_securetty(つまりsu、、、、、)sudosshscpsftp
  • devfs( を処理するための非推奨のファイルシステム)を使用している場合/dev、 という形式のエントリを追加すると、vc/[0-9]*指定された仮想コンソール番号からの root ログインが許可されます。
  • udev(動的デバイス管理および の置き換え用)を使用している場合devfs、 形式のエントリを追加すると、tty[0-9]*指定された仮想コンソール番号からの root ログインが許可されます。
  • consoleのリストは/etc/securetty通常​​は効果がありません。/dev/console現在のコンソールを指し、通常はttyシングルユーザーモードでファイル名としてのみ使用され、/etc/securetty
  • のようなエントリを追加すると、割り当てられたものがリストされているものの1つであると仮定して、pts/[0-9]*疑似端末(pty)を使用するプログラムがpam_securettyログインできるようになります。通常は良い考えです。rootptyないこれらのエントリを含めることはセキュリティ上のリスクであるため、含めないでください。たとえば、パスワードをプレーンテキストで送信する telnet 経由で誰かが root にログインできるようになります (これはRHEL 5.5 で使用されるpts/[0-9]*形式であることに注意してください。 または他の形式のデバイス管理udevを使用する場合は異なりますdevfs)。

シングル ユーザー モードでは、の代わりに/etc/securettyが使用されるため、 は参照されません(詳細については、マニュアル ページを参照してください)。また、各ランレベルで使用されるログイン プログラムを変更することもできます。suloginloginsulogin/etc/inittab

経由でログインを/etc/securetty制御するために を使用すべきではないことに注意してください。そのためには、のの値を変更します。デフォルトでは、 は(したがって)を参照するように設定されていません。これを行う行を追加することもできますが、ステージの後になるまで実際の が設定されないため、期待どおりには機能しません。およびステージ中、少なくとも では、( ) は にハードコードされています。rootsshPermitRootLogin/etc/ssh/sshd_config/etc/pam.d/sshdpam_securetty/etc/securettysshttyauthauthaccountopensshttyPAM_TTYssh

上記の回答は RHEL 5.5 に基づいています。その多くは他の *nix システムの現在のディストリビューションに関係しますが、違いもあります。そのうちのいくつかは私が指摘しましたが、すべてではありません。

他の回答が不完全または不正確だったため、私は自分で回答しました。オンライン上の他の多くのフォーラム、ブログなどにも、このトピックに関する不正確または不完全な情報が掲載されているため、正確な詳細を得るために広範囲にわたる調査とテストを行いました。ただし、私が述べた内容に誤りがある場合は、お知らせください。

出典:

答え2

vc/XこれらはttyX同義語です。つまり、同じデバイスへの異なるパスです。冗長性のポイントは、ロックアウトされないようにさまざまなケースをキャッチすることです。

従来、login(おそらく もgetty、はっきり覚えていませんが) は、リストされていない端末でのログインをチェックし/etc/securettyて拒否していましたroot。最近のシステムでは、これを行う他の方法や他のセキュリティ対策もあります。 の内容を確認してください/etc/login.defs(securettyの機能についても説明されており、securetty(5)man ページでも推奨されています)。また/etc/pam.d/login、 では、この機能の動作を制御できます。

securettyは によってのみチェックされるためlogin、 を使用しないログイン手段login( を使用した SSH use_login=no、X ディスプレイ マネージャーなど) は影響を受けません。

関連情報