Skip to content

SSH 裝置切換

在真實的網路管理中,你不可能搬著鍵盤跑到每台設備前面操作。你會用 SSH(Secure Shell)從自己的電腦遠端登入其他設備。SimNet 也是一樣——當你需要去路由器上加一條路由,或是到伺服器上重啟服務時,就得用 ssh 跳過去。

為什麼需要切換設備?

在 SimNet 裡,不同的設備看到的「風景」不同,能做的事情也不同:

  • PC(你的玩家裝置) — 可以 ping、curl、抓封包、發動攻擊、部署防禦
  • Router — 掌管路由表,決定封包怎麼走。只有在 Router 上才能用 ip route add 新增路由
  • Server — 跑著各種服務(HTTP、DNS)。只有在 Server 上才能用 systemctl 管理服務
  • Switch — 可以查看 MAC 位址表和 VLAN 設定

這就像一家公司裡,會計只能看到財務系統、工程師只能看到程式碼庫。你得去對的「辦公室」才能做對的事。

怎麼知道該跳去哪台設備?

看挑戰說明和拓撲圖。如果挑戰說「路由器缺少一條路由」,你就知道要 SSH 到 Router 上去操作。

基本操作

連線到其他設備

bash
simnet@pc1:~$ ssh router1
simnet@router1:~$

輸入 ssh 加上設備名稱就行了。設備名稱可以在拓撲圖上看到(方塊裡或旁邊的文字標籤)。

連線成功後,Prompt 會立刻改變——從 pc1 變成 router1,讓你清楚知道現在「人在哪裡」。

返回上一層

bash
simnet@router1:~$ exit
simnet@pc1:~$

exit 就是離開當前的 SSH 連線,回到你原本的設備。

Prompt 顏色提示

SimNet 用顏色幫你分辨目前的位置——不用每次都去讀 Prompt 上的設備名稱:

顏色含義說明
綠色本地裝置(Local)你正在自己的玩家裝置上
黃色SSH 遠端裝置(Remote)你正在透過 SSH 操作另一台設備
simnet@pc1:~$           ← 綠色,你在自己的 PC 上
simnet@router1:~$       ← 黃色,你 SSH 到了 Router
simnet@dns-server:~$    ← 黃色,你 SSH 到了 DNS Server

就像紅綠燈一樣直覺——綠色是「你在家」,黃色是「你出門了」。

多層 SSH

SimNet 支援最多 3 層深度的 SSH 連線。你可以從 PC SSH 到 Router,再從 Router SSH 到 Server:

bash
simnet@pc1:~$ ssh router1          # 第 1 層
simnet@router1:~$ ssh dns-server   # 第 2 層
simnet@dns-server:~$ ssh server1   # 第 3 層(最深)

退出時要反過來,一層一層 exit

bash
simnet@server1:~$ exit             # 回到 dns-server
simnet@dns-server:~$ exit          # 回到 router1
simnet@router1:~$ exit             # 回到 pc1
simnet@pc1:~$                      # 回到家了

注意深度限制

最多只能疊 3 層 SSH。通常你不需要那麼深——大部分挑戰只需要跳一層就夠了。

你可以把多層 SSH 想像成「套娃」——每打開一層就進入一個新的環境,每關一層就回到上一個環境。

各設備可用指令

SSH 到不同設備後,help 列出的指令會不一樣。以下是快速對照:

PC(玩家裝置)

通用指令加上用戶端工具和安全工具: ping, ip addr, arp, curl, wget, nslookup, tcpdump, tshark, nmap, arpspoof, arp -s, tls enable, dns verify

Router

通用指令加上路由管理: ping, ip addr, ip route, show interfaces, show arp

Server

通用指令加上服務管理: ping, ip addr, systemctl, service, cat

Switch

通用指令加上交換器查詢: show mac-address-table, show interfaces, show vlan

所有設備都可以使用的通用指令:help, clear, ssh, exit

完整列表

詳細的指令語法和範例,請參考 Terminal 指令參考

實戰範例:SSH 到 Router 加路由

以一個典型的「Router 缺少路由」情境為例,假設 Router 缺少一條到 Server 子網路的路由。你的操作流程會是這樣:

第 1 步:在 PC 上確認問題

bash
simnet@pc1:~$ ping -c 1 10.0.1.3
PING 10.0.1.3 - no reply (destination unreachable)

Ping 不到 Server——封包在某個地方被丟掉了。

第 2 步:SSH 到 Router 檢查路由表

bash
simnet@pc1:~$ ssh router1
simnet@router1:~$ ip route
10.0.0.0/24 dev eth0 proto kernel scope link src 10.0.0.1

果然,Router 只有 10.0.0.0/24 這個子網路的路由,沒有通往 10.0.1.0/24 的路。

第 3 步:在 Router 上新增路由

bash
simnet@router1:~$ ip route add 10.0.1.0/24 dev eth1
Route added: 10.0.1.0/24 dev eth1

第 4 步:退回 PC 驗證

bash
simnet@router1:~$ exit
simnet@pc1:~$ ping -c 1 10.0.1.3
64 bytes from 10.0.1.3: icmp_seq=1 ttl=63 time=40 ms

通了。現在可以用 curl 去取 Flag 了。

常見問題

我可以 SSH 到 Switch 嗎?

可以。SSH 到 Switch 後,你可以用 show mac-address-table 查看 MAC 位址表——在某些流量分析挑戰中很有用。

忘記我在哪一層了怎麼辦?

看 Prompt。它永遠會顯示你目前所在的設備名稱。如果 Prompt 是黃色的,你就是在遠端設備上;綠色的,你就在自己的 PC 上。不確定的話,多按幾次 exit 回到底層就好。

SSH 的時候 Traffic Log 會切換嗎?

Traffic Log 會顯示你當前所在設備看到的流量。SSH 到 Router 後,你會看到 Router 經手的封包,而不是 PC 的。這在診斷路由問題時特別有用——你可以在 Router 上看到封包有沒有正確轉發。