日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

關于ssh端口轉發(fā)的深入實例

 農(nóng)夫子oice 2008-01-07
作者: geminis   發(fā)表日期: 2006-07-04 02:54   復制鏈接




ssh的三個強大的端口轉發(fā)命令:
ssh -C -f -N -g -L listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -R listen_port:DST_Host:DST_port user@Tunnel_Host
ssh -C -f -N -g -D listen_port user@Tunnel_Host


-f Fork into background after authentication.
后臺認證用戶/密碼,通常和-N連用,不用登錄到遠程主機。

-p port Connect to this port. Server must be on the same port.
被登錄的ssd服務器的sshd服務端口。

-L port:host:hostport
將本地機(客戶機)的某個端口轉發(fā)到遠端指定機器的指定端口. 工作原理是這樣的, 本地機器上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了連接, 該連接就經(jīng)過安全通道轉發(fā)出去, 同時遠程主機和 host 的 hostport 端口建立連接. 可以在配置文件中指定端口的轉發(fā). 只有 root 才能轉發(fā)特權端口. IPv6 地址用另一種格式說明: port/host/hostport

-R port:host:hostport
將遠程主機(服務器)的某個端口轉發(fā)到本地端指定機器的指定端口. 工作原理是這樣的, 遠程主機上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了連接, 該連接就經(jīng)過安全通道轉向出去, 同時本地主機和 host 的 hostport 端口建立連接. 可以在配置文件中指定端口的轉發(fā). 只有用 root 登錄遠程主機才能轉發(fā)特權端口. IPv6 地址用另一種格式說明: port/host/hostport

-D port
指定一個本地機器 “動態(tài)的'’ 應用程序端口轉發(fā). 工作原理是這樣的, 本地機器上分配了一個 socket 偵聽 port 端口, 一旦這個端口上有了連接, 該連接就經(jīng)過安全通道轉發(fā)出去, 根據(jù)應用程序的協(xié)議可以判斷出遠程主機將和哪里連接. 目前支持 SOCKS4 協(xié)議, 將充當 SOCKS4 服務器. 只有 root 才能轉發(fā)特權端口. 可以在配置文件中指定動態(tài)端口的轉發(fā).

-C Enable compression.
壓縮數(shù)據(jù)傳輸。

-N Do not execute a shell or command.
不執(zhí)行腳本或命令,通常與-f連用。

-g Allow remote hosts to connect to forwarded ports.
在-L/-R/-D參數(shù)中,允許遠程主機連接到建立的轉發(fā)的端口,如果不加這個參數(shù),只允許本地主機建立連接。注:這個參數(shù)我在實踐中似乎始終不起作用,參見III)

實例說明:
一臺服務器提供ftp服務,因為ftp傳輸是明文密碼,如果不做ssh端口之前,我們可以通過tcpdump命令很容易的捕捉到明文信息。所以我們要對21端口進行轉發(fā):
(ftp-server)# ssh -CNfg -R 2121:localhost:21 root@10.4.2.50
然后登錄到10.4.2.50機器,我們可以通過netstat -an|grep :2121查看端口已經(jīng)偵聽
(10.4.2.50)# ftp localhost 21就可以登錄到ftp-server了,而且tcpdump無法捕獲到有效的信息。
2121端口任意選擇,只要是機器上沒有占用的端口就行


來一個稍微復雜一點的,做網(wǎng)關的例子:
假如內網(wǎng)有一臺提供ftp(linux,port is 2121,稱為A機器)的機器,通過網(wǎng)關服務器(linux,port is 8888,稱為B機器)進去,現(xiàn)在外網(wǎng)有一臺C機器需要訪問網(wǎng)關服務器的某個端口(port is 21)來訪問內網(wǎng)的ftp服務器。大家可以看到,其實這就像是一個基于ssh的防火墻程序,好,下面我們來具體操作:
1。login A 機器
# ssh -CNfg -R 8888:localhost:2121 root@B機器IP
這樣我們就在B機器上開了一個8888->2121的端口轉換,但是由于8888端口只能偵聽在localhost主機上,因此,雖然我們已經(jīng)可以在B機器上使用
# ftp localhost 8888 來訪問真正的ftp服務器,但仍然無法提供給外網(wǎng)的機器訪問

2。login B機器
# ssh -CNfg -L 21:localhost:8888 root@localhost
這樣做,是做本地機器上的21->8888端口轉換,可以偵聽在任何地址上的請求。
2(1)。
如果C機器也是一臺linux機器,那也可以這樣設置:
# ssh -CNfg -R 21:localhost:8888 root@C機器IP

3。使用C機器,可以是linux下的ftp命令,也可以是windows下的客戶端軟件都可以訪問B機器的21端口來連接后臺真正的ftp服務器(真正的端口是2121)
如果是按照2(1)中的設置,則訪問的地址為本機IP。


簡單介紹一個在linux下使用的設置ssh端口轉換的程序
http://gstm./?page_id=5
Gnome SSH Tunnel Manager



在windows機器下使用putty也可以建立端口轉發(fā)
假設從windows機器上將本地的8888端口轉發(fā)到B的21端口,可以做如下設置
Connection->SSH-Tunnels中可以設置putty的端口轉發(fā),Source port為listen_port,填8888,Destionation為DST_Host:DST_port,填寫B(tài)機器IP:21,設置完了點Add.
注意是local還是remote?
putty tunnel setting


設置好后,我們可以在dos下用netstat命令看一下是否開啟了本地的轉發(fā)端口
netstat into the DOS


接下來我們訪問localhost的8888端口來訪問ftp服務器了
 
 
 

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多