亚洲欧美精品沙发,日韩在线精品视频,亚洲Av每日更新在线观看,亚洲国产另类一区在线5

<pre id="hdphd"></pre>

  • <div id="hdphd"><small id="hdphd"></small></div>
      學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦安全 > 防火墻知識(shí) >

      通過(guò)ssh反向連接內(nèi)網(wǎng)主機(jī)的方法是什么

      時(shí)間: 加城1195 分享

        防火墻主要由服務(wù)訪問(wèn)規(guī)則、驗(yàn)證工具、包過(guò)濾和應(yīng)用網(wǎng)關(guān)4個(gè)部分組成,防火墻就是一個(gè)位于計(jì)算機(jī)和它所連接的網(wǎng)絡(luò)之間的軟件或硬件。那么怎么.用ssh反向連接內(nèi)網(wǎng)主機(jī)呢?可能有點(diǎn)復(fù)雜,下面一起看看具體步驟!

        具體步驟

        一.用ssh反向連接內(nèi)網(wǎng)主機(jī)

        可以通過(guò)ssh反向連接到內(nèi)網(wǎng)主機(jī)(有防火墻的主機(jī))

        好,下面是步驟:

        0. 在兩側(cè)都安裝ssh

        1. 在被控端運(yùn)行ssh -f -N -R 10000:localhost:22 username@主控端ip。這里的10000和22是端口號(hào),也就是說(shuō),在主控端10000端口和被控端的22端口上建立了一個(gè)通道。

        2. 在主控端運(yùn)行 ssh username@localhost -p 10000。這里的username是你被控端的username,10000就是剛才的那個(gè)端口號(hào)。

        ok了。

        二.SSH公鑰(public key)驗(yàn)證

        也就是如何不用密碼的SSH登錄… 本講解適用于Client/Server都使用OpenSSH的情況(商業(yè)版SSH的key文件格式有所不同,這里的方法直接使用是無(wú)效的)。

        目標(biāo): Client 免輸密碼ssh登錄Server

        SSH支持多種登錄驗(yàn)證方式,我們默認(rèn)使用的是鍵盤交互方式(keyboard- interactive),也就是手工輸入密碼的那種。這里我們要改成公鑰(publickey)驗(yàn)證方式,并且設(shè)置

        passphrase為空,以達(dá)到免輸密碼登錄的目的。

        1. Client端:

        cd ~/.ssh

        #產(chǎn)生公鑰文件(id_dsa.pub)和私鑰文件(id_dsa), 類型DSA, 長(zhǎng)度1024 bits

        #注意詢問(wèn)passphrase的時(shí)候直接回車

        ssh-keygen -t dsa -b 1024

        #將公鑰復(fù)制到遠(yuǎn)程主機(jī)去

        scp id_dsa.pub Server:~/.ssh/id_dsa.pub.Client2. Server端:

        cd ~/.ssh

        #將Client的公鑰放入Server的信任列表

        cat id_dsa.pub.Client >> authorized_keys

        #更新權(quán)限,很重要

        chmod 0600 *從此以后Client SSH登錄Server就不要手工輸入密碼了。

        三.備注 – SSH常見(jiàn)術(shù)語(yǔ)及對(duì)應(yīng)的解釋

        前提:內(nèi)網(wǎng)機(jī)器能訪問(wèn)外網(wǎng)機(jī)器,但是只有局域網(wǎng)IP

        首先要設(shè)置信任關(guān)系。

        然后在內(nèi)網(wǎng)機(jī)器上運(yùn)行腳本auto.sh(我這里設(shè)置時(shí)每小時(shí)運(yùn)行一次,保持連接40分鐘,如果不連接會(huì)自動(dòng)斷開(kāi))

        #!/bin/bash

        ssh -R 2222:localhost:22 root@外網(wǎng)機(jī)器IP “touch login; sleep 2400; touch logout”

        需要登錄內(nèi)網(wǎng)機(jī)器時(shí),使用如下命令即可

        ssh -p 2222 root@localhost

        最近想在家里登錄公司的機(jī)器查看代碼,期間碰到了一些問(wèn)題,因?yàn)楣纠锏臋C(jī)器是沒(méi)有對(duì)外IP的,而且請(qǐng)網(wǎng)管

        做個(gè)端口映射也比較麻煩,所以在家里不能直接連接到公司的機(jī)器上。在網(wǎng)上搜索了一下,找到了ssh反向連接這

        個(gè)解決方法,成功解決了不能直接連接的問(wèn)題,并對(duì)反向連接的實(shí)現(xiàn)感興趣,按照自己的想法,寫了一個(gè)簡(jiǎn)單的示

        例。

        SSH反向連接的使用

        1、什么是反向連接?

        反向連接是指主機(jī)A(受控端)主動(dòng)連接主機(jī)B(控制端),在主機(jī)A和主機(jī)B之間建立一個(gè)遠(yuǎn)程連接,通過(guò)這個(gè)連

        接主機(jī)B可以主動(dòng)的向主機(jī)A發(fā)送一些請(qǐng)求。

        2、為什么需要主機(jī)A主動(dòng)去連接主機(jī)B呢?

        這是因?yàn)橹鳈C(jī)A在局域網(wǎng)內(nèi),如果沒(méi)有對(duì)主機(jī)A進(jìn)行端口映射,對(duì)于主機(jī)B來(lái)說(shuō)主機(jī)A是不可見(jiàn)的,如果在主機(jī)B這

        邊向主機(jī)A發(fā)送連接請(qǐng)求,這個(gè)請(qǐng)求是不可達(dá)的。而主機(jī)B有自己獨(dú)立的IP,對(duì)于主機(jī)A來(lái)說(shuō)是可見(jiàn)的,可以直接向

        主機(jī)B請(qǐng)求連接。

        3、SSH反向連接的過(guò)程

        方法就是主機(jī)A主動(dòng)去連接主機(jī)B,主機(jī)B響應(yīng)主機(jī)A的連接請(qǐng)求,它們之間就建立了一個(gè)遠(yuǎn)程連接。然后主機(jī)B在

        本地再創(chuàng)建一個(gè)本地連接,重定向到主機(jī)A和主機(jī)B剛才建立的遠(yuǎn)程連接上,之后對(duì)這個(gè)本地連接的操作都會(huì)反饋到

        遠(yuǎn)程連接上去。整個(gè)過(guò)程類似于文件的DUP,這就在主機(jī)A和主機(jī)B之間建立了連接通道,此時(shí)對(duì)于主機(jī)B來(lái)說(shuō),主

        機(jī)A已經(jīng)是可見(jiàn)了。

        連接流程如下:

        3.1、主機(jī)A ssh客戶端向主機(jī)B sshd服務(wù)端發(fā)送請(qǐng)求,建立遠(yuǎn)程連接。

        3.2、主機(jī)B sshd服務(wù)端創(chuàng)建本地連接很遠(yuǎn)程連接的映射(反向連接通道)。

        3.3、主機(jī)B ssh客戶端向主機(jī)B sshd服務(wù)端的連接通道發(fā)送請(qǐng)求, 建立主機(jī)B ssh和主機(jī)A sshd的連接。

        完成連接后,主機(jī)A對(duì)于主機(jī)B可見(jiàn)的形式就是存在于主機(jī)B的那個(gè)本地連接。

        4、為什么需要在主機(jī)B對(duì)遠(yuǎn)程連接映射一個(gè)本地連接?

        反向連接就是CS架構(gòu),不過(guò)是受控端主動(dòng)向控制端請(qǐng)求連接,讓它們之間的連接建立。傳統(tǒng)的CS方式是可以解決

        主機(jī)A和主機(jī)B之間的連接問(wèn)題,但是那樣主機(jī)A和主機(jī)B的連接方式并不靈活,兩者之間能做的事情,只能是CS之際

        協(xié)議規(guī)定的事情。在主機(jī)B上建立了主機(jī)A的連接映射后, 對(duì)于主機(jī)B來(lái)說(shuō)主機(jī)A已經(jīng)不是局域網(wǎng)內(nèi)那臺(tái)不可見(jiàn)的主

        機(jī),主機(jī)A已經(jīng)是存在主機(jī)B的一臺(tái)可見(jiàn)主機(jī),這樣就消除了局域網(wǎng)和廣域網(wǎng)的阻礙。 主機(jī)A和主機(jī)B之間建立的那

        個(gè)遠(yuǎn)程連接就是主機(jī)A和主機(jī)B的通道-“網(wǎng)線”。

        5、SSH反向連接的使用

        要建立反向連接,首先在主機(jī)A上運(yùn)行:

        代碼: ssh -f -N -R 10000:localhost:22 lyb@jb51.net

        10000是主機(jī)B上的本地連接端口, 22是主機(jī)B上遠(yuǎn)程連接的那個(gè)端口, lyb@jb51.net是主機(jī)B的地址

        連接上后,會(huì)需要輸入密碼。連接成功后,SSH反向連接就建立起來(lái)了。要連接到主機(jī)A,在主機(jī)B上運(yùn)行:

        代碼: ssh lyb@localhost -p 10000

        即可。

        —————————-

        內(nèi)網(wǎng)主機(jī)A(192.168.1.1) 外網(wǎng)主機(jī) B(100.100.100.100)

        正常情況 可以從內(nèi)網(wǎng)主機(jī)A 通過(guò)ssh 連接到外網(wǎng)主機(jī)B

        #ssh username@100.100.100.100

        現(xiàn)在需要 通過(guò)外網(wǎng)主機(jī)B 連接 內(nèi)網(wǎng)主機(jī)A

        原理:

        利用ssh自身功能, 建立 主機(jī)B 到主機(jī)A 的連接通道。

        操作:

        1.在主機(jī)A上建立通道

        ssh -NfR 2222:localhost:22 httpd@100.100.100.100 -p 22

        注釋: -Nf 命令在后臺(tái)運(yùn)行

        -R 建立反向通道

        2222 在主機(jī)B上建立端口映射

        localhost:22 將主機(jī)B端口2222 映射到主機(jī)A端口22上

        httpd@100.100.100.100 遠(yuǎn)程登錄主機(jī)B用戶名及IP

        -p 22 主機(jī)B ssh登錄端口

        執(zhí)行后可以查看進(jìn)程

        ps axu |grep ssh

        ssh -NfR 2222:localhost:22 httpd@100.100.100.100

        2.登錄主機(jī)B

        查看已經(jīng)建立好的映射端口

        netstat -antp

        tcp 0 0 127.0.0.1:2222 0.0.0.0:* LISTEN -

        登錄內(nèi)網(wǎng)主機(jī)A

        ssh -p 2222 httpd@localhost

        注釋:

        -p2222 已建立到內(nèi)網(wǎng)主機(jī)A的映射端口

        httpd 內(nèi)網(wǎng)主機(jī)A的ssh 登錄用戶

        @localhost 可以看到映射端口只監(jiān)聽(tīng)到127.0.0.1 上

        執(zhí)行命令后顯示登錄成功,則大功告成

        PS:

        1. 如果用key登錄則無(wú)須輸入密碼

        2. 如果報(bào)錯(cuò): Permission denied (publickey,gssapi-with-mic).

        key不對(duì)或者key用戶不對(duì)。

        使用的過(guò)程中碰到一個(gè)問(wèn)題, 就是在主機(jī)A上發(fā)起請(qǐng)求的時(shí)候, 需要輸入密碼。 如果我在家里, 不可能跑到公

        司了去輸入密碼。于是用ssh public key的方法和寫一個(gè)腳本來(lái)解決。腳本如下:

        復(fù)制代碼代碼如下:

        #!/bin/bash

        while true;do

        RET=`ps ax | grep "ssh -f -N -R 10000:localhost:22" | grep -v "grep"`

        if [ "$RET" = "" ]; then

        echo "restart ssh server"

        ssh -f -N -R 10000:localhost:22fi

        sleep 10

        done

        補(bǔ)充閱讀:防火墻主要使用技巧

        一、所有的防火墻文件規(guī)則必須更改。

        盡管這種方法聽(tīng)起來(lái)很容易,但是由于防火墻沒(méi)有內(nèi)置的變動(dòng)管理流程,因此文件更改對(duì)于許多企業(yè)來(lái)說(shuō)都不是最佳的實(shí)踐方法。如果防火墻管理員因?yàn)橥话l(fā)情況或者一些其他形式的業(yè)務(wù)中斷做出更改,那么他撞到槍口上的可能性就會(huì)比較大。但是如果這種更改抵消了之前的協(xié)議更改,會(huì)導(dǎo)致宕機(jī)嗎?這是一個(gè)相當(dāng)高發(fā)的狀況。

        防火墻管理產(chǎn)品的中央控制臺(tái)能全面可視所有的防火墻規(guī)則基礎(chǔ),因此團(tuán)隊(duì)的所有成員都必須達(dá)成共識(shí),觀察誰(shuí)進(jìn)行了何種更改。這樣就能及時(shí)發(fā)現(xiàn)并修理故障,讓整個(gè)協(xié)議管理更加簡(jiǎn)單和高效。

        二、以最小的權(quán)限安裝所有的訪問(wèn)規(guī)則。

        另一個(gè)常見(jiàn)的安全問(wèn)題是權(quán)限過(guò)度的規(guī)則設(shè)置。防火墻規(guī)則是由三個(gè)域構(gòu)成的:即源(IP地址),目的地(網(wǎng)絡(luò)/子網(wǎng)絡(luò))和服務(wù)(應(yīng)用軟件或者其他目的地)。為了確保每個(gè)用戶都有足夠的端口來(lái)訪問(wèn)他們所需的系統(tǒng),常用方法是在一個(gè)或者更多域內(nèi)指定打來(lái)那個(gè)的目標(biāo)對(duì)象。當(dāng)你出于業(yè)務(wù)持續(xù)性的需要允許大范圍的IP地址來(lái)訪問(wèn)大型企業(yè)的網(wǎng)絡(luò),這些規(guī)則就會(huì)變得權(quán)限過(guò)度釋放,因此就會(huì)增加不安全因素。服務(wù)域的規(guī)則是開(kāi)放65535個(gè)TCP端口的ANY。防火墻管理員真的就意味著為黑客開(kāi)放了65535個(gè)攻擊矢量?

        三、根據(jù)法規(guī)協(xié)議和更改需求來(lái)校驗(yàn)每項(xiàng)防火墻的更改。

        在防火墻操作中,日常工作都是以尋找問(wèn)題,修正問(wèn)題和安裝新系統(tǒng)為中心的。在安裝最新防火墻規(guī)則來(lái)解決問(wèn)題,應(yīng)用新產(chǎn)品和業(yè)務(wù)部門的過(guò)程中,我們經(jīng)常會(huì)遺忘防火墻也是企業(yè)安全協(xié)議的物理執(zhí)行者。每項(xiàng)規(guī)則都應(yīng)該重新審核來(lái)確保它能符合安全協(xié)議和任何法規(guī)協(xié)議的內(nèi)容和精神,而不僅是一篇法律條文。

        四、當(dāng)服務(wù)過(guò)期后從防火墻規(guī)則中刪除無(wú)用的規(guī)則。

        規(guī)則膨脹是防火墻經(jīng)常會(huì)出現(xiàn)的安全問(wèn)題,因?yàn)槎鄶?shù)運(yùn)作團(tuán)隊(duì)都沒(méi)有刪除規(guī)則的流程。業(yè)務(wù)部門擅長(zhǎng)讓你知道他們了解這些新規(guī)則,卻從來(lái)不會(huì)讓防火墻團(tuán)隊(duì)知道他們不再使用某些服務(wù)了。了解退役的服務(wù)器和網(wǎng)絡(luò)以及應(yīng)用軟件更新周期對(duì)于達(dá)成規(guī)則共識(shí)是個(gè)好的開(kāi)始。運(yùn)行無(wú)用規(guī)則的報(bào)表是另外一步。黑客喜歡從來(lái)不刪除規(guī)則的防火墻團(tuán)隊(duì)。


      通過(guò)ssh反向連接內(nèi)網(wǎng)主機(jī)的方法是什么相關(guān)文章:

      1.在Linux下的SSH端口轉(zhuǎn)發(fā)的程序

      2.外網(wǎng)SSH怎么訪問(wèn)內(nèi)網(wǎng)LINUX

      3.如何解決端口映射之后還有訪問(wèn)不了內(nèi)網(wǎng)的服務(wù)器

      4.如何實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)服務(wù)器

      5.如何解決水星路由器外網(wǎng)無(wú)法訪問(wèn)映射后的服務(wù)器

      4042621