ssh隧道來加密連線的通訊

2021-06-18 14:08:46 字數 3224 閱讀 5622

如果mysql

客戶端和伺服器端的連線需要跨越並通過不可信任的網路,那麼需要使用

ssh隧道來加密該連線的通訊

ssh 隧道

openssh

能夠建立隧道以便用加密的會話來封裝其他協議。

下面的命令告訴 

ssh(1)

為 telnet

建立乙個隧道:

% ssh -2 -n -f -l 

5023:localhost:23 [email protected]%

上述 ssh 

命令使用了下面這些選項:-2

強制 ssh 

使用第2

版的協議 

(如果需要和較老的 

ssh 

一同工作請不要使用這個選項)。

-n 表示不使用命令列, 或者說只使用隧道。 如果省略, ssh 

將同時初始化會話。-f

強制 ssh 

在後台執行。-l

表示產生一條 

本地埠:

遠端主機

:遠端埠

形式的隧道。

[email protected]

遠端 ssh 

伺服器。

ssh 

隧道通過監聽 

localhost 

上面指定埠來完成工作。它將把本機主機

/埠上接收到的連線通過 

ssh 

連線**到遠端主機

/埠。

本例中, 位於 localhost 

的 5023

埠 被用於** localhost 

的連線到遠端主機的 

23埠。 由於 

23是 

telnet

使用的,因此它將通過 ssh 

隧道完成 

telnet

會話。

這可以用來封裝任意不安全的 tcp 

協議, 例如 

smtp

、 pop3

、 ftp

等等。使用 ssh 

為 smtp 

建立安全隧道

% ssh -2 -n -f -l 

5025:localhost:25 [email protected]

[email protected]'s password: *****

% telnet localhost 5025

trying 127.0.0.1...

connected to localhost.

escape character is '^]'.

220 mailserver.example.com esmtp

這可以與 

ssh-keygen(1)

以及額外的使用者帳號配合來建立乙個更透明的 ssh 

隧道環境。金鑰可以被用在需要輸入口令的地方, 而且可以為不同的使用者配置不同的隧道。

實用的 ssh 

通道例子

加強 pop3 

服務的安全

工作時, 有乙個允許外來連線的 ssh 

伺服器。 同乙個辦公網路中有乙個郵件伺服器提供 

pop3 

服務。 這個網路, 或從您家到辦公室的網路可能不, 或不完全可信。 基於這樣的原因,您需要以安全的方式來檢視郵件。 解決方法是建立乙個到辦公室 

ssh 

伺服器的連線,並通過這個連線來訪問 

pop3 

服務:% ssh -2 -n -f -l 

2110:mail.example.com:110 [email protected]

[email protected]'s password: ******

當這個通道連上時, 您可以把 pop3 

請求發到 

localhost 

埠 2110

。 這個連線將通過通道安全地**到 

mail.example.com

。繞過嚴厲的防火牆

一些大腦長包的網路管理員會使用一些極端的防火牆策略, 不僅過濾進入的連線,而且也過濾連出的連線。 一些時候您可能只能連線遠端機器 22 

埠,以及 

80 埠用來進行 

ssh 

和網頁瀏覽。

您可能希望訪問一些其它的 (

也許與工作無關的

) 服務, 例如提供**的 

ogg vorbis 

流**伺服器。 如果 

ogg vorbis server 

在 22 

或 80 

解決方法是建立乙個到您的網路的防火牆之外的網路上的 ssh 

伺服器,並通過它提供的通道連線到 

ogg vorbis 

伺服器上。

% ssh -2 -n -f -l 

8888:music.example.com:8000 [email protected]

[email protected]'s password: *******

現在您可以把客戶程式指定到 localhost 

的 8888 

埠,它將把請求**給 

music.example.com 

的 8000 

埠,從而繞過防火牆。

允許使用者登入 allowusers 

選項通常限制哪些使用者能夠登入, 以及從何處登入會是好主意。 採用 allowusers 

選項能夠方便地達到這一目的。 例如, 想要只允許 

root 

使用者從 

192.168.1.32 

登入, 就可以在 

/etc/ssh/sshd_config 

檔案中加入下述設定:

allowusers [email protected]

要允許使用者 admin 

從任何地方登入, 則只需列出使用者名稱:

allowusers admin

可以在同一行指定多個使用者, 例如:

allowusers [email protected] admin

注意:列出需要登入機器的使用者很重要; 否則他們將被鎖在外面。

在完成對 /etc/ssh/sshd_config 

的修改之後您必須告訴 

sshd(8)

# /etc/rc.d/sshd reload

ssh隧道連線內網mysql

一般為了安全,mysql伺服器 假設是a 只會設定為內網可訪問,然後對外部署一台跳板機 假設是b 現在外網客戶端,怎麼訪問a呢?利用serverb將本地3307埠監聽到的訊息本地 到servera的3306埠 ssh fn serverb user serverb ip p 2020 l 3307 ...

Linux 下ssh建立ip加密碼隧道

linux 下ssh 建立ip加密隧道 基於ssh的加密通道 ssh secureshell 是一套安全的網路連線程式,它可以實現通過網路遠端登入其他系統,它就是加密的telnet協議。但是openssh除了具有遠端登入功能外,更可以建立加密ip隧道。如下圖所示 1 我們要使用用外網172.16.2...

Linux 下ssh建立ip加密碼隧道

linux 下ssh 建立ip加密隧道 基於ssh的加密通道 ssh secureshell 是一套安全的網路連線程式,它可以實現通過網路遠端登入其他系統,它就是加密的telnet協議。但是openssh除了具有遠端登入功能外,更可以建立加密ip隧道。1 我們要使用用外網172.16.2.1登入到內...