ICTSC2024 本戦 問題解説: [ESZ] ちょうんなトラブル

問題文

概要

先日、社内サーバーに公開鍵認証を設定したところ、
「社内PCからサーバーへSSH接続ができなくなったので対応してほしい」とお客様から連絡がありました。
複数の社員から同様の報告があり、状況を確認したところ、サーバーに対して ping すら通らない状態 になっています。
しかし、別のネットワークからはサーバーへアクセスできることが確認されており、サーバー自体は正常に稼働しているようです。
障害は現在も継続中であり、早急なトラブルシューティングと再発防止策の策定が求められています。

前提条件

  • viやnanoなどのエディタを用いるようなコンフィグを直接触る操作を行わないこと。
    (コンフィグをPCにダウンロードしてから編集し、置き換えることも禁止とする。)
  • 既存のサービスを止める、あるいは新規に起動することを禁止する。
  • 設定の変更が必要な場合は、適切なコマンドを使用して対応すること。
  • 報告書は原因となる要素をすべて含め、本トラブルが成立する過程を記述すること。
    (終了状態を達成していたとしても、使用したコマンドを列挙し、ゴールを達成しましただけでは20%の減点とする。)

初期状態

接続ができない

終了状態

クライアントPCからssh [email protected]でSSH接続が可能である

ネットワーク図


解説

本問題はfail2banが設定されているサーバに対して、公開鍵認証を新たに設定した際に誤って所有者をroot:rootにしてしまったことで発生します。
公開鍵認証に権限不足で失敗することに気づかずに複数回アクセスが試行され続けたことで、fail2banによりすべての通信がDropされるようになります。
一見、ネットワーク周りのトラブルかと思いきや、実はfail2banでしたみたいな状況を想定しています。

  • authorized_keysの所有者もとい、/home/target/.ssh以下の所有者がroot:rootとなっていることが根本の原因である。

    • sudo chown -R target:sudo /home/target/.sshを実行し、所有者を適切なtarget:sudoに設定する。
  • その状態でクライアントPCからのログインを試行し続けたことで、fail2banのブラックリストに追加(ban)されてしまっている。

    • sudo fail2ban-client set sshd unbanip 192.168.100.2を実行し、クライアントIPアドレスのbanを解除する。

ありがちな設定を組み合わせて作問してみました。
このようなトラブルは私自身が意外とハマりがちなので、トラブルシューティングの際にはfail2banをはじめとするセキュリティ対策が裏目に出ている可能性にも注意をむけられるようになりたいですね。
ちなみに、タイトルの「ちょうんなトラブル」とはちょうんchownを意味しており、所有者の設定ミスでトラブルが発生することを示しています。気がつきましたかね?

採点基準

  • 採点基準

    • クライアントPCからssh [email protected]でSSH接続が可能であること。(80%)
      • 公開鍵の適切な設定
      • ban状態の解除
    • 提出された回答にfail2banに関する記述が含まれていること。(20%)
  • 得点配分

    • SSH接続の確認が取れた場合:80%
    • fail2ban に触れた適切な記述がある場合:20%

講評

150点の問題でしたが正答数が多かったので、100点の問題でも良かったかなと感じます。
個人的には、公開鍵認証に失敗した後にfail2banが働くという流れを意識した解答をいただけると、非常に綺麗で嬉しいと感じました。
本問題では公開鍵を設定しただけでネットワークが繋がらなくなる可能性を意識していました。
このようなトラブルは一度ハマると抜け出すのが難しくなるので、気をつけたいですね。
(某クラウドサービスで、なぜログインできないのかというトラブルシュートを経験しました。)