SSH接続がSELinuxの設定ミスによって遮断されていた

SSHが強制切断されるという連絡

私の手伝っているプロジェクトで、SSHが強制切断されるという報告がありました。

上記のような感じで強制終了されてしまう。どのユーザーでも発生しているようです。

SSHデバッグモードで実行

とりあえずデバッグモードでクライアント側のログを調べて見ました。

シェルがリクエストしているのに、チャンネル0がそれをうまく処理できず、emptyが返ってきてエラーになるようです。これらのエラー、けっこうググってみて、ユーザーを変えたり、シェルを変えたり、言語設定を変えたり、鍵を変えたり、色々試したのですが、解決しませんでした。

データセンターへ直行

データセンターへ行って該当サーバーの状態を調べてきました。コンソールからのログインも受け付けなくなっていて、ログインしようとすると、すぐログアウトされてしまいました。SSH設定が原因では無さそう。ログインが出来なかったので、やむを得ず再起動させたら、今度はカーネルパニックで起動途中で終了しました。

CentOSのインストールDVDでRescue modeを立ち上げ、HDDをマウントして、カーネルパラメータ系の設定の調査を開始しました。

原因はSELinuxの設定ミス

原因はSELinuxの設定ミスでした。このサーバーを設定された方が、/etc/sysconfig/selinux に、以下のように記述されているのを発見しました。

この指定は間違いです。正しくSELinuxを無効にするには下記の記述になります。

こちらに書き直して、OSの正常起動とSSH疎通を確認、担当者に連絡しました。しかしSElinuxの設定をちょっと間違えるだけで、SSHもコンソールからのログインも不可能になるなんて、カーネルパラメーターって注意が必要ですね。ちなみに、/var/log/secure には、ログイン失敗時、以下のようなログが出力されていました。

SELinuxの記述間違いに関しては、sshd_config並の注意が必要かもしれません。

関連記事

この記事をシェアする