成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用 OpenSSL 替代 Telnet

系統(tǒng) Linux
Telnet 缺乏加密,這使得 OpenSSL 成為連接遠程系統(tǒng)的更安全的選擇。

Telnet 缺乏加密,這使得 OpenSSL 成為連接遠程系統(tǒng)的更安全的選擇。

telnet 命令是最受歡迎的網(wǎng)絡故障排除工具之一,從系統(tǒng)管理員到網(wǎng)絡愛好者都可以使用。在網(wǎng)絡計算的早期,telnet 被用來連接到一個遠程系統(tǒng)。你可以用 telnet 訪問一個遠程系統(tǒng)的端口,登錄并在該主機上運行命令。

由于 telnet 缺乏加密功能,它在很大程度上已經(jīng)被 OpenSSL 取代了這項工作。然而,作為一種智能的 ping,telnet 的作用仍然存在(甚至在某些情況下至今仍然存在)。雖然 ping 命令是一個探測主機響應的好方法,但這是它能做的 全部。另一方面,telnet 不僅可以確認一個活動端口,而且還可以與該端口的服務進行交互。即便如此,由于大多數(shù)現(xiàn)代網(wǎng)絡服務都是加密的,telnet 的作用可能要小得多,這取決于你想實現(xiàn)什么。

OpenSSL s_client

對于大多數(shù)曾經(jīng)需要 telnet 的任務,我現(xiàn)在使用 OpenSSL 的 s_client 命令。(我在一些任務中使用 curl,但那些情況下我可能無論如何也不會使用 telnet)。大多數(shù)人都知道 OpenSSL 是一個加密的庫和框架,但不是所有人都意識到它也是一個命令。openssl 命令的 s_client 組件實現(xiàn)了一個通用的 SSL 或 TLS 客戶端,幫助你使用 SSL 或 TLS 連接到遠程主機。它是用來測試的,至少在內(nèi)部使用與該庫相同的功能。

安裝 OpenSSL

OpenSSL 可能已經(jīng)安裝在你的 Linux 系統(tǒng)上了。如果沒有,你可以用你的發(fā)行版的軟件包管理器安裝它:

  1. $ sudo dnf install openssl

在 Debian 或類似的系統(tǒng)上:

  1. $ sudo apt install openssl

安裝后,驗證它的響應是否符合預期:

  1. $ openssl version
  2. OpenSSL x.y.z FIPS

驗證端口訪問

最基本的 telnet 用法是一個看起來像這樣的任務:

  1. $ telnet mail.example.com 25
  2. Trying 98.76.54.32...
  3. Connected to example.com.
  4. Escape character is '^]'.

在此示例中,這將與正在端口 25(可能是郵件服務器)監(jiān)聽的任意服務打開一個交互式會話。只要你獲得訪問權(quán)限,就可以與該服務進行通信。

如果端口 25 無法訪問,連接就會被拒絕。

OpenSSL 也是類似的,盡管通常較少互動。要驗證對一個端口的訪問:

  1. $ openssl s_client -connect example.com:80
  2. CONNECTED(00000003)
  3. 140306897352512:error:1408F10B:SSL [...]
  4.  
  5. no peer certificate available
  6.  
  7. No client certificate CA names sent
  8.  
  9. SSL handshake has read 5 bytes and written 309 bytes
  10. Verification: OK
  11.  
  12. New, (NONE), Cipher is (NONE)
  13. Secure Renegotiation IS NOT supported
  14. Compression: NONE
  15. Expansion: NONE
  16. No ALPN negotiated
  17. Early data was not sent
  18. Verify return code: 0 (ok)

但是,這僅是目標性 ping。從輸出中可以看出,沒有交換 SSL 證書,所以連接立即終止。為了充分利用 openssl s_client,你必須連接加密的端口。

交互式 OpenSSL

Web 瀏覽器和 Web 服務器進行交互,可以使指向 80 端口的流量實際上被轉(zhuǎn)發(fā)到 443,這是保留給加密 HTTP 流量的端口。知道了這一點,你就可以用 openssl 命令連接到加密的端口,并與在其上運行的任何網(wǎng)絡服務進行交互。

首先,使用 SSL 連接到一個端口。使用 -showcerts 選項會使 SSL 證書打印到你的終端上,一開始的輸出要比 telnet 要冗長得多:

  1. $ openssl s_client -connect example.com:443 -showcerts
  2. [...]
  3.     0080 - 52 cd bd 95 3d 8a 1e 2d-3f 84 a0 e3 7a c0 8d 87   R...=..-?...z...
  4.     0090 - 62 d0 ae d5 95 8d 82 11-01 bc 97 97 cd 8a 30 c1   b.............0.
  5.     00a0 - 54 78 5c ad 62 5b 77 b9-a6 35 97 67 65 f5 9b 22   Tx\\.b[w..5.ge.."
  6.     00b0 - 18 8a 6a 94 a4 d9 7e 2f-f5 33 e8 8a b7 82 bd 94   ..j...~/.3......
  7.  
  8.     Start Time: 1619661100
  9.     Timeout   : 7200 (sec)
  10.     Verify return code: 0 (ok)
  11.     Extended master secret: no
  12.     Max Early Data: 0
  13. -
  14. read R BLOCK

你被留在一個交互式會話中。最終,這個會話將關(guān)閉,但如果你及時行動,你可以向服務器發(fā)送 HTTP 信號:

  1. [...]
  2. GET / HTTP/1.1
  3. HOST: example.com

回車鍵兩次,你會收到 example.com/index.html 的數(shù)據(jù):

  1. [...]
  2. <body>
  3. <div>
  4. <h1>Example Domain</h1>
  5. <p>This domain is for use in illustrative examples in documents. You may use this
  6. domain in literature without prior coordination or asking for permission.</p>
  7. <p><a href="https://www.iana.org/domains/example">More information...</a></p>
  8. </div>
  9. </body>
  10. </html>

Email 服務器

你也可以使用 OpenSSL 的 s_client 來測試一個加密的 Email 服務器。要做到這點,你必須把你的測試用戶的用戶名和密碼用 Base64 編碼。

這里有一個簡單的方法來做到:

  1. $ perl -MMIME::Base64 -e 'print encode_base64("username");'
  2. $ perl -MMIME::Base64 -e 'print encode_base64("password");'

當你記錄了這些值,你就可以通過 SSL 連接到郵件服務器,它通常在 587 端口:

  1. $ openssl s_client -starttls smtp \
  2. -connect email.example.com:587
  3. > ehlo example.com
  4. > auth login
  5. ##paste your user base64 string here##
  6. ##paste your password base64 string here##
  7.  
  8. > mail from: noreply@example.com
  9. > rcpt to: admin@example.com
  10. > data
  11. > Subject: Test 001
  12. This is a test email.
  13. .
  14. > quit

檢查你的郵件(在這個示例代碼中,是 admin@example.com),查看來自 noreply@example.com 的測試郵件。

OpenSSL 還是 Telnet?

telnet 仍然有用途,但它已經(jīng)不是以前那種不可缺少的工具了。該命令在許多發(fā)行版上被歸入 “遺留” 網(wǎng)絡軟件包,而且還沒有 telnet-ng 之類的明顯的繼任者,管理員有時會對它被排除在默認安裝之外感到疑惑。答案是,它不再是必不可少的,它的作用越來越小,這 很好。網(wǎng)絡安全很重要,所以要適應與加密接口互動的工具,這樣你就不必在排除故障時禁用你的保護措施。 

 

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2010-07-15 10:00:40

2009-11-23 17:10:35

2010-07-16 11:10:50

telnet批處理TCLEXPECT腳本

2009-09-10 11:11:07

pem密鑰文件

2010-04-01 14:14:56

Oracle綁定變量

2013-08-02 15:23:11

2009-08-21 09:28:28

IP PBX統(tǒng)一通信

2019-10-26 14:11:36

GoPython知乎

2013-08-02 10:39:59

AndroidAPPOS

2023-02-13 15:03:33

JDKJavaHotSpot

2023-01-28 13:39:31

Linuxzram

2010-05-26 14:16:45

替代MySQL

2024-12-25 15:32:29

2020-09-17 06:19:05

InDesign

2020-09-17 06:15:04

InDesignScribus 開源

2010-07-21 15:50:24

2009-12-01 13:35:39

Telnet服務

2010-07-20 14:55:16

Telnet端口

2010-07-25 14:37:40

telnet命令

2010-07-26 13:03:23

Telnet會話
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91视频网址 | 99视频在线看 | 亚州国产 | 一区二区中文 | 欧美久久久电影 | 欧美精品一区二区三区在线播放 | 午夜一区二区三区在线观看 | 成人啊啊啊 | 亚洲视频中文字幕 | 少妇无套高潮一二三区 | 毛片1| 99久久婷婷 | 久久久国产精品视频 | 亚洲欧美精品久久 | 亚洲国产一区二区视频 | 精品亚洲一区二区三区 | 亚洲欧美日本在线 | 人人操日日干 | 欧美黄色小视频 | 天天操天天插 | 欧美一级淫片007 | 97精品超碰一区二区三区 | 一区二区久久 | 国产一级在线 | 久草资源在线视频 | 三级黄视频在线观看 | 亚洲va欧美va人人爽午夜 | 亚洲综合色自拍一区 | 亚洲第一天堂 | 国产精品一区视频 | 亚洲精品国产成人 | 日韩视频三区 | 久久久久久久久国产 | 人人鲁人人莫人人爱精品 | 97免费在线视频 | 中文字幕一区二区三区四区五区 | 自拍视频一区二区三区 | 精品国产乱码久久久久久闺蜜 | 97久久超碰 | 久干网| 国产欧美一级二级三级在线视频 |