不卡AV在线|网页在线观看无码高清|亚洲国产亚洲国产|国产伦精品一区二区三区免费视频

學(xué)習(xí)啦 > 學(xué)習(xí)電腦 > 電腦安全 > 防火墻知識(shí) >

使用ssh訪問防火墻后的Linux服務(wù)器的方法是什么

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

  防火墻借由監(jiān)測(cè)所有的封包并找出不符規(guī)則的內(nèi)容,可以防范電腦蠕蟲或是木馬程序的快速蔓延。這篇文章主要介紹了使用ssh訪問防火墻后的Linux服務(wù)器的方法, 即在Linux上設(shè)置反向 ssh隧道的相關(guān)方法,需要的朋友可以參考下

  使用ssh工具訪問Linux服務(wù)器的基本方法

  第一步,開啟工作站上防火墻的相應(yīng)端口,SSH是22。

  第二步,開啟SSH服務(wù)。

  先查看ssh的狀態(tài)。

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

  service sshd status

  開啟服務(wù),

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

  service sshd start

  當(dāng)然也可以關(guān)閉了,

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

  service sshd stop

  重啟服務(wù),

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

  sshd restart

  第三步,修改配置文件,/etc/ssh/sshd_config

  打開這個(gè)文件,在最后的地方AllowUsers,添加用戶名,多個(gè)就用空格隔開,當(dāng)然也可以添加root。如果想禁用root 登錄也可以,這里不添加。同時(shí)可以在這個(gè)文件中找到一個(gè)語句: Permitrootlogin yes。將yes改為no就可以了。

  第四步,設(shè)置ssh隨機(jī)啟動(dòng)

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

  chkconfig --level xxxx sshd on //xxxx表示你要的等級(jí)(應(yīng)該這么說吧),例如2345等

  第五步,遠(yuǎn)程登錄

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

  ssh usrname@hostname //hostname或者Ip

  然后就是要你輸入密碼了。登錄后,也可以更改用戶(su 命令)。如何希望有圖形,也不是不可以,在登錄的時(shí)候加上 -X (大寫的X):ssh -X usrname@hostname。

  這樣勉強(qiáng)可以吧,也有圖形界面了,就是反映比較慢,應(yīng)急可以。

  通過反向 SSH 隧道訪問 NAT 后面的 Linux 服務(wù)器

  什么是反向 SSH 隧道?

  SSH 端口轉(zhuǎn)發(fā)的一種替代方案是 反向 SSH 隧道。反向 SSH 隧道的概念非常簡(jiǎn)單。使用這種方案,在你的受限的家庭網(wǎng)絡(luò)之外你需要另一臺(tái)主機(jī)(所謂的“中繼主機(jī)”),你能從當(dāng)前所在地通過 SSH 登錄到它。你可以用有公網(wǎng) IP 地址的 VPS 實(shí)例 配置一個(gè)中繼主機(jī)。然后要做的就是從你的家庭網(wǎng)絡(luò)服務(wù)器中建立一個(gè)到公網(wǎng)中繼主機(jī)的永久 SSH 隧道。有了這個(gè)隧道,你就可以從中繼主機(jī)中連接“回”家庭服務(wù)器(這就是為什么稱之為 “反向” 隧道)。不管你在哪里、你的家庭網(wǎng)絡(luò)中的 NAT 或 防火墻限制多么嚴(yán)格,只要你可以訪問中繼主機(jī),你就可以連接到家庭服務(wù)器。

  在 Linux 上設(shè)置反向 SSH 隧道

  讓我們來看看怎樣創(chuàng)建和使用反向 SSH 隧道。我們做如下假設(shè):我們會(huì)設(shè)置一個(gè)從家庭服務(wù)器(homeserver)到中繼服務(wù)器(relayserver)的反向 SSH 隧道,然后我們可以通過中繼服務(wù)器從客戶端計(jì)算機(jī)(clientcomputer) SSH 登錄到家庭服務(wù)器。本例中的中繼服務(wù)器 的公網(wǎng) IP 地址是 1.1.1.1。

  在家庭服務(wù)器上,按照以下方式打開一個(gè)到中繼服務(wù)器的 SSH 連接。

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

  homeserver~$ ssh -fN -R 10022:localhost:22 relayserver_user@1.1.1.1

  這里端口 10022 是任何你可以使用的端口數(shù)字。只需要確保中繼服務(wù)器上不會(huì)有其它程序使用這個(gè)端口。

  “-R 10022:localhost:22” 選項(xiàng)定義了一個(gè)反向隧道。它轉(zhuǎn)發(fā)中繼服務(wù)器 10022 端口的流量到家庭服務(wù)器的 22 號(hào)端口。

  用 “-fN” 選項(xiàng),當(dāng)你成功通過 SSH 服務(wù)器驗(yàn)證時(shí) SSH 會(huì)進(jìn)入后臺(tái)運(yùn)行。當(dāng)你不想在遠(yuǎn)程 SSH 服務(wù)器執(zhí)行任何命令,就像我們的例子中只想轉(zhuǎn)發(fā)端口的時(shí)候非常有用。

  運(yùn)行上面的命令之后,你就會(huì)回到家庭主機(jī)的命令行提示框中。

  登錄到中繼服務(wù)器,確認(rèn)其 127.0.0.1:10022 綁定到了 sshd。如果是的話就表示已經(jīng)正確設(shè)置了反向隧道。

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

  relayserver~$ sudo netstat -nap | grep 10022

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

  tcp 0 0 127.0.0.1:10022 0.0.0.0:* LISTEN 8493/sshd

  現(xiàn)在就可以從任何其它計(jì)算機(jī)(客戶端計(jì)算機(jī))登錄到中繼服務(wù)器,然后按照下面的方法訪問家庭服務(wù)器。

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

  relayserver~$ ssh -p 10022 homeserver_user@localhost

  需要注意的一點(diǎn)是你在上面為localhost輸入的 SSH 登錄/密碼應(yīng)該是家庭服務(wù)器的,而不是中繼服務(wù)器的,因?yàn)槟闶峭ㄟ^隧道的本地端點(diǎn)登錄到家庭服務(wù)器,因此不要錯(cuò)誤輸入中繼服務(wù)器的登錄/密碼。成功登錄后,你就在家庭服務(wù)器上了。

  通過反向SSH 隧道直接連接到網(wǎng)絡(luò)地址變換后的服務(wù)器

  上面的方法允許你訪問 NAT 后面的 家庭服務(wù)器,但你需要登錄兩次:首先登錄到 中繼服務(wù)器,然后再登錄到家庭服務(wù)器。這是因?yàn)橹欣^服務(wù)器上 SSH 隧道的端點(diǎn)綁定到了回環(huán)地址(127.0.0.1)。

  事實(shí)上,有一種方法可以只需要登錄到中繼服務(wù)器就能直接訪問NAT之后的家庭服務(wù)器。要做到這點(diǎn),你需要讓中繼服務(wù)器上的 sshd 不僅轉(zhuǎn)發(fā)回環(huán)地址上的端口,還要轉(zhuǎn)發(fā)外部主機(jī)的端口。這通過指定中繼服務(wù)器上運(yùn)行的 sshd 的 GatewayPorts 實(shí)現(xiàn)。

  打開中繼服務(wù)器的 /etc/ssh/sshd_conf 并添加下面的行。

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

  relayserver~$ vi /etc/ssh/sshd_conf

  GatewayPorts clientspecified

  重啟 sshd。

  基于 Debian 的系統(tǒng):

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

  relayserver~$ sudo /etc/init.d/ssh restart

  基于紅帽的系統(tǒng):

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

  relayserver~$ sudo systemctl restart sshd

  現(xiàn)在在家庭服務(wù)器中按照下面方式初始化一個(gè)反向 SSH 隧道。

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

  homeserver~$ ssh -fN -R 1.1.1.1:10022:localhost:22 relayserver_user@1.1.1.1

  登錄到中繼服務(wù)器然后用 netstat 命令確認(rèn)成功建立的一個(gè)反向 SSH 隧道。

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

  relayserver~$ sudo netstat -nap | grep 10022

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

  tcp 0 0 1.1.1.1:10022 0.0.0.0:* LISTEN 1538/sshd: dev

  不像之前的情況,現(xiàn)在隧道的端點(diǎn)是 1.1.1.1:10022(中繼服務(wù)器的公網(wǎng) IP 地址),而不是 127.0.0.1:10022。這就意味著從外部主機(jī)可以訪問隧道的另一端。

  現(xiàn)在在任何其它計(jì)算機(jī)(客戶端計(jì)算機(jī)),輸入以下命令訪問網(wǎng)絡(luò)地址變換之后的家庭服務(wù)器。

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

  clientcomputer~$ ssh -p 10022 homeserver_user@1.1.1.1

  在上面的命令中,1.1.1.1 是中繼服務(wù)器的公共 IP 地址,homeserver_user必須是家庭服務(wù)器上的用戶賬戶。這是因?yàn)槟阏嬲卿浀降闹鳈C(jī)是家庭服務(wù)器,而不是中繼服務(wù)器。后者只是中繼你的 SSH 流量到家庭服務(wù)器。

  在 Linux 上設(shè)置一個(gè)永久反向 SSH 隧道

  現(xiàn)在你已經(jīng)明白了怎樣創(chuàng)建一個(gè)反向 SSH 隧道,然后把隧道設(shè)置為 “永久”,這樣隧道啟動(dòng)后就會(huì)一直運(yùn)行(不管臨時(shí)的網(wǎng)絡(luò)擁塞、SSH 超時(shí)、中繼主機(jī)重啟,等等)。畢竟,如果隧道不是一直有效,你就不能可靠的登錄到你的家庭服務(wù)器。

  對(duì)于永久隧道,我打算使用一個(gè)叫 autossh 的工具。正如名字暗示的,這個(gè)程序可以讓你的 SSH 會(huì)話無論因?yàn)槭裁丛蛑袛喽紩?huì)自動(dòng)重連。因此對(duì)于保持一個(gè)反向 SSH 隧道非常有用。

  第一步,我們要設(shè)置從家庭服務(wù)器到中繼服務(wù)器的無密碼 SSH 登錄。這樣的話,autossh 可以不需要用戶干預(yù)就能重啟一個(gè)損壞的反向 SSH 隧道。

  下一步,在建立隧道的家庭服務(wù)器上安裝 autossh。

  在家庭服務(wù)器上,用下面的參數(shù)運(yùn)行 autossh 來創(chuàng)建一個(gè)連接到中繼服務(wù)器的永久 SSH 隧道。

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

  homeserver~$ autossh -M 10900 -fN -o "PubkeyAuthentication=yes" -o "StrictHostKeyChecking=false" -o "PasswordAuthentication=no" -o "ServerAliveInterval 60" -o "ServerAliveCountMax 3" -R 1.1.1.1:10022:localhost:22 relayserver_user@1.1.1.1

  “-M 10900” 選項(xiàng)指定中繼服務(wù)器上的監(jiān)視端口,用于交換監(jiān)視 SSH 會(huì)話的測(cè)試數(shù)據(jù)。中繼服務(wù)器上的其它程序不能使用這個(gè)端口。

  “-fN” 選項(xiàng)傳遞給 ssh 命令,讓 SSH 隧道在后臺(tái)運(yùn)行。

  “-o XXXX” 選項(xiàng)讓 ssh:

  使用密鑰驗(yàn)證,而不是密碼驗(yàn)證。

  自動(dòng)接受(未知)SSH 主機(jī)密鑰。

  每 60 秒交換 keep-alive 消息。

  沒有收到任何響應(yīng)時(shí)最多發(fā)送 3 條 keep-alive 消息。

  其余 SSH 隧道相關(guān)的選項(xiàng)和之前介紹的一樣。

  如果你想系統(tǒng)啟動(dòng)時(shí)自動(dòng)運(yùn)行 SSH 隧道,你可以將上面的 autossh 命令添加到 /etc/rc.local。

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

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

  盡管這種方法聽起來很容易,但是由于防火墻沒有內(nèi)置的變動(dòng)管理流程,因此文件更改對(duì)于許多企業(yè)來說都不是最佳的實(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í),觀察誰進(jìn)行了何種更改。這樣就能及時(shí)發(fā)現(xiàn)并修理故障,讓整個(gè)協(xié)議管理更加簡(jiǎn)單和高效。

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

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

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

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

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

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


使用ssh訪問防火墻后的Linux服務(wù)器的方法是什么相關(guān)文章:

1.Linux查看ssh版本的方法

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

3.Linux禁止某個(gè)IP地址訪問的方法

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

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

4041667