X が強制終了されたときに TTY へのアクセスを防止する

X が強制終了されたときに TTY へのアクセスを防止する

または/dev/tty1を使用して、 の行を に設定して、仮想コンソールから X サーバーを手動で起動するとします。X サーバーは実行され、別の仮想コンソール (通常は ) に配置されます。しばらくして、 を使用して画面をロックし、コンピュータから離れることにしました。画面のロックを解除するには、ユーザーのパスワードを知っている必要があります。ここで誰かが実行中の X サーバーを強制終了すると、 で実行中のシェルに戻され、コンピュータにアクセスできる状態になります。通常、X サーバーは、または を使用して初期コンソールと実行中のプロセスに切り替えて、 で強制終了できます。xinitstartxid:3:initdefault:/etc/inittab/dev/tty7xscreensaver --lock/dev/tty1Ctrl+Alt+BackspaceSIGTERM^C

これは簡単に実行できます。つまり、これを防ぐ簡単な方法があるはずです。私はvlockこれを防ぐために仮想コンソールをロックするには/dev/tty1:

$ xinit && vlock || vlock

Xサーバーが復帰すると、正常&&かどうかにかかわらず||、コンソールはロックされます。これは最適な解決策ではないかもしれません。私は読んだことがありますこれ糸とこれさまざまな解決策を説明するウィキ記事。

X セッションから仮想コンソールへのこのようなアクセスを防ぐには、他にどのような方法がありますか? 上記の方法は十分に安全ですか? システムでこれを防ぐにはどうすればよいですか? ディスプレイ マネージャーは使用しません。

答え1

Xorgからのコンソールスイッチを防ぐには、Option "DontVTSwitch" "yes"Xorg 設定ファイルに追加します。

Ctrl+ Alt+を防ぐためにBackspaceは、DontZapオプションを Xorg 構成ファイルに追加します。もちろん、これによってコンソールへのアクセスが完全に防止されるわけではありません。Xドライバーの問題など、何らかの理由で終了した場合でも、攻撃者はコンソールにアクセスできます。

exec startxの代わりにを使用することもできますstartx。これは bash を startx に置き換えます。つまり、誰かが中止できたとしても、Xコンソールにアクセスできなくなります。 、 、 などのディスプレイ マネージャーを使用することもできます。lightdmそのためkdm、ax セッションを開始するために既存のシェル セッションは必要ありません。gdmxdm

答え2

私の には次のエントリがあります.profile:

# startx if on tty1 and tmux on tty2
if [[ -z "$DISPLAY" ]] && [[ $(tty) = /dev/tty1 ]]; then
    exec xinit -- :0 -novtswitch &>/dev/null &
    logout

  elif [[ $(tty) = /dev/tty2 ]]; then
    tmux -f $HOME/.tmux/conf new -s secured
fi

にログインする場合はX、TTY1を使用します。 はlogout、TTY7で が起動した後X、TTY1からログアウトすることを保証します。xオートロックそしてスロック画面ロックツールとして使用します。

が強制終了するとX、空の TTY7 に戻され、再度ログインするには 6 つのアクティブな getty のいずれかに切り替える必要があります。

関連情報