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