计算机网络知识-SSH与端口转发

工作室马上要面试21新生了,重新回顾了一些知识。

SSH是什么?

SSH是一个为远程登录会话和其他网络服务提供安全性的协议。其采用对称加密和非对称加密保障安全性。

SSH最早好像是为了制定安全协议而设计的,作为Telnet等协议的替代。Telnet也是一个远程交互协议,但是其与1970年设计,那时的互联网你懂的,一小撮人玩的小东西,那时好像还假设使用网络的都是可靠可信任的人呢。

SSH的大致流程。

 

  1.  开始是经典的TCP三次握手,确认连接
  2. 进行SSH的相关信息协商,像SSH版本什么的,类似OpenFlow协议的协商
  3. 之后client会向server请求信息,server会返回其的公钥(有说法好像会返回两个公钥,但我也没怎么考究)。这个地方牵扯到一个经典的中间人攻击,下面会具体谈一下。
  4. 在获取server的公钥后,client端会通过Diffie-Hellman算法(client和server的信息都贡献一半)生成一个Session密钥(由于密钥的生成还涉及md5非对称加密),接着通过server的公钥加密密钥发送给server。
  5. server在发送Session密钥后,会等待服务器进行一次以密钥加密的响应,最后建立SSH连接。

SSH通过巧妙的方式建立安全连接,提高了安全性。不过由于SSH的过程较为复杂,对于管理人员的要求较高以及在ip解析资源不充分的情况下带来的延时,部分场景仍偏向于使用Telnet。

中间人攻击

 

 

比方说AB之间要建立连接,C可以作为AB间的交换塔,偷偷在AB间将公钥交换为自己的公钥,这样实际上不是A与B进行连接,而是A与C、B与C进行连接。AB间的隐私C便可以一览无遗了,正是为了防范这个情况,当SSH收到服务器的公钥不在已知host中时,会发送一个判断。虽然这个防范看起来挺弱的,不过应对远程管理这种场景校验公钥不失为一种有效的方法。

端口转发

端口转发服务是由一组端口转发规则定义的策略。一个端口转发服务可以应用到一个或更多的虚拟机。然后虚拟机的入站网络访问就根据端口转发服务所定义的策略进行管理。SSH可以利用端口转发技术传输其他的TCP/IP报文。

一个场景是一个具有公网IP和内网IP的机子和多个仅具有内网IP的机子,如果外界想要访问,可以通过端口转发来实现。

 

 感觉有点像NAT。

 

posted @ 2021-10-04 22:50  爪哇菜鸡  阅读(107)  评论(0)    收藏  举报