什麼是跳板機?XShell如何通過跳板機連接內網機器?

一、瞭解跳板機

 跳板機Jump Server),也稱堡壘機,是一類可作爲跳板批量操作遠程設備的網絡設備,是系統管理員或運維人員常用的操作平臺之一。

  跳板機是網絡中容易受到侵害的主機,所以跳板機也必須是自身保護完善的主機。通常至少配備兩塊網卡設備,分別具備不同的網絡連接。一個連接外網,用以對目標服務器的遠程登錄及維護;另一個則連接內網,便於內部網絡的管理、控制和保護,通過網關服務提供從私網到公網,或從公網到私網的特殊協議路由服務。

二、簡單的跳板機實現

1.要求

  • 跳板機上爲每個開發人員創建一個賬號,並且只能在指定的目錄裏管理自己的文件。
  • 線上生產服務器,禁止使用root用戶遠程登錄。
  • 線上生產服務器sshd服務不允許使用默認端口,防止黑客通過端口掃描。
  • 線上生產服務器上開發人員使用的賬號code用戶的密碼使用工具隨機生成。

2.分析

  • 在跳板機上爲開發人員創建賬號
  • 公共目錄需要有高級權限
  • 禁止root用戶遠程登錄系統
  • 更改ssh協議的端口號
  • 內網環境下安裝軟件

3.拓撲圖

4.環境的介紹

  • PC爲本機,已禁用VMware網卡1,本機IP爲192.168.39.39/2

  • Jump-server爲centos6虛擬機,安裝兩塊網卡,ip分別爲192.168.189.132/24; 1192.168.189.132/24,跳板機能夠ping通PC和Service

  • service爲Centos6虛擬機,安裝一塊網卡,IP爲192.168.189.128

  • 目前PC端無法連接192.168.189.0/24網段的所有IP

  • 兩個Centos均安裝openssh-client和openssh-service

5.實驗具體步驟

(1)創建用戶並增加相應權限

[root@jiangfeng1 ~]# groupadd coding
[root@jiangfeng1 ~]# useradd -G coding code1
[root@jiangfeng1 ~]# useradd -G coding code2
[root@jiangfeng1 ~]# echo 123456 | passwd --stdin code1

#更改用戶 code1 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
[root@jiangfeng1 ~]# echo 123456 | passwd --stdin code2

#更改用戶 code2 的密碼 。
passwd: 所有的身份驗證令牌已經成功更新。
[root@jiangfeng1 ~]# mkdir -p /code/data
[root@jiangfeng1 ~]# chown :coding /code/data/
[root@jiangfeng1 ~]# chmod 1770 /code/data/
[root@jiangfeng1 ~]# ll -d /code/data/
drwxrwx--T 2 root coding 4096 7月  20 03:33 /code/data/

(2)禁止root遠程登錄和更改默認端口號

在Service端更改ssh服務的配置文件, vi /etc/ssh/sshd-config。

 注:儘量不要更改配置文件註釋的信息,如若需要更改,先複製一行在進行更改。

(3)用戶密碼隨機

因爲我的service端爲僅主機模式,所以無法連接互聯網,所以我需要在Jump-service緩存下安裝包,在通過scp發送到service端。

[root@jiangfeng1 network-scripts]# yum install pwgen
…………
已安裝:
  pwgen.x86_64 0:2.08-1.el6                                                                                                       

完畢!
[root@jiangfeng1 6]# scp -P 10001 /var/cache/yum/x86_64/6/epel/packages/pwgen-2.08-1.el6.x86_64.rpm [email protected]:/tmp
The authenticity of host '[192.168.189.128]:10001 ([192.168.189.128]:10001)' can't be established.
RSA key fingerprint is df:28:9d:09:a3:bf:52:a6:e5:ce:f2:a4:04:0d:b8:cc.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[192.168.189.128]:10001' (RSA) to the list of known hosts.
[email protected]'s password: 
pwgen-2.08-1.el6.x86_64.rpm                                                                     100%   25KB  24.5KB/s   00:
[root@jiangfeng1 6]# pwgen -cnsB1 15 1
ajxmHfcUaT4Azht
[root@jiangfeng1 6]# echo ajxmHfcUaT4Azht | passwd --stdin code

(4)測試

1.從PC端直接連接service

無法連接service。

2.從PC端通過Jump-service遠程service

驗證成功!!!

三、利用XShell隧道通過跳板機連接內網機器

這裏先重新假設一下服務器情況,因爲在企業裏面內網環境和線上環境肯定不在一個網段的。這裏假設跳板機地址:220.101.5.5,內網服務器兩臺:192.168.100.5 192.168.100.6。SSH開放端口都假設爲22,通常就是22。

1.首先建立跳板機的連接,並配置隧道。打開XShell點擊文件菜單再點擊新建彈出新建會話屬性窗口,名稱就取爲跳板機,端口是22,主機填寫前面假設的ip地址。如下圖所示:

2.點擊用戶身份驗證,填寫登錄跳板機的SSH用戶名和密碼如下圖所示:

3.爲防止跳板機連接過久自動斷開,所以這裏添加登錄腳本直接發送top命令。點擊登錄腳本,勾選上執行以下等待併發送規則,點擊添加彈出等待發送規則添加窗口,在發送框填寫top。具體配置看圖

4.接下來繼續配置連接內網服務器的隧道,點擊隧道再點擊添加按鈕進入隧道添加頁面,源主機爲本機localhost,偵聽端口可以在有效範圍內隨便填寫,這裏爲了區分連接內網哪臺服務器,所以用內網服務器ip最後一位加22即522作爲偵聽端口。目標主機就是我們要通過跳板機訪問的內網主機,端口是22。同樣的操作再配置一個連接192.168.100.6的隧道,端口不能與522衝突,按剛纔的規則可以用622端口。具體配置如下圖:

5.到此跳板機的配置已經完成了,下面來建立通過跳板機登錄內網服務器的連接會話,首先還是進入新建會話屬性窗口,注意一下這次的配置,主機爲localhost,偵聽端口爲剛纔的522,即這個配置連接之後是訪問內網的192.168.100.5服務器,再配置一下用戶身份驗證,填寫內網服務器的賬號和密碼,可以再添加一下登錄腳本,直接發送進入日誌服務器的命令,比如:cd /tmp/logs/xxx這樣每次一連接上就進入日誌目錄。這樣一臺內網服務器的連接配置就完成了,同樣的操作再配置192.168.100.6的連接,端口爲622。具體如下圖:

6.到此跳板機、隧道及內網的兩臺服務器連接都配置完成了。下面就該測試連接了,先打開跳板機的連接,再打開兩臺內網服務器的連接,若正常連接上就配置正確了。特別注意:跳板機一定要先打開,因爲內網服務器的連接都是基於跳板機的偵聽端口。如下圖所示

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章