`
hcegg
  • 浏览: 32235 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

SSH原理(转发)

    博客分类:
  • SSH
 
阅读更多
很多设备,如路由器、防火墙等等,都提供了一种远程访问与管理的接口。如Windows服务器可以利用Telnet协议进行远程管理等等。但是,Telnet不怎么安全。因为其在传输过程中,帐户与密码都是明文传输的。在网络传输过程中,这是非常危险的。因为黑客通过一些网络嗅探工具,能够轻易的窃取网络中明文传输的帐户与密码。故,笔者是不建议通过Telnet协议对网络设备与服务器进行远程管理。   针对Telnet协议不安全这种情况,有人开发出了一个SSH协议。其原理跟Telnet类似,只是其具有更高的安全性。SSH是一个运行在传输控制层上的应用程序。他跟Telnet相比,提供了强大的认证与加密性能。他可以保证在我们连接到网络设备的过程中,其传输的数据是加密处理过的。这么做,就是为了保障帐户与口令的安全。
  一、SSH软件包的构成。
  SSH软件包由服务器端与客户端两部分构成。服务器端主要是安装在被控制端,即我们需要进行远程管理的对象。而客户端就是安装在操作方的主机上。SSH软件包适用于所有的操作系统,包括微软、Linux以及思科公司的IOS操作系统等等。不过具体的应用上,还是有一定的差别。如SSH服务器端之能够安装在微软的服务器版本中,而在Linux系统上在没有这个限制,等等。
  另外,现在的SSH主要包括两个版本,分别为SSH1 与SSH2。SSH1是一个完全免费的软件包;而SSH2则是一个需要付费的软件包。天下没有免费的午餐,SSH2付费版的功能要比SSH1 免费版的功能强大的多。但是,因为其要付费,所以其应用范围还没有SSH1 广。在实际应用中,需要注意SSH2与SSH1版本是两个完全不同的协议并且互不相容。也就是说,你服务端装的是SSH2版本,但是,若你客户端装的是SSH1版本的,则无法利用这个客户端连接到服务器上去。因为两者不兼容。这是在工作中,需要十分注意的一个问题。
  二、SSH的认证方式。
  一般来说,SSH提供了两种安全认证方式。
  一是基于口令的安全认证。在这种认证方式下,用户只需要知道帐户与口令,就可以利用SSH协议远程登陆到服务器。在这种认证模式下,其传输的数据,包括用户名与密码,是密文传输的。但是,他有一种缺陷。也就是说,他不能够保证你正在连接的服务器就是你想连接的服务器。因为他不会验证客户端与服务器端的身份,所以,可能会有人冒充真正的服务器,而管理员却不知情。这种攻击方式,又叫做“中间人”攻击。也算是一个比较“著名”的攻击方式了。
  二是基于密钥的安全认证。在这种安全认证方式下,需要依靠密钥进行认证。此时,用户需要为自己创建一对密钥。用户要通过其他安全的方式,把公钥方在需要远程管理的服务器上。当管理员连接到SSH服务器上的时候,客户端会向服务器发出请求,要求其利用客户端的密钥进行安全性认证。服务器收到客户端的请求后,就会利用你事先发给他的公钥进行比较、辨别。如要两个密钥一致的话,服务器就用公钥加密质询并把它发送给客户端软件。客户端软件接收到服务器的质询后,就可以利用私人密钥进行解密并把结果发送给服务器。这种方式跟第一种方式相比,就是可以保障SSH服务器的合法性,有效的避免“中间人”攻击。
  现在SSH1与SSH2两个版本的SSH软件包,都支持这种安全认证方式。由于后一种安全认证方式比较复杂。故用户登录到服务器的时间可能会比较长,有时候甚至会需要一分钟的等待时间,甚至更长。当开始第一个会话的时候,在SSH用户认证提示出现之前,会在客户端上有一个“.”号提示符。一般情况下,这个提示符并不影响SSH的功能。当用户在SSH密钥交换期间,使用私钥生成服务器密钥或者加密一个消息的时候,在用户认证出现之前,这个提示符将会出现在SSH客户端上。我们可以把它看作是一个进程指示器,表示SSH正忙,没有当机。这个过程根据网络状况的不同,持续的时间也有长短。一般在两分钟以内的,可以当作正常情况。若超过这个时间的话,则管理员就需要调整相关的配置,不然会对SSH的正常操作产生影响。
  不过采用第二种认证方式的话,会给管理员一个额外的收获。如果你的网络中,有很多个SSH服务器。如一个FTP文件服务器还有一个Cisco防火墙,你都部属了一个SSH服务器的话,则此时你作为管理员,就可以只用一个口令就登录到所有你想登录的服务器上去。
  三、配制实例。
  由于SSH采用了加密机制,所以其配制起来比Telnet协议要复杂一点。下面笔者就以Cisco的防火墙服务器为例,看看如何配置SSH协议,让其在服务器上生效。
  为了让防火墙启用SSH服务,则需要通过五个步骤。
  第一步:配置防火墙主机名。
  这个步骤虽然不是启用SSH服务的必备步骤。不过,笔者还是建议用户给防火墙起一个合适的名字。当通过客户端访问SSH服务期的时候,输入名字要比输入IP地址简单的多。而且,名字也比枯燥无味的数字好记的多。故起一个容易记忆的SSH服务器名字,是SSH服务器管理的基础。
  在Cisco防火墙中,可以利用hostname命令来配置SSH服务器的名字。为了便于识别,一般在取名的时候,需要符合一定的规则。如利用“设备名称-实体名字”规则来命名。
  第二步:生成密钥对。
  在Cisco防火墙中,其建议采用的是“密钥认证安装方式”。所以,需要为其生成密钥对。这个步骤也很简单,因为防火墙中已经有默认的事项方式。管理员只需要在命令行中,输入:ca generate rsa key 1024这个命令,防火墙操作系统就会自动生成一个密钥对。密钥对生成后,管理员还需要使用命令CA SAVE ALL命令,把这个密钥对保存起来。
  这里要注意,不同的系统采用的加密机制不同,所以,生成的密钥对方式也不同。作为企业安全管理人员来说,应该对密钥生成的方式有一个统一的规划。在安全允许的情况下,最后在公司内部统一安全密钥的生成方式。这可以大大的减少我们维护的工作量。
  第三步:指定客户端的IP地址。
  Cisco防火墙为了提高远程管理的安全性,特别进行了一个IP地址的过滤。在SSH服务器上,必须指定客户端的IP地址。只有允许的Ip地址,才可以通过SSH客户端连接到SSH服务器上。
  这是一个很重要的安全控制手段。通过这种方式,则只有特定的客户端才可以利用SSH协议远程管理防火墙。而未经授权的客户端无权进行访问。这让SSH远程管理安全性更有保障。
  管理员可以利用ssh ip_adress 命令,来配置允许访问的客户端IP地址。一般情况下,只允许管理员才可以通过SSH方式访问远程主机。
  第四步:设置访问口令。
  为了保障SSH的安全,虽然已经限制了客户端,但是仍然非常有必要为其设置一个访问帐户与口令。有时候,SSH服务器也会有默认的用户名。但是,为了SSH服务器的安全,笔者强烈建议用户在第一时间把这个默认密码改掉。在第一时间更改服务器与设备的默认帐户与密码,是网络安全人员要养成的一个必备的工作习惯。在SSH中,可以采用password命令来更改SSH的登陆用户名。
  第五步:设置空闲时间。
  最后,还需要设置一个会话在断开前的空闲时间。这跟屏幕保护类似。有时候你可能有其他的事情,需要离开SSH客户端一段时间。但是,此时你人已经离开了,但是SSH会话没有中断掉。若此时有人利用你离开的这段时间,搞破坏动作,那该怎么办呢?
  所以,我们需要像设置屏幕保护一样,给SSH会话设置一个最大的空闲时间。当超过这个时间后,SSH服务器会自动中断这个会话,从而保障SSH服务器的安全。此时,我们可以利用ssh tineout命令来设置这个最大空闲时间。其单位是分。默认情况下,其最大的空闲时间为5分钟。
  在客户端上,一般不需要进行额外的配置。只是在客户端选择上,要考虑兼容性问题。即你在服务器上若选择的是SSH1版本的话,则客户端也必须是SSH1版本的。若服务器端是SSH2的,则客户端也要选择SSh2版本的。
若需要管理多台SSH服务器的话,有两种便捷的方式。一是通过上面的“安全密钥认证方式”。如此的话,只需要一个帐户与口令,就可以对所有的SSH服务进行管理。二是在SSH客户端上可以保存相关的配置。当管理员需要访问某台SSh服务器的时候,只需要在客户端上进行选择,而不用重复的输入服务器端的配置,如IP地址与端口等等。
分享到:
评论

相关推荐

    SSH端口转发原理PPT课件

    详细介绍SSH端口转发的概念和原理,具体阐释其过程,举例说明如何通过SSH端口转发实现外网远程控制内网PC

    SSH的三种端口转发机制以及实际应用

    1.SSH的三种端口转发机制 2.端口转发的实际应用以及需求

    Ghoster:使用单个服务器通过 SSH 公开您的本地服务,很棒的 ngrok.io 替代方案

    它的工作原理是托管实例,并允许其他人在只安装 SSH 的情况下转发他们的服务。 例如,假设您在 ghoster_server.com 上托管此项目,如果用户想在端口3000公开其本地站点,他们可以执行以下操作: ssh user@...

    H3CSE V2.0 视频新.zip

    第3章 路由控制与转发 第4章 路由协议基础 第5章 路由负载分担与备份 第6章 路由聚合与CIDR 第7章 OSPF协议基本原理 第8章 配置和优化OSPF协议 第9章 配置OSPF高级特性 第10章 IS-IS基本概念 第十一章 IS-IS协议原理...

    HCIA-Datacom数据通信-视频教程(PPT课件+实验手册).zip

    05-交换机工作原理 学习 转发行为 06 arp协议 07-VRP系统基本操作 08 设备升级 09 IP编址基础概念 10 IP子网划分 11 IP报文 12 icmp 路由基础 13 路由选路规则 PC收发逻辑 14 静态路由 icmp重定向 15 ip分片 udp 16 ...

    仅用50行Python代码实现一个简单的代理服务器

    本来想通过ssh端口转发的,但是我没有从机器A连接ssh到B的权限。于是就自己用python写一个。   原理很简单。 1.开一个socket server监听连接请求 2.每接受一个客户端的连接请求,就往要转发的地址建一条连接请求。...

    Xming+putty

    同时,OpenSSH具有X转发功能,可以将Linux主机的X程序通过SSH的管道转发给客户端。于是,通过PuTTY到主机,再将接收到的由主机转发来的X程序的交互交给在本地Windows系统下运行的X Server来管理和显示,原则上说,这...

    H3CSE V2.0 培训视频教程【MP4版】【共三科73集】.rar

    目录:网盘文件永久链接 BGL MPLS VPN BGP基础 BGP增强配置 BGP属性控制 EPON&EPCN&DSL GRE over IPsec VPN GRE VPN HA概述&链路聚合 ...路由控制与转发&路由负载与备份 路由策略&路由引入 路由过滤

    企业安全和网络服务视频.rar

    利用ssh隧道实现tcp端口转发和x11转发.flv ├ RH-333第三章 密码学 │ │ 1.密码学01.flv │ │ 2.TLS工作原理.flv │ │ 3.密码学02.flv │ └ 4.创建CA.flv ├ RH-333第九章 Postfix │ │ 1.postfix软件讲解.flv ...

    python入门教程:python 通过SSHTunnelForwarder隧道连接redis的方法

    连接原理:使用SSHTunnelForwarder模块,通过本地22端口ssh到跳板机,然后本地开启一个转发端口给跳板机远程Redis服务使用。 两种思路: 1、通过SSHTunnelForwarder,paramiko模块,先ssh到跳板机,然后在跳板机上...

    H3CSE V2.0 培训视频教程【共三科155集】.rar

    园区 40-50 园区网安全概述 AAA 端口接入 SSH SNMP LLDP 园区 52-53 镜像技术 园区 54 园区网综合实验 大规模路由 1-3 企业网模型 大规模路由技术概述 大规模路由 4-5 路由控制与转发 大规模路由 6 路由协议基础 ...

    python 通过SSHTunnelForwarder隧道连接redis的方法

    连接原理:使用SSHTunnelForwarder模块,通过本地22端口ssh到跳板机,然后本地开启一个转发端口给跳板机远程Redis服务使用。 两种思路: 1、通过SSHTunnelForwarder,paramiko模块,先ssh到跳板机,然后在跳板机上...

    CCNA EI视频全集含笔记.zip

    10-设备的管理,远程登录SSH的配置,保存配置的方式 11-路由器交换机的密码恢复 12-交换机的引入 13-交换机的基本工作原理,交换机的Access接口模式 14-交换机的Trunk接口模式工作方式 15-交换机的DTP协议,VTP协议 16-...

    企业级Linux服务攻略

    4.4.3 转发服务器 4.4.4 缓存服务器(Caching-only Name Server) 4.5 DNS客户端配置 4.5.1 RHEL5客户端配置 4.5.2 Windows客户端配置 4.6 DNS企业实战与应用 4.6.1 企业环境 4.6.2 需求分析 4.6.3 解决方案 4.7 ...

    python爬虫教程: 通过SSHTunnelForwarder隧道连接redis的方法

    连接原理:使用SSHTunnelForwarder模块,通过本地22端口ssh到跳板机,然后本地开启一个转发端口给跳板机远程Redis服务使用。 两种思路: 1、通过SSHTunnelForwarder,paramiko模块,先ssh到跳板机,然后在跳板机上...

    java web技术开发大全(最全最新)

    提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4个综合案例,可以作为案头必备的查询手册 一线开发人员全力打造,分享技术...

    kvm-practice:kvm虚拟化实践,包含nat、bridge方式创建windows、linux虚拟机详细步骤

    使用ssh访问虚拟机 4、nat方式创建linux虚拟机 配置iptables端口转发,使用使用远程连接访问虚拟机 5、VMWare三种网络模式 三种模式描述,适用场景 实际生产部署模式 5、iptables学习笔记 HOOK规则、原理 防火墙/...

    java web开发技术大全

    《Java Web开发技术大全:JSP+Servlet+Struts+Hibernate+Spring+Ajax》特别介绍了Struts 2对AjAX的支持,还重点剖析了SSH框架的整合开发,并给出了两个综合案例来展示整合SSH框架开发Web应用。 和已经出版的同类图书...

    switch security.rar

    4、使用SSH实现安全的登录 端口安全> ·SW端口安全是2层特性,提供3种保护: 1. 可以限定一个接口所能学习的MAC地址数量 2. 可以在一个接口静态绑定MAC地址 1.基于主机MAC来允许流量  ·可定义2个参数:授权...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    Java Web编程宝典-十年典藏版.pdf 是PDF电子书,不是源码。共分2个包。 《Java Web编程宝典(十年典藏版)》是一本集技能、范例、项目和应用为一体的学习手册,书中介绍了应用Java Web...第24章 基于SSH2的天下淘商城

Global site tag (gtag.js) - Google Analytics