一般的遠程訪問步驟:
(1)選定某一種遠程訪問協議,如RDP,VNC,SSH,TelNet等;
(2)分別安裝對應協議的“服務端軟件”和“客戶端軟件”;
(3)在服務端啟動對應的協議,並進行一些自定義的服務配置;
(4)通過客戶端遠程連接。
一、Telnet協議
Telnet協議是TCP/IP協議族中的一員,是Internet遠程登陸服務的標准協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制台上輸入一樣。可以在本地就能控制服務器。
1. Telnet服務的安裝
Telnet有兩個安裝包:telnet-server和telnet
telnet-server安裝包是服務器端的安裝包,telnet是客戶端的安裝包,一般系統默認都已經安裝了這兩個包,可以先使用此命令查詢:
rpm –q telnet-server
1)啟動和停止Telnet服務
Telnet不像其它服務(如HTTP和FTP等)一樣作為獨立的守護進程運行,它使用xinetd程序管理,這樣不但能提高安全性,而且還能使用xinetd對Telnet服務進行配置管理。
Telnet服務安裝后默認並不會被xinetd啟用,可以通過修改文件/etc/xinetd.d/telnet將其啟用。編輯文件/etc/xinetd.d/telnet,找到語句disable=yes,將其改為disable=no即可。
2)Telnet服務的配置
2.1)Telnet服務最大連接數
可以通過編輯文件/etc/xinetd.d/telnet,在花括號{}中添加語句instances=3來配置telnet服務的最大連接數,這里的3指telnet服務同時只允許3個連接。
2.2) Telnet服務的端口
Telnet服務默認的端口為23,出於安生性考慮,可以更改服務器監聽的端口,通過編輯文件/etc/services來修改各個服務的端口,找到telnet選項,修改其數值即可。如要改為2323,即:
telnet 2323/tcp
telnet 2323/udp
2. Telnet客戶端的使用
通過telnet命令即可登錄
如Telnet服務器的IP地址為192.168.1.109
在客戶端(windows和linux)命令行里輸入:
telnet 192.168.1.109
然后輸入用戶和口令即可,在這里,系統不允許root用戶通過telnet登錄,所以這個用戶是除root用戶的其它用戶,登錄后可以使用su – 命令切換成root用戶,這樣就OK了。
注:telnet在傳輸機制上是有安全漏洞的,因為它在傳輸數據時使用明文機制。
二、Rlogin協議
Rlogin最初是是現在unix系統中的遠程登錄協議。由於客戶端進程和服務器進程已經事先知道了對方的操作系統類型,因此也就省去了選項協商機制。
默認使用TCP 513端口。
rlogin使用:
# chkconfig --list //檢測rlogin服務是否開啟 # chkconfig rlogin on //開啟rlogin服務
//指定用戶名登錄(也可以直接rlogin IP登錄) # rlogin 192.168.1.88 -l hnlinux Passord: Last login:Mon May 28 15:30:25 from 192.168.1.88
注:總的來說,rlogin與telnet協議類似,在傳輸機制上是有安全漏洞的,因為它在傳輸數據時使用明文機制。
三、SSH協議
SSH 為 Secure Shell 的縮寫,由 IETF 的網絡工作小組(Network Working Group)所制定;SSH 為建立在應用層和傳輸層基礎上的安全協議。SSH 是目前較可靠,專為遠程登錄會話和其它網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題。
SSH有兩個不兼容的版本——SSH1和SSH2。
SSH1采用DES、3DES、Blowfish和RC4等對稱加密算法保護數據安全傳輸,而對稱加密算法的密鑰是通過非對稱加密算法(RSA)來完成交換的。SSH1使用循環冗余校驗碼(CRC)來保證數據的完整性,但是后來發現這種方法有缺陷。
SSH2避免了RSA的專利問題,並修補了CRC的缺陷。SSH2用數字簽名算法(DSA)和Diffie-Hellman(DH)算法代替RSA來完成對稱密鑰的交換,用消息證實代碼(HMAC)來代替CRC。同時SSH2增加了AES和Twofish等對稱加密算法。
1. ssh安裝
Linux下廣泛使用免費的OpenSSH程序來實現ssh協議,它同時支持SSH1和SSH2協議,Openssh軟件包包括兩部分:openssh-server和openssh-client,它們分別打包在不同的RPM包中,同時都需要依賴openssh軟件包。
可以使用如下命令檢查是否已經安裝OpenSSH
rpm –qa openssh
(1) SSH服務的配置
配置SSH服務的運行參數,主要是通過修改配置文件/etc/ssh/sshd_config來實現的,這里面的選項特別多,但大部分都是使用#注釋的,這是因為SSH服務使用默認配置已經能夠很好的工作了
設置SSH服務監聽的端口號
#port 22
設置使用SSH協議的順序
#protocol 2,1
設置SSH服務器綁定的IP地址
#listenaddress 0.0.0.0
設置是否允許root管理員登錄
#permitrootlogin yes
設置是否允許空密碼用戶登錄
#permitemptypasswords no
設置是否使用口令認證方式
#passwordauthentication yes
每次修改配置文件/etc/ssh/sshd_config后,都需要重新啟動SSH服務才能使新的配置生效。
(2) 啟動和停止SSH服務
/etc/init.d/sshd start|stop|restart|status
2.SSH客戶端的使用
(1)linux客戶端
在linux客戶端,可以使用命令ssh登錄,如果SSH服務器的IP地址為192.168.1.109,登錄命令如下:
//ssh 用戶名@主機名或主機IP ssh root@192.168.1.109
根據提示輸入口令即可,這個口令是root用戶的口令,所以登錄之后就是root用戶身份了。
(2)windows客戶端
在windows客戶端是無法使用ssh命令的,但是有許多SSH客戶程序,如Xshell,SecureCRT,putty等。推薦使用免費的PuTTY程序,它小巧好用,而且是一款無需安裝的綠色軟件。
注:(1)SSH是比較可靠的的遠程登錄和其他安全服務的協議,它采用了數據加密機制,能夠防止DNS欺騙和IP欺騙。(2)所傳輸的數據是經過壓縮的,因此相對來說加快了傳輸速度。
四、RFB協議-VNC就是基於此協議
RFB協議即圖形化遠程管理協議,vnc遠程管理工具就是基於此協議。
Telnet和SSH服務只能實現基於字符界面的遠程控制,利用VNC可以實現圖形化的遠程控制。VNC是virtual network computing的縮寫,也就是虛擬網絡計算機,VNC軟件由兩個部分組成:VNC server和VNC viewer,用戶需要將VNC server安裝在被控制的計算機上,然后在主控制端執行VNC viewer控制被控制端。
1.安裝vnc-server
首先可以用如下命令查詢VNC服務是否安裝:
rpm -q vnc-server
如果未安裝,則使用如下命令安裝:
yum install vnc-server //或者使用下載的vnc的rpm包安裝 rpm -ivh vnc-server-4.1.2-9.el5.x86_64.rpm
2.配置vnc用戶,密碼及桌面號,重啟vnc服務
第一步:root用戶登錄系統,命令行輸入vi /etc/sysconfig/vncservers 回車
第二步:按i建進入編輯,在最末端加入每一個用戶的配置信息,注意每個用戶有不同的桌面配置號,一定不要相同。如下配置:
VNCSERVERS="2:root 3:ymx 4:wjx 5:wxy" VNCSERVERARGS[2]="-geometry 1360x768" VNCSERVERARGS[3]="-geometry 1364x768" VNCSERVERARGS[4]="-geometry 1362x768" VNCSERVERARGS[5]="-geometry 1362x768"
2:root 3:ymx 4:wjx 5:wxy’中的‘2 3 4 5’是為每一個用戶桌面號,和[2]、[3]、[4]、[5]對應;
第三步:編輯完畢后,按esc鍵——>按shift +X鍵,回車保存配置。
添加完成后,vnc服務每次啟動時都會自動創建這些桌面號。如果只需要啟動桌面號為1的桌面可以執行命令"vncserver:1",使用"service vncserver start"會啟動全部vnc桌面服務。
注:1.vnc服務使用的TCP端口號從5900開始例如桌面號為1,則使用的端口號為5901,桌面號為2,則使用的端口號為5902。基於java的vnc客戶程序web服務TCP端口號從5800開始,即5801、5802,以此類推
2.ymx,wjx等用戶需要提前使用useradd命令創建至系統。
第四步:配置每一個vnc用戶的登錄密碼
注:要對每一個用戶進行設置,設置前要用第一步的命令su – ymx切換進入ymx用戶shell下。
如果vnc用戶中有root則不用切換(默認root用戶登錄系統的話),不過使用root用戶運行vnc是不安全的行為,如果有vnc未授權訪問漏洞時會造成很大威脅,應該以最小普通權限身份運行。
① 執行su -ymx命令
② 執行vncpasswd命令,對ymx用戶進行設置VNC登錄密碼,輸入兩邊密碼。
重復以上兩步對其它用戶進行VNC登錄密碼設置
第五步:root用戶登錄系統,在終端命令行輸入service vncserver restart 重新啟動vnc服務,使之前的配置生效。(vnc啟動和停止可以用service vncserver start|stop命令)
3. 將vncserver設置為隨系統啟動
chkconfig vncserver on
或者: chkconfig vncserver --level 5 on
4.客戶端連接及使用
a、在linux下,運行vncviewer命令即可,安裝方法和vnc server相似,服務器地址如192.168.1.11:1
b、在windows下,運行windows版本的vncviewer即可,用法與linux下相近。
c、用瀏覽器(平台無關),作為java applet來實現,以形如http://192.168.1.11:5801 的方式來啟動
注:如果連接不上可能是因為防火牆阻攔,可以用 service iptables status或ps axf | grep iptables查看防火牆狀態。
解決的話,可以關閉防火牆
service iptables stop
也可以在防火牆規則中開放相關端口(假如vnc端口號為5901,5902)
iptables -I INPUT -p tcp --dport 5901:5902 -j ACCEPTiptables -A INPUT -p tcp --dport 5901:5902 -j ACCEPT //在iptables文件末尾添加完之后,記得保存並重啟iptables生效
五、RDP協議-遠程桌面連接
RDP應用廣泛,基本各平台上均可使用。Windows自帶RDP,其Mstsc(Microsoft terminal service client)就是一 個典型的應用,默認監聽TCP端口3389和UDP端口3389。它使得遠程用戶能夠通過鼠標、鍵盤等在應用程序間進行通信。
1. Windows遠程控制Linux
通過RDP協議,Windows遠程控制Linux的時候,Windows不需要安裝什么,只需要在Linux上安裝對應的軟件即可,即所謂的RDP服務器。
(1)Linux安裝xrdp (RDP服務器)
希望在Windows上用RDP協議遠程登錄到Linux系統比較麻煩,需要xrdp。它是一個RDP服務端,可以讓我們用遠程桌面方式登錄到Linux系統。
首先要安裝xrdp。
sudo apt install xrdp
(2)啟動xrdp服務(linux要啟動RDP協議的服務才行,即要允許遠程訪問)。
sudo systemctl enable xrdp sudo systemctl start xrdp
現在應該可以使用Windows自帶的遠程桌面工具來連接到Linux系統了。
2. Linux遠程控制Windows電腦
可以通過grdesktop軟件來控制遠程Windows(圖形化界面),也可以使用rdesktop 軟件(命令行)
安裝命令
sudo apt install grdesktop
安裝之后打開軟件輸入IP,用戶名,密碼等信息即可連接。
當然對應的Windows系統別忘了開啟允許遠程連接到本計算機,否則用什么客戶端也是無法連接的。
注:RDP支持圖形化界面,但需要處理圖像界面,占用CPU較高。另一個缺點就是如果平台不同的話,顯示效果其實是很差的,RDP協議還是在Windows間使用比較適合。
參考原文: https://blog.csdn.net/weixin_39662594/article/details/111524609
https://www.zhihu.com/tardis/sogou/art/84800382
https://www.cnblogs.com/wangyuehan/p/9807628.html
