ICTSC2025 本戦 問題解説: [1847] Access Denied

問題文

概要

あなたは、ある企業の情報システム部に所属するネットワーク担当者である。

社内ネットワークでは、各ネットワーク機器の管理トラフィックを集約するため、ALAXALA AX2430S を管理ネットワーク専用スイッチ(以下、mgmt スイッチ)として利用している。

最近、管理ネットワークのセキュリティ向上を目的として、上司により管理アクセスに関する設定の見直しが行われ、いくつかの設定変更が実施された。

しかし、その設定変更後、管理端末から AX2430S に SSH 接続ができない状態になっていることが判明した。

現在確認できている状況は以下のとおりである。

  • 管理端末から AX2430S への SSH 接続ができない

  • AX2430S 自体は稼働しており、他の管理通信には影響が出ていない

  • 直前に管理ネットワークのセキュリティ強化を目的とした設定変更が行われている

前提条件

  • 本トラブルは AX2430S 単体で発生している問題とする。
  • 管理端末は 192.168.0.0/16 のネットワーク内に存在しており、手元の端末から SSH 接続できれば、管理端末からも SSH 接続可能であるものとみなす。
  • AX2430S の接続先アドレスは 192.168.1.2 である。
  • 作成する報告書には、以下の内容を必ず明確に記載すること。
    • 解決に至るまでの作業手順および過程
      • どのような手順で調査・作業を実施したのかを、具体的かつ詳細に記載すること
    • トラブルの原因
    • 変更したコンフィグの内容
    • 実際に実施した物理作業の内容の詳細
  • 本環境では互換性の観点から、OpenSSH 10系より以前(OpenSSH_9.9p2など)の利用を推奨します。

制約

  • 既存の配線の変更は行ってはならない。
  • AX2430S 以外の機器の設定を変更することを禁止する。
  • 本戦ルールに従い、RJ-45 シリアルコンソールケーブル以外のケーブルの持ち込みおよび使用は禁止とする。
  • LAN ケーブルかしめコーナーで作成したケーブルおよび配布されたアダプタの使用は認める。
  • 問題環境の再展開は行えない。
  • 機器を再起動しても解決した内容が維持されなければならない。

初期状態

  • AX2430S に SSH でアクセスできない状態である。

終了状態

  • AX2430S に SSH でアクセスできる状態になっていること。

解説

本問題には、大きく三つの要素があります。

  1. ACL による SSH アクセス拒否
  2. コンソール接続環境(変換アダプタ)
  3. SSH アルゴリズムの非互換

ACL設定のミス

まず、SSH が拒否されている直接的な原因は ACL です。

初期状態では以下の設定が入っています:

ip access-list extended mgmt-access
 deny tcp any any eq 22
 permit ip any any

この設定では、

  • TCP/22(SSH)はすべて拒否
  • それ以外の通信は許可

となっており、SSH 接続は必ず失敗します。

管理ネットワーク(192.168.0.0/16)からの SSH のみ許可するには、以下のように設定する必要があります:

ip access-list extended mgmt-access
 5 permit tcp 192.168.0.0 0.0.255.255 any eq ssh
 10 deny tcp any any eq ssh
 20 permit ip any any

ACL は 上から順に評価されるため、

  • 先に許可を書く
  • その後に拒否を書く

という順序が重要です。

コンソール接続環境(変換アダプタ)

ACL を修正するためには、まず機器へログインする必要があります。

今回は制約上、RJ45のコンソールケーブルしか持ち込むことができなかったため、
配布されていたRJ45–DB9変換アダプタ作成キットを用いて、アダプタを作成し、接続する必要がありました。

Cisco 対応のコンソールケーブルで DB9 ポートを持つ機器に接続する場合は次のようなストレート結線を行うことで接続することができる。

RJ45 Pin1 (Cisco RTS): 青 → DB9 Pin7
RJ45 Pin2 (Cisco DTR): 橙 → DB9 Pin4
RJ45 Pin3 (Cisco TXD): 黒 → DB9 Pin3
RJ45 Pin4 (Cisco GND): 赤 → DB9 Pin5
RJ45 Pin5 (Cisco GND): 緑 → 切断
RJ45 Pin6 (Cisco RXD): 黄 → DB9 Pin2
RJ45 Pin7 (Cisco DSR): 茶 → DB9 Pin6
RJ45 Pin8 (Cisco CTS): 白 → DB9 Pin8

SSH アルゴリズムの非互換

今回使用しているスイッチ(AX2430S)は古いSSH実装を使用しており、次のような古いアルゴリズムしかサポートしていません。

  • 鍵交換アルゴリズム:diffie-hellman-group14-sha1
  • ホスト鍵アルゴリズム:ssh-dss

一方、最近のSSHクライアント(OpenSSH)はセキュリティ強化のため、これらの古いアルゴリズムをデフォルトで無効化しています。理由は次の通りです。

  • SHA-1 は衝突攻撃のリスクがあり安全性が低い
  • DSA(ssh-dss) は鍵長が小さく、現在では安全と見なされていない

そのため、クライアントは通常これらの方式を使おうとしません。しかし、接続先の機器がそれらしか対応していない場合は、クライアント側で明示的に「これらのアルゴリズムを使用してもよい」と指定する必要があります。

この指定を行っているのがコマンド内のオプションです。

  • -oKexAlgorithms=+diffie-hellman-group14-sha1
    • 鍵交換アルゴリズムとして diffie-hellman-group14-sha1 を許可する
  • -oHostKeyAlgorithms=+ssh-dss
    • サーバーのホスト鍵アルゴリズムとして ssh-dss を許可する

つまり、このコマンドは古いネットワーク機器が使用している旧式のSSH暗号方式に、クライアント側を合わせるための設定です。
通常の最新サーバーでは必要ありませんが、古いスイッチやルーターに接続する場合にはこのような指定が必要になることがあります。

$ ssh \
 -oKexAlgorithms=+diffie-hellman-group14-sha1 \
 -oHostKeyAlgorithms=+ssh-dss \
 192.168.1.2 -l user

蛇足ですが、問題文において「本環境では互換性の観点から、OpenSSH 10系より以前(OpenSSH_9.9p2など)の利用を推奨します」とした理由は、OpenSSH 10系では ssh-dss が使用できなくなったためです。

採点基準

  • ALAXALA AX2430S に SSH 接続可能になっている: 100点

講評

15チーム中13チームが正解となりました。

本問題は、

  • ACL の読解と評価順序の理解
  • 物理層(コンソール接続)の対応力
  • レガシー機器におけるプロトコル互換性の知識

といった、実務で頻出するトラブル対応力が問われる問題でした。