如果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
表示產生一條
本地埠:
遠端主機
:遠端埠
形式的隧道。
遠端 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登入到內...