ICTSC2025 本戦 問題解説: [9722] Hole in one
概要
あなたは研究室のネットワークが安全ではないと先輩に言われてマネジメント側のネットワークを作成しました。SSHのアクセスをSV-02のマネジメント側からしかRT-01にできないように設定し、先輩に確認をお願いしました。しかし、マネジメントではないネットワーク側であるSV-01からもRT-01にSSHでログインできてしまいました。ルータの設定を見直してマネジメント側であるSV-02からしかSSHでログインできないようにしてください。

制約
- フィルターやアクセス制限をかけることは禁止
- 全ての機器についてinterfaceのアドレスを変更することは禁止
初期状態
- SSHがマネジメント側でない192.168.150.0/24とマネジメント側である10.200.1.0/24側の両方から行える。
終了状態
- SSHをマネジメント側である10.200.1.0/24からしかアクセスできない
- SV-01からRT-01(192.168.150.254)へ通信が通ること
解説
今回の問題は、VyOSが管理するSSHプロセスとは別に、systemctlで手動起動されたSSHプロセスが存在していたことが原因でした。
VyOSではset service ssh vrf mgmtのように設定することで、SSHをmgmt VRF側のインターフェイスにのみバインドすることができます。しかし今回の環境では、VyOSの設定とは独立してsudo systemctl enable/start sshによりSSHプロセスが手動で起動されていました。systemctlで起動したSSHはVyOSのVRF設定を考慮せず、全インターフェイス(0.0.0.0:22)でリッスンするため、mgmt側でない192.168.150.0/24からもSSHアクセスが可能な状態になっていました。
解決の手順は以下の通りです。まずsystemctlで起動しているSSHプロセスを停止します。次にVyOS側でSSHの設定を一度削除して再度入れ直します。これはVyOSが自身のSSHプロセスを再起動して設定を反映させるために必要な操作です。最後にsystemctlのSSHサービスをdisableにして再起動後も手動起動のSSHが立ち上がらないようにします。
ictsc@9722-RT-01:~$ sudo systemctl stop ssh
ictsc@9722-RT-01:~$ configure
[edit]
ictsc@9722-RT-01# delete service ssh
[edit]
ictsc@9722-RT-01# set service ssh vrf mgmt
[edit]
ictsc@9722-RT-01# commit
[edit]
ictsc@9722-RT-01# save
[edit]
ictsc@9722-RT-01# exit
exit
ictsc@9722-RT-01:~$ sudo systemctl status ssh
○ ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; preset: enabled)
Active: inactive (dead) since Mon 2026-03-09 00:44:40 UTC; 1min 1s ago
Duration: 1h 9min 13.372s
Docs: man:sshd(8)
man:sshd_config(5)
ictsc@9722-RT-01:~$ ss -atn
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 0.0.0.0%mgmt:22 0.0.0.0:*
ESTAB 0 0 192.168.22.2:22 192.168.0.3:36574
LISTEN 0 128 [::]%mgmt:22 [::]:*
ictsc@9722-RT-01:~$ sudo systemctl disable ssh
ictsc@9722-RT-01:~$ reboot
-------- mgmt側でないServerからのみログイン不可能を確認 --------
ictsc@9722-SV-01:~$ ssh 192.168.150.254
ssh: connect to host 192.168.150.254 port 22: Connection refused
-------- mgmt側であるServerからのみログイン可能を確認 --------
ictsc@9722-SV-02:~$ ssh 10.200.1.254
[email protected]'s password:
WARNING: This VyOS system is not a stable long-term support version and
is not intended for production use.
Last login: Mon Mar 9 00:41:20 2026 from 192.168.0.3
ictsc@9722-RT-01:~$
作問者が想定した解説は以上になります。しかし、参加者からの解答では新たなsshのserviceを作成することやsshd_configを編集してSSHのリッスンアドレスを変更するなど、VyOSのSSH設定以外の方法で問題を解決しているケースも見受けられました。これらの方法も制約条件を満たしているので正解になります。本当はこれらの解答を制約で防ぎたかったのですが作問者の考慮不足によるもので、想定が甘かったという結果になりました。
採点基準
- mgmt側の10.200.1.0/24からSSHができるようになっていること
- mgmt側でない192.168.150.0/24からRT-01への通信が通ること
- 上記の2つを満たすことで200点
講評
今回の問題は、VyOSが起動しているSSHとsystemctlで手動で起動したプロセスの両方が存在しているため、mgmt側でないネットワークからもSSHでアクセスできてしまうという状況でした。作問者としてはsystemctlで手動であげたプロセスを落とす解法を想定していましたが、参加者からはsshd_configの編集や新たなSSHサービスの作成など、様々なアプローチで解決している解答が見られました。制約の甘さから想定外の解法を許してしまったのは反省点ではありますが、一つの問題に対して複数のアプローチで解決しようとする参加者の発想を見ることができて、作問者としては報告書を楽しく読むことができました。