tunnel SSH

SSH(Secure Shell)

一種加密的網絡傳輸協議,可讓使用者在加密的環境下遠端連線到目標主機

 

 

防止ssh被暴力密碼破解的常見方法

方法1

使用類似denyhosts之工具

http://denyhosts.sourceforge.net/

方法2

使用公私鑰技術即可不用密碼登入

方法3

更改預設port tcp 22,但攻擊者若scanport還是會發現



SSH基本使用

格式:ssh [ parameter] < ssh server address> 

< ssh server address> 格式有兩種

domain or ip: 預設以root登入

username@domain or ip:指定一個帳戶名稱登入

[parameter]常見的有以下

-p 指定port連到ssh server,預設為tcp port 22

-v  顯示完整執行過程

-V 顯示版本資訊

-- < command>  執行指令並回傳結果

ex:

執行指令並回傳結果

#ssh peter@ssh.systw.net  -- hostname

ssh.systw.net



………………………………………………………........................................

SSH 進階使用



Local Port Forwarding

建立本地轉送,以ssh伺服器的角色連接特定位置,可解決像是只能用127.0.0.1開啟的服務

格式:

ssh -L < local port>:< specific address>< specific port>  < ssh server address>

說明:

-L < local port> 建立一條通道,並指定要用那一個local port對映到ssh server上的指定的位置和port

< specific address> : 要讓ssh server前往的位置

< specific port> : 要讓ssh server前往的port

ex:

以下指令執行後,在瀏覽器輸入127.0.0.1:1234,等同用ssh.systw.net主機開啟自己的localhost:80

#ssh -L 1234:localhost:80 ssh.systw.net

... 

 

Remote Port Forwarding

建立反向連線,讓外部主機可以透過ssh反向通道連回內部主機

格式:

ssh -NfR < listen port>:localhost:22  < ssh server address>

說明

-R < listen port> :啟用反向連線,並指定要用那一個port連回來

-f : 連線認證後, 在背景執行

-N:不執行遠端指令, 僅做封包重新導向

< ssh server address>:外部ssh主機的位置


ex:

1

在內部主機輸入以下指令 

#ssh -NfR 2345:localhost:22 ssh.systw.net

2

在ssh.systw.net外部主機上可輸入以下指令,即可連回內部主機

#ssh localhost -p 2345


...

SOCKS Server

讓ssh server變成代理伺服器

格式

ssh -D < local port> -q -C -N -f < ssh server address>

說明

- D < local port> : 建立socks代理,並指定client要指定的port 

-q  將 warning 等訊息隱藏

-C 壓縮所有資料

ex:

1.

在client端執行以下指令,建立socks代理

ssh -D 3333 -q -C -N -f ssh.systw.net

2

在client的代理伺服器設定中,設定socks的位置為localhost,port為3333

3

連到what is my ip等網站,確認ip是否己換成ssh主機上網用的ip

 

 

https://myapollo.com.tw/2018/04/26/ssh-port-forwarding/

http://josephj.com/entry.php?id=312

https://myapollo.com.tw/2019/01/06/ssh-socks-proxy-server/


2019-10-20 16:16:14發表 2019-10-20 16:17:36修改   


  登入      [牛的大腦] | [單字我朋友] Powered by systw.net