跳至內容

OpenSSH/第三方工具

100% developed
來自華夏公益教科書
autossh - 自動重新啟動 SSH 會話和隧道
scanssh - SSH 主機和一些代理型別掃描器
sshfs - 基於 SFTP 的使用者空間檔案系統客戶端
sshfp - 從known_hosts檔案或ssh-keyscan(1)生成SSHFP DNS記錄
keychain - 在登入之間重複使用 ssh-agent 和/或 gpg-agent
rsync - 使用增量編碼同步檔案和目錄
gstm - 管理 SSH 隧道埠重定向的圖形介面
sslh - 協議多路複用器
sshguard - 帶有資料包過濾的入侵檢測系統
ssh-audit - 識別伺服器的橫幅、金鑰交換、加密、MAC、壓縮、相容性和其他資訊。
webcat - 可以使用 WebSockets[1]進行隧道傳輸,否則與netcatcurl非常相似。

scanssh掃描主機和網路以查詢正在執行的服務[2]。它檢查伺服器的版本號並將結果顯示在列表中。它檢測 ssh、sftp 和幾種型別的 SOCKS、HTTP 和 telnet 代理。

掃描一個小型的子網以查詢 ssh 伺服器

$ sudo scanssh -n 22 -s ssh 192.168.100.32/26

掃描同一個小型網路以查詢 SOCKS 代理

$ sudo scanssh -s socks5,socks4 192.168.100.32/26

可以設定不同的掃描速度,以及隨機取樣。開放代理檢測掃描可檢測常見埠上的開放代理。

隨機掃描 172.16.1.1 到 172.31.254.254 之間的 1000 個主機,速度為每秒 200 個

$ sudo scanssh -r 200 -p random(1000)/172.16.0.0/12

要掃描的主機和網路可以指定為 IPv4 地址或 CIDR 格式的 IP 字首,其中包含 IP 地址和網路掩碼。可以透過在地址規範的末尾新增冒號來追加埠。掃描主機順序是隨機的,但可以透過以下兩個引數進行修改,randomsplit

random(n[,seed])/從指定為掃描目標的範圍內選擇 n 個隨機地址。n 是要在給定網路中隨機建立的地址數量,而 seed 是偽隨機數生成器的可選種子。例如,可以透過將 'random(10000)/0.0.0.0/0' 指定為地址來對來自網際網路的 10000 個隨機 IPv4 主機進行取樣。

split(s,e)/選擇要使用的地址範圍的特定段。e 指定並行段數,而 s 是此特定掃描使用的段號。這可用於透過從每個主機掃描不同的段來從多個主機並行掃描。

-n 指定要掃描的埠號。埠以逗號分隔。每個指定的掃描器都會針對此列表中的每個埠執行。預設埠為 22。

掃描埠 22 和 2022 上的 SSH 伺服器

$ sudo scanssh -s ssh -n 22,2022 192.168.0.0/24

sshfs基於使用者空間檔案系統 (FUSE) 介面構建,允許非特權使用者建立安全可靠的檔案系統框架。它允許透過利用 SFTP 子系統將遠端檔案系統掛載為本地資料夾。它使用 SFTP 將遠端伺服器上的目錄掛載為本地目錄。這樣,所有使用應用程式都可以像本地一樣與該目錄及其內容進行互動。顧名思義,這是在使用者空間完成的,而不是像檔案系統通常需要的那樣在核心中完成。FUSE 具有穩定的 API 庫以及與 C、C++ 和 Java 的繫結。在這種情況下,它專門是透過ssh(1)執行的 SFTP 客戶端,然後將其掛載為檔案系統。

有關sshfs的更多資訊,請參見SFTP上的 Cookbook 部分。

sshfp使用儲存在known_hosts檔案中的公鑰或ssh-keyscan(1)提供的公鑰生成 SSHFP NS 記錄,作為使用 DNS 釋出 SSH 金鑰指紋的一種方式。這反過來允許在使用之前使用 DNSSEC 查詢來驗證 SSH 金鑰。DNS 中的 SSHFP 資源記錄用於儲存與主機名關聯的 SSH 公共主機金鑰的指紋。記錄本身包含演算法編號、指紋型別和公共主機金鑰的指紋。

有關 SSHFP 的詳細資訊,請參見RFC 4255

keychainssh-agent(1)的另一個管理器,允許多個 shell 和程序(包括cron(8)作業)使用代理持有的金鑰。它通常整合到特定於桌面的工具中,如 OS X 上的 Apple Keychain 或 KDE 的 kdewallet。http://www.funtoo.org/en/security/keychain/intro/

rsync是一個檔案傳輸工具,可高效地在計算機之間傳輸檔案。它可以在 SSH 之上執行,也可以使用自己的協議。SSH 是預設協議。http://rsync.samba.org/

有關在指令碼中使用rsync進行即時或指令碼化備份的示例,請參見自動備份上的 Cookbook 部分。

gstm (Gnome SSH Tunnel Manager)

[編輯 | 編輯原始碼]

gstm是管理 SSH 連線,尤其是埠轉發的圖形介面。http://sourceforge.net/projects/gstm/

sslh是協議多路複用器。它接受指定埠上的連線,並根據客戶端傳送的第一個資料包轉發連線。它可用於在 SSH、SSL、HTTP、OpenVPN、tinc 和 XMPP 之間共享單個埠。https://www.rutschle.net/tech/sslh/README.html

有關帶示例的討論,請參見多路複用部分。

sshguard是一個入侵防禦系統。它監控日誌以檢測不良活動模式,並觸發相應的包過濾規則,持續時間越來越長。它可以與除 SSH 之外的其他一些服務一起使用。http://www.sshguard.net/

ssh-audit

[編輯 | 編輯原始碼]

ssh-audit是一個 Python 指令碼,用於收集有關 SSH 伺服器的資訊。它可以識別使用的橫幅、金鑰交換、加密、訊息認證程式碼 (MAC) 演算法、壓縮、相容性設定以及其他幾個與安全相關的方面。https://github.com/arthepsy/ssh-audit

其他第三方工具

[編輯 | 編輯原始碼]

以下工具在使用 OpenSSH 時很有用,但不在本書詳細介紹的範圍內。儘管如此,它們還是值得一提,足以列出

netstat – 顯示網路連線、路由表、介面統計資訊、偽裝連線和組播成員資格
ncnetcat – Netcat,TCP/IP 萬能工具。
socat – SOcket CAT,與 netcat 類似的多用途中繼。
nmap – 網路探索工具和安全掃描器。
tcpdump – 即時顯示網路流量。
telnet – 與其他主機進行未加密的互動。
pagsh – 建立新的憑證快取沙箱和程序身份驗證組 (PAG)。
nohup – 呼叫忽略 HANGUP 訊號的程序。
sudo – 以其他使用者身份執行程式。
lftp – 支援 SFTP 的便捷互動式多協議檔案傳輸文字客戶端。
curl – 支援 SCP 和 SFTP 的多協議檔案傳輸文字客戶端。
tmux – 終端多路複用器。


參考資料

[編輯 | 編輯原始碼]
  1. Stefan Tatschner (2020-10-15). "SSH (反向) 透過 Websocket 隧道". 檢索於 2020-10-20.
  2. Niels Provos; Peter Honeyman (2001). "ScanSSH - 掃描網際網路上的 SSH 伺服器" (PDF). 密歇根大學資訊科技整合中心 (CITI). 檢索於 2016-03-05.

 

華夏公益教科書