服务器远程管理是一种技术,服务器远程管理是指通过远程连接来监控、配置和维护服务器的过程,而无需直接在物理服务器前操作。它允许IT管理员在不同的地点对服务器进行配置、监控和维护,无需物理上接触到服务器本身。这种能力对于管理分布在多个位置的服务器极为重要,尤其是在今天的全球化和云计算环境中。
目录
主要远程管理工具和技术
1.远程桌面协议(RDP)
2.安全壳(SSH)
3.Telnet
4.虚拟网络计算(VNC)
5.管理控制台
6.Windows管理工具
7.向日葵(Sunflower)
远程管理的关键特性
使用场景:
协议分析
RDP(图形化交互)
TELNET(命令行交互)
SSH(安全交互)
SSH与OpenSSH
SSH安全验证
SSH支持的三种端口转发类型
1.本地端口转发
2.远程端口转发
3.动态端口转发
协议对比
实验一、Telnet服务器
步骤1:安装Telnet服务
步骤2:启动并配置Telnet服务
步骤3:配置防火墙:
步骤4:组账户管理:
步骤5:测试Telnet连接:
注意事项:
实验二、Windows Server开启远程桌面服务RDP
步骤1:添加远程桌面服务
步骤2:设置远程桌面服务
步骤3:添加远程的用户并授予远程权限
步骤4:测试登陆
实验三、Windows 7 开启远程桌面服务RDP
步骤1:确认IP地址
步骤2:添加本地用户和组
步骤3:添加用户密码
步骤4:启用远程登录
步骤5:启用连接
实验四、Telnet Windows 7
实验五、OpenSSH
六、远程连接服务逻辑
Telnet
SSH (Secure Shell)
RDP (Remote Desktop Protocol)
总结
发展历史:
设计理念:
协议细节:
端口和协议号:
数据包结构:
标准化文档:
发展历史:
设计理念:
协议细节:
端⼝和协议号:
数据包结构:
标准化⽂档:
发展历史:
设计理念:
协议细节:
端⼝和协议号:
数据包结构:
标准化⽂档:
SSH(Secure Shell)是一个网络协议,用于加密方式远程登录到服务器及其他网络服务。它提供了安全的数据传输、远程命令执行、文件传输等功能。SSH是网络通信中常用的安全协议,被设计来替代不安全的Telnet协议。OpenSSH是一个SSH协议的免费开源实现,由OpenBSD社区开发和维护。
传统的⽹络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在⽹络上⽤明⽂传送⼝令和数据,别有⽤⼼的⼈⾮常容易就可以截获这些⼝令和数据。⽽且,这些服务程序的安全验证⽅式也是有其弱点的,就是很容易受到“中间⼈”(man-in- the-middle)这种⽅式的攻击。所谓“中间⼈”的攻击⽅式,就是“中间⼈”冒充真正的服务器接收你的传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间⼈”⼀转⼿做了⼿脚之后,就会出现很严重的问题。
SSH的英⽂全称是Secure SHell。通过使⽤SSH,你可以把所有传输的数据进⾏加密,这样“中间⼈”这种攻击⽅式就不可能实现了,⽽且也能够防⽌DNS和IP欺骗。还有⼀个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替telnet,⼜可以为ftp、pop、甚⾄ppp提供⼀个安全的“通道”。
最初SSH是由芬兰的⼀家公司开发的。但是因为受版权和加密算法的限制,现在很多⼈都转⽽使⽤OpenSSH。OpenSSH是SSH的替代软件,⽽且是免费的,可以预计将来会有越来越多的⼈使⽤它⽽不是SSH。
从客户端来看,SSH提供两种级别的安全验证
第⼀种级别(基于⼝令的安全验证)只要你知道⾃⼰帐号和⼝令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间⼈”这种⽅式的攻击。
第⼆种级别(基于密匙的安全验证)需要依靠密匙,也就是你必须为⾃⼰创建⼀对密匙,并把公⽤密匙放在需要访问的服务器上。如果你要连接到SSH 服务器上,客户端软件就会向服务器发出请求,请求⽤你的密匙进⾏安全验证。服务器收到请求之后,先在你在该服务器的家⽬录下寻找你的公⽤密匙,然后把它和你发送过来的公⽤密匙进⾏⽐较。如果两个密匙⼀致,服务器就⽤公⽤密匙加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以⽤你的私⼈密匙解密再把它发送给服务器。
⽤这种⽅式,你必须知道⾃⼰密匙的⼝令。但是,与第⼀种级别相⽐,第⼆种级别不需要在⽹络上传送⼝令。
第⼆种级别不仅加密所有传送的数据,⽽且“中间⼈”这种攻击⽅式也是不可能的(因为他没有你的私⼈密匙)。但是整个登录的过程可能需要10秒。
SSH端⼝转发是SSH的⼀项强⼤功能,它可以通过安全的SSH隧道将TCP端⼝从⼀个⽹络节点转发到另⼀个⽹络节点。这种⽅法经常⽤来保护那些本身不⽀持加密的⽹络协议的数据传输,或者创建安全的路径穿过防⽕墙。
本地端⼝转发允许你将本地计算机上的⼀个端⼝通过SSH连接转发到远程服务器上的特定端⼝。这样,任何发送到本地端⼝的数据都会被⾃动加密并通过SSH隧道发送到远程服务器。
例⼦: 假设你想安全地访问你办公室⽹络中的⼀个内部⽹站,该⽹站在内部端⼝80上运⾏,但这个⽹站在外部不可访问。你可以在你的本地机器上设置SSH本地端⼝转发,将本地端⼝8888转发到办公室服务器的端⼝80。通过访问你本地机器的端⼝8888,你可以安全地浏览内部⽹站,就好像你直接连接到办公室⽹络⼀样。
远程端⼝转发与本地端⼝转发相反,它允许你将远程计算机上的⼀个端⼝通过SSH连接转发回本地计算机的特定端⼝。这种⽅式允许远程服务器访问本地服务。
例⼦: 如果你在家中运⾏⼀个只能在本地访问的开发服务器,并希望你的同事从他们的远程位置访问这个服务器,你可以使⽤SSH远程端⼝转发。设定SSH远程端⼝转发,将你的开发服务器的端⼝(例如5000)转发到你办公室电脑上的端⼝(例如5000)。这样你的同事就可以通过访问办公室电脑上的指定端⼝来访问你家⾥的开发服务器。
动态端⼝转发创建⼀个SOCKS代理服务器,可以将通过该代理的所有TCP连接动态地转发到远程服务器,然后由远程服务器将流量转发到⽬标地址。这是⼀种⾮常灵活的⽅式,可⽤于安全地浏览⽹络或管理多个⽬标。
例⼦: 如果你需要安全地浏览互联⽹,或访问多个内部⽹络资源,但不希望设置多个特定的端⼝转发,你可以配置⼀个SSH动态端⼝转发。通过将你的浏览器或其他应⽤配置为使⽤本地设置的SOCKS代理,所有⽹络请求都将通过SSH隧道安全转发。这些端⼝转发⽅法扩展了SSH的功能,使其不仅仅是⼀个远程命令⾏⼯具,还是⼀个强⼤的⽹络⼯具,可以⽤于各种安全和管理任务。
实验步骤:
首先我们打开服务管理器:登陆到Windows Server 2012,选择服务管理器,然后选择添加角色和功能。
或
在添加角色和功能想向导中,点击下一步,然后选择“基于角色或基于功能”,点击下一步,选择要配置的服务器,点击下一步。
选择要配置的服务器,点击下一步。在“功能”页面中,向下滚动并勾选“Telnet服务器”选项,安装完成后关闭
打开服务管理器,选择工具,然后选择服务。在服务管理器中找到Telnet服务,右键选择“启动”
如果这里的启动是不可选的,我们需要先选择属性,在启动类型下拉菜单中将禁用改为自动或手动,然后再启用
首先需要允许Telnet通过防火墙。打开控制面板,进入 系统和安全—>Windows Defender防火墙
点击高级设置,进入防火墙高级设置
在左侧选择入站规则,点击新建规则
选择“端口”规则类型,点击下一步。选择TCP,在特定本地端口中输入23(Telnet默认使用端口23),点击下一步
选择允许连接,再根据需要选择该规则适用的网络类型(域、专用、公共),给规则命名,如允许Telnet,点击完成,之后会多出一条新的规则在最上面。
如果你嫌上面的配置太麻烦,其实在我们下载Telnet服务器的时候,就已经自动配置好了一条入站规则,名为“Telnet服务器”,只不过我在本实验中提前将它禁用了,自己手动配置了一条入站规则,在这个实验中,你完全可以使用它为你自动配置的这条规则。甚至,对于本实验,你可以直接关闭防火墙。
打开计算机管理,找到本地账户管理,选择组,在组里找到“TelnetClients”,在里面添加上自己的账户(注意:账户一定要设置密码)
此外,对于防火墙的设置,还可以添加允许远程访问的用户
使用Telnet客户端连接到服务器。在另一台计算机上(在下面我用text1举例),打开命令提示符(或终端),输入以下命令以测试连接到服务器:
telnet <服务器IP地址>
如果Telnet服务器工作正常,你应该能看到Telnet提示符,可以输入用户名和密码进行登录
在客户机上打开命令行,执行telnet命令。先查看好服务机的IP地址,然后切换到客户机进行远程登录
来到服务机,输入telnet命令来进行远程连接,如果连接成功的话会出现提示,询问我们连接可能不安全,是否继续,我们选择Y(是)
输入我们要连接的机子的用户名和密码,成功连接(注意,这里输入密码是不显示在屏幕上的)
当我们看到上面的页面,说明我们已经成功连接了,现在这个页面就相当于administrator的“终端”,我们可以在上面执行我们想要的操作,比如whoami查看身份,ipconfig查看地址等等
telnet在win10下是默认不开启的,需要我们手动开启一下。
在控制面板中,我们选择程序--启动或关闭Windows功能,然后勾选Telnet客户端选项,安装。等待一段时间让系统更新设置。
出现提示“telnet 不是内部或外部命令,也不是可运行的程序 或批处理文件。”之类的提示,原因是——你当前登陆的设备不是客户端,这时我们需要在电脑上再去安装一个Telnet客户端以匹配服务器的连接。
注意:
- 安全性:Telnet传输的内容是明文的,包括用户名和密码。因此,Telnet不建议用于生产环境中敏感信息传输。通常建议使用SSH代替Telnet,因为SSH提供加密连接
- 权限问题:只有管理员和授权用户才能通过Telnet连接到服务器。如果需要为其他用户授予Telnet访问权限,请确保用户属于正确的用户组或具有适当的权限
适⽤的情景为:需要对服务器开启⻓期、稳定、且不限制连接数的远程功能,即多⽤户、多终端可以同时远程登录到这⼀台服务器中;远程桌⾯服务开启的前提是:Windows系统必须已经激活,且允许远程访问已开启。
实验步骤:
打开“服务器管理器”,点击“添加角色和功能”,前面一直点下一步,和上个实验相似,在选择安装的服务器角色这步,勾选最下面的“远程桌面服务”
勾选上“远程桌面会话主机”和“远程桌面授权”两个(勾选时弹出的窗口默认直接点击确定即可),最后确认信息,点击安装。(在winserver2019中,第一个选项为英文Remote Desktop Session Host)
注意这一步需要管理员权限,我因为做完上个实验忘换回Administrator,还登陆在测试用户机上,没有权限,又重下了一遍……
首先打开运行,搜索组策略编辑器(gpedit.msc),定位展开“计算机配置–>管理模板—>windows组件—>远程桌⾯服务”,在远程桌面会话主机里面打开“授权”
路径:本地组策略编辑器--Windows组件--远程桌面服务--远程桌面会话主机--授权
在右边的设置项中双击第⼀个,为此计算机设置指定的远程桌⾯许可证服务器,勾选“已启⽤”,然后在下⾯输⼊许可证服务器的地址,也就是本机物理⽹卡实际的IP地址,如果有多个⽹卡IP也可以输⼊127.0.0.1代替,然后点应⽤,确定。
然后双击打开第三个配置项,设置远程桌⾯授权模式,勾选“已启⽤”,在选项参数中,切换为“按⽤户”,然后应⽤、确定。
打开之前安装的“远程桌⾯服务—>RD授权诊断程序”,这个程序是⽤来检测远程桌⾯服务配置是否正确,看到如下的内容,说明整个远程授权功能已经配置好了。
对于多⽤户的远程连接,还需添加Windows账户⽤户⽤来⽀持远程登录到这台服务器。⼀般情况下,⼀个Windows账户只能被使⽤⼀次来登录到⼀台机器中,如果重复使⽤该账户登录会把前⾯已经远程登录进来的⼈挤掉线。
系统初始只有⼀个administrator管理员账户,肯定⽆法多个⼈来共享使⽤,因此还需要添加多个其他Windows⽤户以⽀持不同的⼈在不同的地⽅远程登录到这台服务器。
⽤户创建完成之后,需要将这些⽤户添加到允许远程访问的⽤户组,否则在远程的时候会提示该⽤户未被允许远程连接。在控制⾯板-系统和安全-允许远程访问,打开系统属性窗⼝,点击“选择⽤户”-“添加”-“⾼级”-“⽴即查找”
这里添加的用户表示的是“我能登上哪几个用户的桌面”,与上个实验不同,这里添加的用户是被登陆者。
⾸先要保证是可以ping通服务器的,或者设置服务器的防⽕墙规则,开放出远程桌⾯连接的端⼝3389。此部分内容不再列举出来。运⾏,输⼊mstsc回⻋,打开远程桌⾯连接窗⼝,(或者直接搜索远程桌面连接)输⼊远程服务器的IP地址和登录账户及密码
正确输入密码后,成功连接到桌面。
查看网络访问类型及IPv4地址
win+R运行---mmc---控制台---文件---添加 本地用户和组
net user admin 123.com #修改admin账号密码 net user test 123.com /add #创建账号 net localgroup administrators test /add #添加账号test到管理员组
和之前的连接方法一样,输入正确的IP地址以及密码,成功连接
实验步骤:
成功接入,实验结束
实验步骤:
ssh administrator@172.16.130.148
至此,我们成功通过SSH登录,可以在win10上执行任何操作了
Telnet、SSH和RDP是三种常用的远程连接协议,它们各自有不同的逻辑和用途:
1. **建立连接**:
- 用户在客户端输入`telnet [服务器IP] [端口]`命令尝试连接到远程服务器。
2. **认证**:
- Telnet协议本身不提供加密认证,用户需要在连接后通过操作系统的认证机制登录。
3. **数据传输**:
- 一旦认证成功,用户可以在本地输入命令,这些命令会发送到远程服务器执行,并将结果返回给用户。
4. **安全性问题**:
- Telnet以明文传输数据,容易受到监听和中间人攻击,因此不推荐在不安全的网络中使用。
5. **使用场景**:
- 由于安全问题,Telnet在现代网络中很少使用,主要用作教学或测试某些简单服务。
1. **建立安全连接**:
- 用户使用SSH客户端通过指定的端口连接到SSH服务器。
2. **认证**:
- 用户可以通过密码或更安全的密钥对(公钥/私钥)进行认证。
3. **数据加密**:
- SSH在客户端和服务器之间建立一个加密的隧道,确保传输的数据安全。
4. **命令执行和数据传输**:
- 用户可以在加密的会话中执行远程命令,传输文件,或使用端口转发等高级功能。
5. **使用场景**:
- SSH广泛用于安全地访问远程服务器,进行命令行操作,数据传输,以及作为其他协议的安全通道。
1. **建立连接**:
- 用户使用RDP客户端程序连接到配置了RDP服务的远程计算机。
2. - **图形界面传输**:
- RDP优化了图形界面的传输,允许用户访问远程计算机的桌面环境。
3. **认证**:
- 用户需要提供有效的用户名和密码进行认证。
4. **交互式操作**:
- 用户可以在远程桌面上进行交互操作,就像直接在物理机前操作一样。
5. **资源优化**:
- RDP对带宽和资源使用进行了优化,适合图形界面的远程访问。
6. **使用场景**:
- RDP主要用于Windows环境中,允许用户远程访问应用程序和整个桌面环境,适合需要图形界面操作的场景。
- **Telnet**:简单但安全性低,主要用于教学或测试。
- **SSH**:提供加密的远程命令行访问和安全的文件传输,适用于多种操作系统。
- **RDP**:提供完整的图形界面访问,适合需要交互式操作的环境,主要用于Windows系统。
每种协议都有其特定的用途和优势,选择哪种协议取决于用户的需求和安全考虑。