常⽤⼏种远程控制协议总结(telnet,rlogin,ssh,rfb,rdp)
⼀般的远程访问步骤:
(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 2815:30:25 from 192.168.1.88
注:总的来说,rlogin与telnet协议类似,在传输机制上是有安全漏洞的,因为它在传输数据时使⽤明⽂机制。
三、SSH协议
SSH 为 Secure Shell 的缩写,由 IETF 的⽹络⼯作⼩组(Network Working Group)所制定;SSH 为建⽴在应⽤层和传输层基础上的安全协议。SSH 是⽬前较可靠,专为远程登录会话和其它⽹络服务提供安全性的协议。利⽤ SSH 协议可以有效防⽌远程管理过程中的信息泄露问题。
telnet远程登录配置
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,以此类推
<,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来实现,以形如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间使⽤⽐较适合。
参考原⽂: blog.csdn/weixin_39662594/article/details/111524609
www.zhihu/tardis/sogou/art/84800382
wwwblogs/wangyuehan/p/9807628.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。