/
カテゴリー

こんにちは! ICTSC6 運営委員の田中京介です。
第6回 ICTトラブルシューティングコンテストの最終日から早1ヶ月となってしまいました。
今回は前回の反省を踏まえ、大会終了後すぐに問題解説を公開するとお伝えしていたにも関わらず、このように日が開いてしまい申し訳ありません。

今回は全15問の問題が公開され、大別するとネットワーク系の問題が7問、サーバー系の問題が8問ありました。これは前回と似た傾向であり、サーバー系の問題の出題が多かったです。

また、出題時間で見てみると、1日目は6問、2日目は9問が出題されました。
特に、2日目の午後は同時に6問が出題されたこともあり、過去のICTSCでも例を見ないような、慌ただしい時間になったのではないでしょうか。

ICTSC6に参加された方には問題を振り返って頂き、そして次回参加される方には今後の糧として頂ければと思い、今回も全問題の解説を公開いたします。

※問題文については、当日に補足、修正が行われた部分があります。しかし、現時点では運営委員もコンテストサイトへアクセス出来ない状況にあるため、後日最新のデータを得られしだい、更新を行う予定です。

それでは、また次回の ICTトラブルシューティングコンテストでお会いしましょう!

(2016/9/24 追記: 問題5 および 問題15 の解説が誤っていたため訂正いたしました。皆様の混乱を招いてしまい、申し訳ありませんでした。)

問題1 「ルーターの設定がわかりません」

出題時間: 1日目午前, 問題技術: VPN, 満点: 30点

問題文

あなたは、とある会社のネットワークを管理を担当している。今回、本社と支社をVPNで接続することになった。その際出来る限り費用を抑えるため、支店側は仮想ルーターを使用することになった。

「VPNのパラメーターってシスコのデフォルトだよね」
「そうだね」

2人で作業を行っていたのだが、もう一人が「ルーターの設定は終わったよ」と言って別の仕事に出かけてしまった。しかし、VPNが張れていないようなので、設定を確認しようとしたところ画面に何も表示されない。

現在の状況は以下の通りである。

  • ルーターにコンソール接続しても何も表示されない
  • IPSecSAがアクティブになっていない

標準設定でコンソールを接続すれば、通信ができるようにして欲しい。
なぜVPN接続できないのか原因を確認し、VPN接続できるようにして欲しい。
これらのトラブルの原因を詳しく説明して欲しい。

トポロジ図

問題01 トポロジ図

採点基準

  • DHのグループを合わせている
  • ボーレートを9600(デフォルト値)と異なっていたことに言及している
  • Ciscoルータ Show crypto isakmp sa で相手が見えている
  • vyOS show vpn ipsec sa で相手が見えている
  • インターフェースに暗号マップを適用していないことに気づいている
  • アクセスリストが不適切であったことに気づいている

解説

  • まず、ターミナルにうまく表示されない問題ですが、これはルーターのボーレートとターミナルのボーレートの不一致によって発生します。
  • ボーレートとは、信号の伝送速度のことであり、これが一致していない場合正しく通信が行われず、画面に何も表示されなかったり、文字化けが発生したりします。
  • IPSecSAがアクティブになっていない問題は、3つの理由でトラブルが発生しています。DHグループの不一致、暗号マップをインターフェースに適用していない、VPN対象となるパケットのアクセスリストがワイルドカードマスクで指定しなければならないところをサブネットマスクで指定しているの3つです。
  • DHグループによって、鍵交換のためのアルゴリズムで使われる鍵の生成情報が異なるので、一致している必要があります。
  • 暗号化マップとは、トランスフォームセット、暗号化対象のACL、IPsecピアのアドレスを定義したものです。これを、インターフェースに適用する必要があります。
  • 暗号化対象のACLの設定が不適切なため、正しく対象パケットを指定出来ていないので、VPNがうまく張れません。これらの設定を正しく設定しなおすことによりトラブルは解決します。

問題2 「繋がらなくなりました」

出題時間: 1日目午前, 問題技術: VLAN ID, 満点: 10点

問題文

あなたはとあるビルのネットワーク管理を任されている。

ある日そのビルの点検で停電が発生した。点検後、ある部署でインターネットに繋がらなくなったという連絡を受けた。

  • 部署アドレス(10.100+x.5.0/24)【xはチーム番号】

部署アドレスで正しく繋がるようにして欲しい。

その後、設定を変更した箇所とその理由を詳しく説明して欲しい。

トポロジ図

問題02 トポロジ図

採点基準

  • 部署アドレスで通信ができる
  • トラブルの原因を詳しく説明できている
  • スイッチのインターフェースに正しいVLANを適用している
  • ルーターのサブインターフェースに正しいアドレスとカプセル化タイプを指定している

解説

  • この問題のトラブル発生原因は大きく分けて2つあります。
  • 1つ目が、スイッチのインターフェースにVLANが適用されていないという点。2つ目が、ルーターのサブインターフェースの設定がされていない点です。
    • スイッチにVLANを定義したとしても、スイッチのインターフェースにVLANが適用されていないと、VLANは利用できません。
    • ルーターのサブインターフェースにトランクポートで送られてくるパケットの情報を書かないと、それぞれのVLANとうまく通信出来ません。
  • VLANはネットワークを考える上で必須技術となっていると思います。そのVLAN関連のトラブルシューティングを体験して頂きたいと考え問題出題をしました。
  • また、今回の停電後にトラブルが発生したというのは、設定を行ったあと設定を保存していなかったために設定が消えてしまい、発生したトラブルという想定で出題しました。設定を変更したら、その設定を保存する大切さも考えて頂きたいという思いからこのような設定にしました。

問題3 「移行したアプリケーションが動かない!」

出題時間: 1日目, 問題技術: MySQL sql_mode, 満点: 40点

問題文

担当者のAさんは,あるアプリケーションが動いているサーバをリプレースする作業を命じられました.

そこで,新しいサーバをセットアップしました.その際,以前使用していたディストリビューションのバージョンが古くなっていたため,新しいサーバでは,最新バージョンのディストリビューションを採用することにしました.

ところが,新しいサーバでアプリケーションを動かしてみたところ,エラーが発生して動作しません.

Aさんに代わって,原因の調査と復旧手段を報告して下さい.

トポロジ図

問題03 トポロジ図

採点基準

  • Webサービスがきちんと動いているかどうか
  • なぜWebサービスがきちんと動かなかったら,きちんと原因の特定ができているか.
    • (特に,あるクエリが昔のバージョンで動作し,今のバージョンで動作しない理由についてきちんと言及できているか.)

解説

MySQL5.7.8 からは デフォルトの sql_mode が

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
      ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
    

になっている

  • これにより,select a, count(*) from hoge; のような group by なしの クエリが落ちてしまう.
  • ONLY_FULL_GROUP_BYを外せばOK

問題4 「アップローダが動きません!」

出題時間: 2日目午前, 問題技術: inode, 満点: 30点

問題文

とある喫茶店では、「らびっとほーす」というサービスをWebにて提供している。

このサービスはログイン不要で自由にファイルをアップロード/ダウンロードできるサービスです。

このサービスは今まで順調に稼働していたが、ある日を境に突然アップロードができなくなってしまった。

まだ調査が進んでおらず、原因が分かっていないので。原因究明を行ってほしい。また、可能であれば対処を行ってほしい。

ただ、このサービスはある程度のユーザーがおり、アップロードができない状態でもダウンロードを行うユーザーはいるため、できる限り復旧時にダウンタイムを設定しないこと。

また、喫茶店の一人娘の自称姉がよくわからないままに立てたサービスであるため、サーバーのログイン情報以外のことは分かっていません。

このサービスは人気であるため、ダウンタイムが発生すると減点される可能があります。

トポロジ図

問題04 トポロジ図

採点基準

  • inode 不足に気が付く
  • ディスクを新規に作成して問題を解決し、アップロードを可能にする (満点)
  • 減点: ダウンタイムの長さに応じて / ファイルが消えている場合など

解説

  • アップローダプログラムのログや、 touch 等でファイルシステムに新規にファイルを作成できないことから inode 不足を推測してほしい
  • 近年のWebアプリケーションでは非常に高い可用性が求められている。今回の問題についても、既にアップロードができないという機能不全が生じているが、それでもダウンロードの要求は多くあったため、その要求を止めないことがまずサービスの継続のためには必要であると認識してほしい。
    • その上で、ダウンタイムを減らして復旧を行うための方法を考えて実行してほしい
  • 今回は、3秒間隔で GET / のステータスコードが 200 OK となるかのみを見る SLAチェッカが動作していました。
    • 時間があればアップロードやダウンロードなどを行うSLAを用意したかったのですが間に合わず……
  • また、ディスクには意図的に空き領域を設けてあり、新規のパーティションを作成することができるようになっていました。
    • これ用いてパーティションを作り、手動マイグレーションを実行することが今回の意図した解答でした。

問題5 「引継ぎ失敗しました」

出題時間: 1日目午後, 問題技術: Aux, 満点: 30点

問題文

先日、弊社で長年ネットワーク機器の設定を行っていたインフラエンジニアがやめてしまった。
今回あなたには彼を引き継いでネットワーク機器の設定を行ってほしい。
変更する機器はルータAで、最終的にルータBと疎通が取れるようにしてほしい。
ただ、作業に伴い以下の事を注意してほしい。

——注意事項——

  • 引き継ぎ内容に漏れがあったためルータAの設定内容や一部認証情報は分からない。
  • ネットワークを止めるわけにはいかないので電源は落とさないように。

——ここまで——

作業が終わったら確認のため、ルータAのコンフィグと作業内容を全て報告するように。
尚、足りない情報はルータBの設定から得るか、自ら探して欲しい。

ルータA “イネーブル” パスワード:*******
ルータB “イネーブル” パスワード:*******

トポロジ図

problem-05

 

想定解

  • コンソールポートからルータAに未知のユーザ名とパスワードがかかっている事を知る
    (telnetはdisableにしておく)
  • 電源を落としてはいけないのでAUXポートからコンソール接続する
  • show runから、未知のユーザ名が ictsc6 だと気付く
  • 以下のコマンドを用い、任意のユーザ名とパスワードに変更する
    • no username ictsc6 password
    • username 任意 password 任意

<ここから 順不同>

  • show ip int等のコマンド、もしくはping等からシリアルインタフェースが admin shut 状態にあることに気付く
  • シリアルインタフェースをno shutdownする
    • (shutしてる理由は、本来変更対象ではないルータBを操作し、直ってしまうケースを回避するため)
    • (ACLがあるのでルータBからの変更だけでは繋がらないが、念のため)
  • ルータA側のACLで、ルータBからの応答が暗黙のDenyになってることに気付く
  • 暗黙のDenyにならないよう以下の変更を加える
    • 今ある設定を消すのはよろしくないので、ACLを消した場合は減点
      (元通り再設計した場合は不問)
    • access-list 100 permit icmp ルータB ipaddress 0.0.0.0 ルータA ipaddress 0.0.0.0 echo-reply

シリアルインタフェースのカプセル化がルータAとルータBで違うことに気付く

  • ルータAの設定を以下のように変更し、ルータBのカプセル化に合わせる
    • あくまでも変更するのはルータAなので、ルータBを変更した場合は減点
    • int s0/0/0
    • encapsulation ppp

<ここまで 順不同>

  • 以上の設定を終え、ルータAからルータBへ疎通が取れることを確認する
  • ルータAのコンフィグと全ての作業内容を報告し、終了

採点基準

  • AUXポートから入った事とユーザー+パスワードを変更するコマンドの記述があれば加点 (+?点)
  • ACLによって暗黙のDenyになっていた事と適切なACLコマンドの記述があれば加点 (+?点)
  • シリアルインタフェースのカプセル化が異なっていた事とカプセル化を変更するコマンドの記述があれば加点 (+?点)
  • シリアルインタフェースがadmin shut状態にあった事とその状態から回復させるコマンドの記述があれば加点 (+?点)
    • 気付きだけでコマンドの記述が無い場合、減点 (-?点 x 該当数)
    • 暗黙のDenyを回避する方法がACLの全削除だった場合減点 (-?点)
    • カプセル化変更をルータBに行った場合減点 (-?点)
    • 公平を期す為、電源を落としリカバリした場合、得点なし もしくは 獲得した得点の半分を減点する
      • 再起動はpingによる監視およびwrしてないホスト名によって判断する。
        (pingによる監視にしたのはサービスへの到達性が重要になると考えたため)

解説

今回の問題では、ルータBと疎通を取るためにルータAのインタフェースに変更を加える作業が大部分となっています。
内容として、設定の違いまたはミスによって通信ができないトラブルを再現しました。
そして、今回のように複数個所にトラブルがある場合、running-configやshowコマンドから異常個所を特定する力も必要になってくる為、あえて問題点を複数箇所用意しました。

しかし問題の主旨は別にあり、電源を切らずルータAに掛かっているパスワードを突破する事が重要な要素となっています。
問題文にもあるように、電源を落とすわけにはいかない事からROMモニタからのパスワードリカバリを行うことは出来ません。
また、今回の場合一部認証情報が欠落しており、sshからの接続も出来ません。
それを打開策の一つとして、AUXポートからコンソールケーブルを挿し、パスワードリカバリする方法がある為
今回の問題ではその方法を用いて突破できる形にしました。

実作業でも「電源を落とさない」「疎通性は確保したまま」で変更しなければいけない場面はとても多いはずです。
この問題を通して、その考え方を理解していただければと思います。

問題6 「VMがネットワークにつながらない!」

出題時間: 1日目午後, 問題技術: MACアドレス衝突, 満点: 40点

問題文

ある日、VMに対して操作を行ったら2台のVMがネットワークに対しておかしな挙動をするようになりました。

担当者のAさんは調査を行いましたが何が何だかでお手上げです。

引きこもってしまったAさんに代わって情報を集めるところから始めて、原因を報告してください。

トポロジ図

問題06 トポロジ図

採点基準

  • MACアドレスの重複に気づくこと (満点)

解説

問題7 「自動マウントをしてくれない!」

出題時間: 1日目午後, 問題技術: pam_mount, 満点: 30点

問題文

ある日、普段windowsの各ユーザーに対して割り当てているsamba共有フォルダをubuntuで同様に割り当てることになりました。

各ユーザーの~/privateというディレクトリに\\file.example.local\private\%username%という共有ファイルをマウントします。

上司から頼まれたAさんはpam_mountというパッケージを導入し、実現しようとしました。

ところが作業ユーザーでは~/privateに期待通りのフォルダをマウントできていますが、書き込みができません。

失踪したAさんから仕事を引き継ぎ、正しく動作するように設定してください。

要件は以下の通りです。

  • 可能な限りpam_mountを使うこと
  • 共有フォルダに対して読み書きの操作ができること
  • 新規ユーザーで滞りなくマウントを完了し、読み書きの操作ができること

トポロジ図

問題07 トポロジ図

採点基準

  • 作業ユーザーからマウントした共有フォルダへ読み書きができること(6点)
  • 新規ユーザーの~/privateから共有フォルダへマウントできていること
    • 書き込みが出来ること(12点)
    • 読み込みができること(12点)

解説

  • Sambaのroフラグ
    • 接続した共有ディレクトリが読み込み専用になる
  • chattr +i
    • inodeの編集禁止フラグを設定する
    • skelに用意することで新規ユーザーのマウント先がファイルになり、マウントできず、削除できず…という状況を作ることができる

2日目

問題8 「社内ネットワークを設定して!」

出題時間: 2日目午前, 問題技術: IPv6 / v4, 満点: 40点

問題文

昨日社内ネットワークのトラブルを解決するように頼まれたあなたは、上司に呼び出されこのようなことを言われました。
「社内ネットワークをIPv6アドレスに変更しようという案があってね。その一環として社内ネットワークの一部をIPv6ネットワークに変更するんだけど、そのIPv6ネットワークからIPv4ネットワークに通信できるようにルータ(参加者に設定してもらうルータ)の設定お願い。」
「とりあえず通信できればいいけど、できればルータを再設定しないでもいい設定をしてくれると嬉しいな。」
「そうそう、僕の方で調べてたらNAT64というのがあったと思うよ。」
「昨日起こったトラブルを解決してくれたなら、外に繋がるようになってるはずだから。」
あなたは上司に言われたようにルータの設定を行い、設定したルータのコンフィグを提出してください。

トポロジ図

問題08 トポロジ図

採点基準

  • IPv6ネットワークからIPv4ネットワークに通信ができる(NAT-PTの設定ができている)
  • NAT-PTがダイナミックの設定になっている
  • NAT-PTがNAPTの設定になっている

解説

  • IPv6ネットワークからIPv4ネットワークには規格が異なるため、基本的には通信できません。そこで、様々なIPv6ネットワークとIPv4ネットワークの共存技術を知ってもらう目的で出題しました。
  • 共存技術にはNAT-PT, NAT64, v4v6トンネリングなどいろいろありますが今回の場合ルータの機能の制約の関係でNAT-PT以外の設定はできません。
  • IPv6を用いた出題は初めてなため、参加者のIPv6の知識を調べる目的も兼ねて出題しました。

問題9 「レプリケーションが出来ない!」

出題時間: 2日目午前, 問題技術: MySQL replication, 満点: 20点

問題文

とある企業にてWebサイトの構築を行う業務があった。Aさんはデータベース周りの設定を担当していたが、初めてのレプリケーション設定と慣れないMYSQLの為悪戦苦闘していた。

納期が迫る中、Aさんは私事でどうしても本国に帰らないと行けなくなってしまった。試行錯誤が垣間見えるconfigを元にレプリケーションの設定を完了して欲しい。

トポロジ図

問題09 トポロジ図

採点基準

  • レプリケーションが行えてる
    • 予めサンプルDBを準備しておいて、マスターでの変更がレプリケーション側で反映されていることが確認できる.

解説

  • mysqlのレプリケーションが上手く動作しない問題
    • /etc/my.cnfの設定ミス
      • server-id等
    • mysql slave側の設定ミス
      • master_log_file
      • master_log_pos等

問題10 「IPアドレスが振られない!」

出題時間: 2日目午後, 問題技術: DHCP, 満点: 40点

問題文

某C社では,CloudStackを用いたインフラ業務を行っている.ある日,Debian 8とUbuntu 16のインスタンスを建てた時にDebian 8にだけIPv4アドレスが割り振られないトラブルが発生した.

インスタンスのオーケストレーションの為にも,DHCPを用いたIPv4アドレス等の自動設定は必要不可欠であり,大量のインスタンスに対して,手動でIPv4アドレス設定することは難しい.

C社は,このトラブルをあなたに解決してもらい,インスタンス起動時にDHCPによるIPv4アドレスリリースが正常に動作させるようにしたいと考えている.

ただし,DHCPサーバやCloudStackホストマシンに対して調査・変更を加えることはできない.

原因を特定し,この問題を解決してほしい.

トポロジ図

問題10 トポロジ図

採点基準

  1. UDP Checksumが壊れている事を指摘しているか … 25%
  2. Ubuntu 16ではUDP Checksumが壊れているのにDHCPを正常に処理していることを指摘しているか … 25%
  3. 実際に何らかの方法でDebian 8にDHCPを処理されられたか … 50%

解説

KVM + linux-bridge 環境では,DHCPパケットのUDPのChecksumが破損する状況が発生する.
これを解決する為に,それぞれのディストリビューションのdhclientにはパッチが当てられているが,Debianだけは9から適用される.

問題11 「聞きたくても、聞こえない」

出題時間: 2日目 (通し), 問題技術: IP Phone, 満点: 50点

問題文

あなたの会社では、先日待望のIP電話が導入されました。

IP Phone は業務に関係のないことにも使えるようです。

  • 社長(運営)との雑談のため

そんな IP Phone ですが、どうやら先日社内インフラ部がセキュリティ上の理由でスイッチの設定を変更した結果、こちら(参加者)の声が社長に聞こえなくなってしまったようです。

インフラ部は非常に対応が悪く、問題があるといっても一向に聞き入れず、調査を行ってくれません。しかし、何か正当な理由があればスイッチの設定変更には応じてくれるみたいです。

  • もしコアスイッチ等に問題があるのであれば、質問に 設定変更依頼 と題して変更したい内容とポートなどの情報を伝えて下さい。
  • 社員とわいわい雑談できないためか、最近は社長もご機嫌斜めです。早めに解決してください!

トポロジ図

問題11 トポロジ図

採点基準

  • 音声の伝送に必要なポートがxxxxx/UDP であることをパケットキャプチャから読み取り報告する
  • 運営が報告したポートを疎通する設定にした後、運営の番号へ通話を試行し通話ができることを確認する

解説

  • SIPプロトコルに関する出題は初めてであるため、難しいと考えられるが、ミラーポートが与えられているということから、パケットキャプチャを上手く活用し、必要な情報を推測してほしい
  • IP Phone は起動時に、DHCP → TFTPサーバ → SIPサーバ の順でアクセスを行い、自機のセットアップを行います
    • このとき、IP Phone が通話に用いる (音声データを伝送する) ポートはメディアポートと呼ばれ、通話の開始時 (INVITE リクエスト時) に待ち受けポートを SIPサーバへ伝えます。
    • 実際にパケットキャプチャを行うと、そのポートに向かって RTP (Real-time Transport Protcol, UDP) で音声パケットが伝送されていることが分かります。
  • 今回は SIP プロトコルそのものが用いるポートである、 5060/UDP or TCP は塞がれていませんでした。
    • このため、通話のセッション自体は生成されるが、音声データだけが伝送されないという現象が生じます。
  • メディアポートは TFTP サーバにおいてある各端末固有の xml ファイル内の startMediaPort, endMediaPort タグに書かれているレンジからランダムで選択されることになっています。
    • 今回使用した機種 (CP-7960G, CP-7961G) では、xml ファイルのファイル名は SEP0123456789ab.cnf.xml というような形で、SEP{IP Phone のMACアドレス}.xml という形で TFTPサーバのルートに置かれています。
    • IP Phone のネットワークにアクセスすることができる参加者手元の配線は IP Phone へ繋がっている1本しかないため、これを一度引っこ抜き、PC に接続してアクセスする方法が作問者の意図した方法です。
      • 当日は思わぬトラブル(?)があり、会場の AP から SIPサーバや TFTPサーバにアクセスすることもできました。
  • 各チームには事前に生成した xml にて、100ポート分の mediaPort のレンジを指定しており、これを特定して中間経路にある L2SW の acl を変更してもらうことで通話が可能になります。
    • 全てのポートの解放を要求することでも、通話は可能になりますが、セキュリティ上よろしくないという理由で減点しています。
    • また、パケットキャプチャから、特定の1つのポートについての acl 変更申請をされたチームもありました。上記の説明を見るとお分かりかとは思いますが、メディアポートは100ポートの中からランダムで選ばれるため、1ポートだけを開けても正答とはなりません。 (この場合、通話100回に1回の確率で声が通る不思議な電話が完成します)

問題12 「調子が悪いんでしょうか?」

出題時間: 2日目午後, 問題技術: PathMTU, 満点: 30点

「NTT西日本杯」第6回 ICTトラブルシューティングコンテスト 問題解説 “調子が悪いんでしょうか?” | ツチノコブログ にて解説記事が公開されています。

採点基準

  • 報告書にmtuの設定が不適切とあれば加点
  • 報告書にPathMTUDiscoveryまで拒否されていたとあれば加点

問題13 「本社のサーバーに繋がりません」

出題時間: 2日目午後, 問題技術: RIP + OSPF, 満点: 10点

問題文

ある日、会社Aの支社は本社に対して専用回線をつなぐことになりました。

社内ネットワークのルーティングプロトコルに支社は OSPF を使用し、本社は RIPv2 を利用しています。

このネットワークが正しく動作するように設定してほしいと頼まれたあなたは、ルータ(892J)の設定を新入社員のBさんに任せる事にしました。

Bさんから設定が終わったとの報告を受けていたので、無事に必要な設定を終えたとあなたは判断していました。

しかし、その翌日に他の部署(10.100 + team_number.7.0/24 ネットワーク)の社員から本社のWebサーバー繋がらないという連絡が入ったのでBさんが設定したルータ(892J)の設定を修正することになりました。

そこで、修正したルータのrunning-configと他の部署から繋がらなかった原因を報告書にして提出してください。

本社Webサーバ : http://web.ictsc6.pkpk/

トポロジ図

問題13 トポロジ図

採点基準

  • 報告書に再配送時のmetric設定が不適切とあれば加点(+?点)
  • 本社のサーバーにIPaddress/24ネットワークからアクセスできれば加点(+?点)

解説

  • 今回の問題では、参加者側からWebサーバに通信できない状態にありました。
  • その中で注目すべきは、RIPのHOP数制限とtracerouteの結果です。
  • この問題でWebサーバへtracerouteをしてみると、二つ目から*表示という結果になってしまいます。
  • その理由が、以下の再配送設定にあります。router rip
    redistribute ospf 1
    offset-list 0 in 16 インタフェース名
  • ospfで学習した経路をripに再配送する場合、この設定のままだとシードメトリック値が20となってしまいrip側では破棄されてしまいます。
  • また、offset-listでは、ripから得た経路情報のhop数に16加算し学習しています。
  • ripのHOP数制限は15ですので、経路情報が破棄されてしまい通信ができないという状態になっていました。
  • 会社の環境や機材によってはOSPFではなくRIPを使用せざるおえない状況がでます。
  • この問題では、そういったRIPとOSPFを併用している環境において起こり得る正しく経路情報を配送できないトラブルを再現してみました。

問題14 「sshでサーバに接続できない!」

出題時間: 2日目午後, 問題技術: ssh, 満点: 10点

問題文

とある会社のとあるチームではCloudStackを用いて仮想化基盤を運用している

新人研修を行うときは新しく研修用サーバを用意し踏み台サーバから公開鍵認証のみでサーバにアクセスする方式を採用している。

ある日上司が研修用サーバにいたずらをしかけられる。

  • 「研修用のサーバ、sshではいれなくしといたよ!がんばって~:innocent:」と満面の笑みで衝撃的な内容を言い放ち、さっそうと早退していきました。

上司のいたずらをかいくぐり、公開鍵認証でssh接続できるようにしてほしい。

※幸いなことにweb consoleへのアクセス権は上司から貰っている

これまた上司のいたずらかweb consoleのキーボードレイアウトがUSキーボードに設定されているようだ。

トポロジ図

問題14 トポロジ図

採点基準

  1. 実際に踏み台サーバからssh接続できる
  2. 原因となった設定を報告
  3. 修正点などがあればなおよい

解説

  • /etc/ssh/sshd_config のAuthorizedKeyFile のpath指定ミス
  • authorized_keysのnistp521が512になっている
  • chattr +i で/etc/ssh/sshd_configが書き込めない

問題15 「なんかwebページおかしい?」

出題時間: 2日目午後, 問題技術: hsts, 満点: 20点

問題文

先日、社内にて外部向けホームページを作成した。

現在そのホームページを社内検証用Webサーバーにて公開したところ、うまく作成した通りにホームページが表示されない問題が発生した。

社内検証用のWebサーバーへのアクセス権と、 社内クライアント用VMのゲストユーザー操作権を与えるので、webサーバーをsshで操作し、CloudStackのwebコンソールからクライアント用VMを操作して障害の原因を調査し正常にwebページが表示されるように解決してほしい。

ただし、Webサーバーにもともとあるセキュリティ性は落としてはならない。

トポロジ図

9833eab6-4baa-11e6-9536-3a42e806d535

 

 

採点基準

  1. httpの外部参照をhttpsに変更できているか
  2. レイアウトが変更されていないか
  3. HSTS設定を変更していないか

解説

  • HSTSによりhttpsを強制しているため、httpで外部参照しているWEBフォントやjsファイルは信頼されないコンテンツとしてwebブラウザが弾くことが原因。
  • 外部参照をhttpからhttpsに変更することで問題が解決される。
 /
カテゴリー

こんにちは!運営委員の門脇です!

ICTSC6に参加して頂きました皆様、お疲れ様でした!

 

 

さて、準備期間中に運営はラック内配線の整理もやっていました。

今回は「運営委員が何をしていたか」を少しでもご紹介できれば、と思います。

続きを読む

 /
カテゴリー

こんにちは!運営委員の河瀬大伸です!
ICTトラブルシューティングコンテストに参加していただいた皆様、大変お疲れ様でした。
もうコンテストから早1ヶ月以上経ちます。皆様いかがお過ごしでしょうか?

さて、今回ICTトラブルシューティング初めての試みと致しまして、出題された問題全ての解説を行います。

今までのICTトラブルシューティングコンテストはネットワーク問題に偏った出題編成となっておりました。そのネットワークのトラブルはある程度出題範囲が限られてしまい凝った問題を作りづらくパターン化しがちです。

その都合上問題の解説を公開し続けるとネタ切れになるのでは、という恐れから今まで問題解説の公開を行っておりませんでした。

しかし、近頃の出題編成はサーバー問題の比率がとても高まってきており、また、運営委員の人数も増えて、問題のバリエーションが少しずつ広がっている事から、今回運営委員の話し合いにより公開してもよいのではないか、となった次第です。

ICTトラブルシューティングコンテストのトラブルはとても興味深い物が多いです。
記事の最後に問題解説のURLを出題順にまとめていますので、ぜひご覧頂き参加者の皆様の成長の糧になればと思います!
それでは、また次回ICTトラブルシューティングコンテストでお会いしましょう!

続きを読む

 /

こんにちは、電気通信大学 学部3年の中西建登です。
第4回はRedmine問題を出題し、問題解説を一人でやっていたのですが、
今回は運営メンバーのやる気を出すことに成功し、皆様に全ての問題に於いて問題解説を皆様にお届けしています。

今回は(今回も)OSSを用いた問題を出してみました。2日目午後に唯一出た問題として、所謂「ラスボス」という立ち位置で出題させて頂きました。
Rails系のOSS問題という事で、前回の問題文をもじって問題名を「GitLabの意図しない挙動の調査について」としてみました。前回も参加してくださった方にクスッとして頂ければなという狙いでしたが、如何だったでしょうか?(笑)

さて、ではここから問題解説をお届けします。

続きを読む

 /

ICTSC5お疲れ様でした。
電気通信大学の吉村弘基と申します。

今回は僕が問題を作成した「管理画面が見えない」という問題の解説を行っていきます。

問題文

弊社では社内ネットワークを見直すこととなった。
しかし、ネットワークの見直しを行い、変更作業を完了した後に、社内の管理画面にアクセスできなくなった。
管理画面にアクセスしようとするとよくわからないサイトが表示されるようになってしまい困っている。
自分の部署(参加者手元)から管理画面が見えるように設定を修正して欲しい。
また、ネットワークの見直しにあたって追加でslaveのDNSサーバを構築することとなった。
元々DNSサーバを管理していた担当者は「日付を間違えた」とだけ言っていたが何のことなのかよくわからないが何のことか分かれば修正してくれ。
とにかくまずはBINDをインストールし、設定を行って欲しい。
その際、セキュリティに気をつけて、設定を変更を行ってくれ。

原因

・ゾーンが複数あり、BINDのView機能によって参加者の手元からは本来見えるべき管理画面とは違うものが見えている

・iptablesによってUDP 53番が許可されていない

 

解決方法

  1. BINDの設定を書き換え、参加者の手元から正しい管理画面が見えるように設定する

  2. iptablesの設定を変更し、UDP 53番を許可する

  3. slaveのDNSサーバの設定をする

  4. ゾーンファイルのシリアルが3016022701などと1000年分ほど進んだ値になっているので正しい値に修正する

出題意図

将来的に頻繁に触ることになる人も思われる、DNSサーバとして有名なBINDには様々な機能があるので、それを知ってもらおうと思って出題しました

採点時に重要視したポイントは解決方法の1. 2番です。

出題側としては間違った管理画面を安易にどこからも名前解決できないようにするのは避けて欲しかったのですが、それに関しては若干問題文が不足しており、誘導が不十分だったと思っています。

 

最後に

チーム16の大人チームから「BINDは最終手段であり、使うのはあまり推奨されるものではない」とのコメントを頂き、私としても新しく知ったことも多かったです。

もし、次回以降も運営として参加することがあればもうすこしまともな問題を出せればと思っています。

参加者の皆様、ありがとうございました。

 /

みなさんこんにちは. 2日目午前の問題 (サーバーが再起動する!) を作成した市川です.

本問題の背景 (CVE-2015-5600の概要)

OpenSSHでは,LinuxのPAMモジュールを利用することで認証プロセスをアプリケーションから分離して行うことができます.パスワードを用いた認証には大きく分けて2種類の方法があり,

  •  PasswordAuthentication
  •  ChallengeResponseAuthentication

です.

いずれの方法もLinuxに登録されているユーザーの認証情報を用いてログインを行いますが,PasswordAuthenticationが平文でパスワードの照合を行うのに対し,ChallengeResponseAuthenticationはチャンレンジレスポンス認証を用いるため平文パスワードがネットワークを流れることはありません.(もちろんSSLで暗号化されているため平文ではないが,復号するとパスワードがそのまま見える,という意味です.)
以上の理由からChallengeResponseAuthenticationが用いられることはそれほど珍しくなく,また鍵の設置を必要としないため緊急時のログイン手段としてはよく用いられます.

さて,ChallnegeResponseAuthenticationを行うデバイスにはbsdauth, pam, skeyがあり,これらを指定することで認証デバイスを順に試すことができます.今回用いた脆弱性CVE-2015-5600は,このデバイスにpamをカンマ区切りで大量に指定することで,パスワード認証の本来の上限回数を超えて試行出来てしまう,というものです.

問題文

最近サーバー(10.X.10.2)が頻繁に再起動して困っている.
原因調査と問題解決をお願いしたい.
また,報告する際には

  • 何が原因だったのか
  • それに対しどのような対処を行ったか

を明記していただきたい.
また,サーバーに何らかの脆弱性が存在する場合は必ずその箇所を修正すること.

解説

問題が公開されてからしばらくすると,CVE-2015-5600を悪用したブルートフォース攻撃が開始されます.攻撃対象のユーザーubuntuのパスワードは12345に設定されており,10000から順にインクリメントしながら攻撃を行います.ログインに成功したらすぐにsudo rebootを行い,作業妨害を行うことを繰り返します.
なお,Linuxの標準の設定ではPAMモジュールにfaildelay (ログインが失敗した際,強制的に待ち時間を入れるモジュール)が設定されており,これでは競技時間内にブルートフォース攻撃を複数回仕掛けることは困難でした.そのため/etc/pam.d/以下のfaildelayに関する設定を全て解除,無効化し,1秒間に最大で約10回のパスワード入力が試行できるよう細工を施しました.

この問題を解決するためには,

  • ChallengeResponseAuthenticationを無効にする
  • 公開鍵認証方式に変える
  • /etc/pam.dの不適切な設定を修正する

などの対策を講じることで解決できます.(以上3点が揃った解答に対しては満点を与える予定でした.)

講評

ほとんどのチームが

  • 特定の端末 (攻撃サーバー)からのアクセスを制限
  • ubuntuユーザーの設定を変える (パスワード変更,sudo権限剥奪,ユーザー削除)

など,根本的な解決に至っていない解答をしていました.そのため問題文に
また,サーバーに何らかの脆弱性が存在する場合は必ずその箇所を修正すること.
の部分を強調して再度周知したものの,完全な正解に至る解答は見られませんでした.
麻生情報ビジネス専門学校チームが唯一CVE-2015-5600に言及しており,高い得点を与えましたが,PAMの設定不備を指摘したチームは1つもありませんでした.

 /
作成者
麻生情報ビジネス専門学校 何 力平
概要
pingはIPネットワークにおいて、ノードの到達性を確認するための基本的なツールの一つである。pingはICMPの”echo request”パケットを対象ノードに投げ、対象ノードから”echo reply”が返ってくることで到達性を確認する。
Address Resolution Protocol (略称:ARP)は、イーサネット環境で、IPアドレスから対応するMACアドレスを動的に得るためのプロトコル。代理ARP:他のネットワークにARP要求があった場合にルーターがホストに代わって回答する仕組みである。Proxy ARPなどと呼ばれており、NAT環境化において使用される例が多い。
スタティックルーティングとは、ルータなどが、管理者が予め設定した固定的な経路表(ルーティングテーブル)に基づいて経路選択を行なうこと。スタティックルーティングは経路情報の交換がない分通信量を節約でき、外部から不正な経路情報を送信される危険性もない。
本問題では経路を選択する方法を聞きます。
問題文
選手達はROUTER2とROUTER3を管理しています。
10.0.0.1がら20.0.0.1にPING(echo request)すると、パケットはROUTER2を経由し、20.0.0.1に到着します。
逆に、20.0.0.1から返信(echo reply)すると、ROUTER3を経由し、10.0.0.1に到着します。
ROUTER0とROUTER1の設定を参照しながら、ROUTER2とROUTER3を設定してください。
ルーティングテーブルを変更しないでください。
rikihei-topo
解決方法
R2
 interface GigabitEthernet0/1
no ip proxy-arp
R3
interface GigabitEthernet0/0
no ip proxy-arp
講評
key words in 892J:
ip route 0.0.0.0 0.0.0.0 GigabitEthernet0
mac-address-table aging-time 16
本問は見た目がルーティングテーブルを変更せずに特定の通信経路を選び、とても難しい問題です。実はL2、L3の技術とOSI7層の動きを組み合わせ考えると、簡単な問題です。
問題の考え方法は通信経路を選ぶ機器がルーターだけではなく、892jのスイチ機能を気づき、ルーターの適当のポートに「no ip proxy-arp」を使います。
ネットワーク技術者としていつも新しい技術を勉強することは大事だけど、学んだ知識、特に基本知識の活用が大切だと思います。そして、勉強するときにコマンドを暗記ではなく、「なぜ」、「どのように使う」、「他の似ている技術との差」を理解することが必要です。
残念ですが、今回、満点の解答を行ったのはありませんでした。次回は似る問題を出るかもしれませんが、選手たちの答えを期待しています。
 /

はじめまして。本問題の雑用係をしています工学院大学の福田夏樹と申します。

問題解説のブログを書いて欲しいというリーダからのお願いを受けて、締め切りギリギリになって本記事を書き始めました。

拙文ではありますが、問題解説をさせていただきます。

問題概要 : Webページが見られない

問題文

本日、我が’boku-tech company’のカスタマーサービスセンターから、
「Webページに接続できない。接続できても重い」
という苦情が寄せられていることが判明した。
また、数日前に新しいサーバが納品され、社内のネットワークのどこかに接続されたようだ。
しかし、その作業は外部の業者が行っており、ネットワークや納入されたサーバの状況を社内で知っている人はいない。

今回に限り、優秀な技術者と聞く君たちに該当のサーバ類の一部の操作権を付与する。
現状を調査した上でその解決をし、その原因と解決方法を報告してほしい。
なお、サーバ上では各種サービスが動いているらしいが、それらや他のサーバを完全停止することはできない。

我が社が作業を外注した時の資料を入手することができた。
その資料には下記の制約が書かれていた。
この制約を満たすように設定・定義してもらいたい。この制約に反しないかぎり、他の設定を変更しても構わない。

  • webサーバーのリソースをsnmpプロトコルを用いてサービスサーバにログが残させる事
  • Service Server に対して、ドメイン “service.rabbit” のAレコードが引けること
  • webサーバに含まれるコンテツの再生が出来る事

君たちが操作できるサーバは下記のとおりである

Service Server

  • IP : 10.X.8.66
  • User: admin
  • Password : チームごとに与えられているもの

Web Server

  • IP: 10.X.8.2
  • User: admin
  • Password : チームごとに与えられているもの

Router
– IP : 10.X.8.192
– User: vyos
– Password : チームごとに与えられているもの

トラブルの原因

まずは、トラブルを起こしていたトポロジ図は下記のようになります。

トポロジ図

今回の問題でトラブルとして使用したものは次のものです

  • SNMP のリクエストによるCPU枯渇
  • Ping パケットの大量送信による帯域枯渇
  • SYN Flood によるセッション数枯渇

その他、仕込んでいたトラブルも有りましたが、そのあたりは ICTSC5の1日目にあったLTの資料をご参考にください。

解決方法

上記のトラブルの原因を一つ一つ解決していけば解決できます。

代表的な解決方法を上げると、以下のようになります。

SNMP

SNMPのコミュニティ名をデフォルトである public から任意のものに変更する。

今回の問題では、/etc/snmp/snmpd.conf に記述されている public という文字列を任意のものに書き換えることができれば解決になります。

Ping

VyOS にて、ICMPのフィルタリングをする。

フィルタリングの方法は複数あるので、コマンドは省略しますが、検索をかけるといくつか出てきます。

SYN

サーバOSのSynCookieを有効化する。

今回の問題の場合は、次のコマンドを入力すると解決になります。

 

sysctl -w net.ipv4.tcp_syncookie=1

 

などあります。

その他の解説などは、本問題担当であった法政大学の伊東氏がLT資料ブログを書いているので、ご参考にしてください。

出題意図

近年世界的に起きているDoS攻撃の基本的な対策方法を日本の若きエンジニア達に知ってほしいため、
また、前回大会において出題されたセキュリティ攻撃に関する問題においての解答率が出題者の想定よりも低かったため、本大会では攻撃の種類を変えて、再度出題しました。

採点基準

問題文に記述されている

  • webサーバーのリソースをsnmpプロトコルを用いてサービスサーバにログが残させる事
  • Service Server に対して、ドメイン “service.rabbit” のAレコードが引けること
  • webサーバに含まれるコンテツの再生が出来る事

を満たす様な設定ができているかを判断しています。

簡単に言うと、原因となっている攻撃がフィルタリング等できていれば得点が入る様にしました。

最後に

問題を解いたみなさんは、解けた時はとても嬉しいと思いますが、
実は出題者側も、みなさんが解いてくれた時は嬉しかったりします。

本問題は一般的にはDDoS攻撃という部類になり、その攻撃手法は今回のもののみではなく多岐に渡ります。
更に、その対処も難しいものとなっています。

セキュリティ的な脆弱性も、ヒューマンエラーによるものでも、ソフトウェアにある潜在的なものでも、トラブルの元となるということも知っていただければ幸いです。

では、又の機会にお会いしましょう。

 /

こんにちは。電気通信大学 学部1年の田中 京介こと kyontan です。

「cloudpack杯 第5回ICTトラブルシューティングコンテスト」では、FreeBSD を用いた問題を出題しました。
改めてその魅力を知っていただくと共に、出題した問題について、問題の概要や解説などをしていこうと思います。

概要

今回出題した問題は、FreeBSD と、その機能である Jail という仮想環境を用いた仮想ネットワークの構築を行うものでした。

出題意図として、皆さんが日頃から使っているであろう Linux とは異なった環境で新鮮な気持ちになって取り組んで頂けたらという気持ちがありました。また、最近 LXC, Docker を始めとしたコンテナ技術も流行っていますのでその先駆けとなった Jail の復権を……

続きを読む

作成者
麻生情報ビジネス専門学校 何 力平
概要
 RFC 3986では 予約文字(Reserved Character)と非予約文字(Unreserved Character)が定められています。
予約文字:区切り文字などの特定目的で用いるために予約されている文字であり、その目的以外ではURLに使用できません。
ファイル名には次の文字は使えません
: / ?  * < > | \
URLには次の文字は使えません(予約文字)
: / ? * # [ ] @ ! $ & ‘ ( ) + , ; =
パーセントエンコーディング(英: percent-encoding)とは URLにおいて使用できない文字を使う際に行われるエンコード(一種のエスケープ)の名称である。RFC3986のSection 2.1で定義されている。
一般にURLエンコードとも称される。
本問題ではURLにおいて使用できない文字を使い、ダウンロードできないようになっている。
問題文
あなたはABC社のCEです。
お客様から「会社新製品のマニュアルをダウンロードできない」というようなクレームが出ました。
  URL  http://192.168.1.1/product/question#20160227.txt
原因を分析し、その原因を説明する簡単な文章を提出してください。
ダウンロードしたマニュアルも併せて提出してください。
お客様の作業環境:
     Windows7/10+Firefox/Chrome/Iexplorer10/Iexplorer11
解決方法
解決方法は#をパーセントエンコーディングを使い、%23に替えることです。
http://192.168.1.1/product/question%2320160227.txt
講評
本問はネットワーク問題かサーバー問題か分類しにくいだけど、現実でよく出るトラブルです。
RFC 3986では予約文字と非予約文字が定められています。予約文字-区切り文字など特定目的で用いるために予約されている文字で その目的以外ではURLに使用できません。
それでWeb ブラウザが#や!や@などの予約文字があるURLを解読するときに認識ミスを起こしました。
解決方法は#をパーセントエンコーディングを使い、%23に替えることです。パーセントエンコーディングとは URLにおいて使用できない文字を使う際に行われるエンコードの名称です。一般にURLエンコードとも称されます。このような知識は教科書にも載っていないから、選手たちの知識の広さと深さが要求されます。

最近のコメント