/
カテゴリー

解説

問題内容

  • 背景
    • 最近、某社では大規模なネットワーク構成の変更が行われ、有識者から十分な情報共有がなされないまま、これまでとは異なる担当者によるネットワーク設定がされた。数日後、複数の利用者から「昔はコンテンツが見れていたのに!」とクレームが入った。
      • PC_A利用者「https://icttoracon.net/trial/testにつながらないぞ!」
      • PC_B利用者「https://icttoracon.net/trial/testにつながらないぞ!」
      • PC_C利用者「https://icttoracon.net/test/trialにつながらないぞ!」

      担当者へのヒアリング結果を見ながら、それぞれの利用者がつながらない原因として最も考えられるものを下記から選べ。
      なお、名前解決は正しく行われており、かつ、コンテンツはすべてbackendサーバに配置されているものとする。

  • ネットワーク構成図

  • 担当者ヒアリング

    • 担当者A曰く「nginxのiptablesはこう設定したよ」
        iptables –A INPUT –s 192.168.1.0/255.255.255.0 –p tcp ––dport 443 –j ACCEPT
        iptables –A INPUT –s 192.168.2.0/255.255.255.0 –p tcp ––dport 80 –j ACCEPT
        iptables –A INPUT –s 192.168.3.0/255.255.255.0 –p tcp ––dport 443 –j ACCEPT
        iptables –A INPUT –j DROP
    
    • 担当者B曰く「nginxのconfファイルはこう設定したよ」
    (一部抜粋)
           location ~/trial/.* {
             allow  192.168.2.0/24;
             deny all;
             proxy_pass https://10.0.0.1;
           }
    
           location ~/test/.* {
             allow 192.168.3.0/24;
           }
    

解答選択

  1. iptablesの設定でアクセス拒否されている
  2. nginxの設定でアクセス拒否されている
  3. nginxのproxy設定が間違っている
  4. 上記のいずれでもない

解答・解説

それぞれの利用者からのリクエストパケットがnginxにて処理される順序として、まずはiptablesでfilterが参照され、許可されたものがnginxのconfによって処理を判断されます。proxyの処理についても注意して見る必要があります。
上記に沿ってそれぞれの問題を見ていくと、

  • PC_A利用者: 2.が正解。nginxのlocation設定では、PC_Bセグメントのみ許可されている
  • PC_B利用者: 1.が正解。PC_Bのセグメントは80番portのみ許可されている
  • PC_C利用者: 3.が正解。iptablesで許可され、nginxのconfファイルでセグメントも許可されるが、location /testに”proxy_pass https://10.0.0.1″の記載が抜けている。(パスがhttps://icttoracon.net/test/trialになっていることに注意)

講評

本設問は、ほとんどのチームがチャレンジしてくれました。
どちらかといえば解きやすい問題で、全問正解するチームも多かったです。
設問のようなトラブルは極端な例ですが、現実世界でも「コンテンツが見れない」などの不具合では、(filter設定に限らず)複数箇所で複合的な問題が発生しているケースが多々あります。
経路設定は正常か、pingは通るか、src IP/dst portを変えるとどうか、など、ネットワークで起きていることを想像しながらトラブルシュートすることが重要です。