iT邦幫忙

2026 iThome 鐵人賽

DAY 25
0
Security

格鬥教練想轉職學資安是否搞錯了什麼(自學第一步)IPAS初級筆記系列 第 25 篇

DAY25 如果要遠端登入一台Server,要怎麼操作才安全?

  • 分享至 

  • xImage
  •  

DAY25 如果要遠端登入一台Server,要怎麼操作才安全?

  • 一. SSH 安全殼層協定
    • 1-1 SSH 的安全目標
    • 1-2 主機金鑰 Host Key
    • 1-3 使用者身分驗證 User Authentication
  • 二. SFTP(SSH檔案傳輸協定)

假設公司有一台Linux Server伺服器在機房中

而有一位系統管理員人在外面想要:

  • 查看伺服器狀態
  • 更新設定
  • 查看日誌
  • 重啟
  • 管理檔案

不可能每次都跑回這台伺服器電腦前方操作
所以需要:遠端存取 Remote Access
管理員 -> Internet網際網路 -> 伺服器

因為會透過網路所以就需要擔心:
如果這中間被看到怎麼辦
所以我們需要(安全遠端存取)Secure Remote Access
這是SSH(安全殼層協定)的主要用途之一


一. SSH 安全殼層協定

Secure Shell
安全殼層協定
簡單說就是
讓你可以透過網路安全遠端登入與管理另一台電腦

建立SSH連線可以:

  • 遠端登入
  • 遠端執行指令
  • 安全檔案傳輸
  • Tunnel(通道)某些網路連線

Tunnel通道
簡單說就是:
網路上建立一條只有你和對方能用的秘密通道
資料在裡面傳輸,外面的人看不到
DAY24學的
TLS就是一種
還有
VPN把所有網路流量包進加密通道
SSH用SSH加密建立安全通道

先知道:

SSH=安全遠端登入/管理
SSH PORT =TCP22 (容易跟Telnet 搞混"TCP23")

Telnet 遠端終端協定
PORT在TCP23
同樣是遠端服務但與SSH不同

  • 它沒有加密都是以明文顯示
  • 安全性不佳
  • 現在幾乎很少在用

如果有人用封包監聽可能會看到敏感資料

Telnet SSH
功能 遠端連線操作 遠端連線操作
加密 沒有 有加密
安全性 非常不安全 安全
現在 幾乎不用 主流

SSH最主要的差異就是有加密

1-1 SSH 的安全目標

與TLS很像:

  1. 機密性
    • 透過加密防止竊聽內容的風險
  2. 完整性
    • 確保通訊資料沒有被未授權修改
  3. 身分驗證
    • 我連到的是誰?
      • 伺服器身分驗證 Server Authentication
      • 主機金鑰 Host Key
    • 登入的人又是誰?
      • 使用者身分驗證 User Authentication
      • 密碼驗證
      • 公開金鑰驗證

1-2 主機金鑰 Host Key

SSH伺服器用來代表自己身分的長期金鑰
主要用來回答:
我連到的是不是原本那台Server
用戶端用它來辨識Server

當第一次SSH連接上Server時可能會看到

主機金鑰指紋
Host Key Fingerprint

指紋就是
將原本很長的主機公開金鑰計算成簡短的識別值
用意就是:
短一點比較好比對主機金鑰是不是正確
不然一大串的公開金鑰
很難檢查

指紋通常會出現在
你第一次與這台主機做SSH連線時
The authenticity of host "XXX" be established
因為是第一次連
所以電腦還沒有它的Host Key可以比對
就會出現主機金鑰讓使用者去確認

如果過去有連線過的主機通常會記住主機金鑰Host Key
通常記錄在known_host

1-3 使用者身分驗證 User Authentication

確認完了伺服器的主機後接下來
伺服器會問:你是誰?
這就是使用者身分驗證
常見有:

  1. 密碼驗證
  2. 公開金鑰驗證

1-3-1 密碼驗證

OverTheWire的Bandit就是用這種密碼驗證的方式來做每一關的Flag
overthewire bandit

例如:

ssh bandit@bandit.labs.overthewire.org -p 2220

輸入後 會要求第0關的密碼

bandit@bandit.labs.overthewire.org's password: 

這時候輸入第0關密碼

bandit0bandit0

就會成功SSH進入

這就是使用者身分驗證中其中的密碼驗證

缺點
密碼本身可能有被猜到的風險
例如:
弱密碼
密碼重複使用
暴力破解攻擊
資訊竊取
所以SSH有加密不代表密碼本身安全

1-3-2 公開金鑰驗證 Public Key Authentication

DAY12.DAY13有提過
使用
公鑰與私鑰
客戶端:保存私鑰
伺服器端:保存使用者公鑰
伺服器不需要拿到私鑰
只需要確認與自己的使用者公鑰有沒有一樣

例如:
Server知道:

MIKEY的公鑰
可以用公鑰出一個只有私鑰能回答出的題目

現在有人說:

我是MIKEY

Server會要求對方:
證明你有MIKEY的私鑰

客戶端使用私鑰驗證

電腦用私鑰解題回傳答案

伺服器再用公鑰驗證

伺服器用公鑰來看答案對不對

一樣不是絕對安全
如果私鑰被偷走,攻擊者就可能利用它
所以私鑰需要:

  • 妥善儲存
  • 限制檔案權限
  • 避免分享
  • 遺失或外洩時撤銷/更換

DAY11有記到特權存取管理PAM和即時權限JIT
假設管理員維護伺服器:
系統管理員

  1. PAM
  2. 取得核准
  3. JIT(暫時取得高權限1小時)
  4. SSH安全登入伺服器
  5. 留下操作紀錄

SSH解決連線安全
PAM解決誰可以使用特權
JIT解決特權可以使用多久


二. SFTP(SSH檔案傳輸協定)

SSH File Transfer Protocol
SSH檔案傳輸協定

透過SSH機制來安全傳輸檔案

  1. 客戶端 -> (要傳檔案的人)
  2. SFTP -> (傳檔案的規則)
  3. SSH -> (加密的安全通道)
  4. 伺服器 (接收的人)

SFTP決定怎麼打包怎麼傳檔案

因為是建立在SSH協定之上所以PORT也是22


IPAS 115-1 Q6
SSH主要運作於 (資料連結層),並負責對區域網路的MAC位址進行加密,防止 Spoofing(ARP 欺騙)
為什麼錯?

  1. SSH 不是資料連結層的MAC保護協定
  • SSH(安全殼層協定)安全遠端存取
  • SSH是應用層的協定
  1. 防範ARP欺騙攻擊
  • ARP主要發生在第2層而SSH是運作在第7層

上一篇
DAY24 連網站時,怎麼建立可信又安全的通訊?
系列文
格鬥教練想轉職學資安是否搞錯了什麼(自學第一步)IPAS初級筆記 共 25 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言