SSH为建立在应用层基础上的安全协议。SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH 协议可以有效防止远程管理过程中的信息泄露问题。下面是思科路由器SSH配置案例,希望对你有帮助!
1. 配置hostname和ipdomain-name
Router#configure terminal
Router(config)#hostname R2 //配置ssh的时候路由器的名字不能为router
R2(config)#ip domain-name cisco.com //配置SSH必需
R2(config)#username best password best1
或 username best privilege 15 password 7 best1
注:添加一个用户:best,口令:best1
R2(config)#line vty 0 4
R2(config-line)#transport input ssh //只允许用SSH登录(注意:禁止telnet和从
交换引擎session!)
2. 配置SSH服务:
R2(config)#crypto key generate rsa
The name for the keys will be: R2.cisco.com
注:SSH的关键字名就是hostname + . +ipdomain-name
Choose the size of the key modulus in the range of 360 to 2048 for your
General Purpose Keys. Choosing a key modulus greater than 512 may take
a few minuts
How many bits in the modulus [512]: 注:选择加密位数,cisco推荐使用1024
Generating RSA keys ...
[OK]
用命令show ip ssh也能看到:
SSH Enabled - version 1.5
Authentication timeout: 120 secsAuthentication retries:
现在SSH服务已经启动,如果需要停止SSH服务,用以下命令:
R2(config)#crypto key zeroize rsa
3.设置SSH参数
配置好了SSH之后,通过show run命令我们看到SSH默认的参数:超时限定为120秒,认证重试次数为3次,可以通过下面命令进行修改:
R2(config)#ip ssh {[time-out seconds]} │ [authentication-retries interger]}
如果要把超时限定改为180秒,则应该用:
R2(config)# ip ssh time-out 180
如果要把重试次数改成5次,则应该用:
R2(config)# ip ssh authentication-retries
这样,SSH已经在路由器上配置成功了,就能够通过SSH进行安全登录了。
注意:最后如果从别的设备用ssh登录这台路由器会出现以下内容:
R1#ssh -l best 192.168.0.2
Password:
R2>en
% Error in authentication.
为什会出现以上内容?
因为在R2上没有配置enablepassword/secret xxxx
R2配置上enable secret 5 $1$fJxo$suWiTzmfdj/vkvXfRHBcw/
那么在R1上:
R1#ssh -l best 192.168.0.2
Password:
R2>en
Password:
R2#confi g
拓展:
思科路由器如何设置
首先将路由器进行初始化复位,恢复出厂设置(非常重要),然后将电脑网卡与路由器LAN口用网线连接,打开路由器电源;电脑网卡设置192.168.1.2;
在电脑上双击IE浏览器,在地址栏中输入路由器默认设置页面IP地址:192.168.1.1回车;
输入默认用户名:admin,默认密码:admin;点击确定。
1、设置拨号账号:
点击左边栏设置向导,点击下一步;
点选ADSL虚拟拨号(PPPOE)点击下一步;
输入宽带账号、密码,点击下一步;
2、设置无线wifi密码:
左边还有个选项无线设置里面,有个ssid,这是WiFi的无线账号,设置好后有密码设置,密码尽量复杂些,最好字母数字符号组合;
3、设置登录密码
将默认的admin、admin登录密码改掉,防止有人破解蹭网后修改路由器。
点击保存后重启,完成。
思科路由器优势
一个系统方法的价值。
系统方法开始于单一永续平台,如思科(Cisco)集成多业务路由器。系统方法相结合的内部及其相互之间的智能服务,包装,编织语音,安全,路由和应用服务结合起来,使程序更加自动化和智能化。
结果普遍安全的网络和应用,对数据,语音更高的服务质量和视频流量,提高时间效率,更好地利用网络资源。
随着集成多业务路由器,思科(Cisco)提供了一个全面的`,未来需求的解决方案,最大限度地减少网络中断,并确保进入最关键业务应用。思科(Cisco)对性能结合新的基础设施服务的重点是使公司创造网络更聪明,更有弹性,可靠。
对于各种规模的需要快速,安全访问,今天的任务是,作为今后发展的基础和关键应用,思科(Cisco)路由器组织:
提供业界第一个投资组合提供安全,线速提供并发数据,语音传送设计和视频服务
嵌入安全和语音服务到一个单一的路由系统;
采用集成的系统方法的嵌入式服务,应用部署速度,降低运营成本和复杂性;
提供无与伦比的服务性能和投资保护;
不同专业的小产品,思科(Cisco)集成多业务路由器中嵌入作为一个单一的弹性系统,便于部署简化的管理,安全和语音服务,并降低运营成本。思科(Cisco)路由器提供安全的通信解决方案,你今天需要,同时为明天的智能信息网络的基础。
此外,思科(Cisco)集成多业务路由器:
提供快捷,安全地访问关键任务业务应用和未来发展无可比拟的投资保护,使企业能够轻松部署和管理的融合,通讯解决方案得到最终用户的生产力端对端的安全;
特征业界领先的服务密度,带宽,可用性和最高配置的灵活性和最苛刻的网络环境中的可扩展性性能选项;
提供的语音容量和广泛的服务,使客户可以轻松地实现终端到终端的,最佳的IP通信解决方案,同时提供一个未来的增长和投资保护的基础;
是唯一的路由器,允许企业构建一个智能的,自防御网络的基础,具有最佳的服务,一流的安全和路由最低的总拥有成本的技术和最高的投资回报。
这条通道可以用很多技术来建立,这里我们仅仅介绍如何使用SSH服务器来建立这样一个通道-他被称为SSH隧道。如何建立本地SSH隧道
在我们计划建立一个本地SSH隧道之前,我们必须清楚下面这些数据:
中间服务器d的IP地址
要访问服务器c的IP地址
要访问服务器c的端口
现在,我们把上面这张图变得具体一些,给这些机器加上IP地址。并且根据下面这张图列出我们的计划:
需要访问234.234.234.234的FTP服务,也就是端口21
中间服务器是123.123.123.123
现在我们使用下面这条命令来达成我们的目的
ssh -N -f -L 2121:234.234.234.234:21 123.123.123.123
ftp localhost:2121 # 现在访问本地2121端口,就能连接234.234.234.234的21端口了
这里我们用到了SSH客户端的三个参数,下面我们一一做出解释:
-N 告诉SSH客户端,这个连接不需要执行任何命令。仅仅做端口转发
-f 告诉SSH客户端在后台运行
-L 做本地映射端口,被冒号分割的三个部分含义分别是
需要使用的本地端口号
需要访问的目标机器IP地址(IP: 234.234.234.234)
需要访问的目标机器端口(端口: 21)
最后一个参数是我们用来建立隧道的中间机器的IP地址(IP: 123.123.123.123)
我们再重复一下-L参数的行为。-L X:Y:Z的含义是,将IP为Y的机器的Z端口通过中间服务器映射到本地机器的X端口。
在这条命令成功执行之后,我们已经具有绕过公司防火墙的能力,并且成功访问到了我们喜欢的一个FTP服务器了。
如何建立远程SSH隧道
通过建立本地SSH隧道,我们成功地绕过防火墙开始下载FTP上的资源了。那么当我们在家里的时候想要察看下载进度怎么办呢?大多数公司的网络是通过路由器接入互联网的,公司内部的机器不会直接与互联网连接,也就是不能通过互联网直接访问。通过线路D-B-A访问公司里的机器a便是不可能的。也许你已经注意到了,虽然D-B-A这个方向的连接不通,但是A-B-D这个方向的连接是没有问题的。那么,我们能否利用一条已经连接好的A-B-D方向的连接来完成D-B-A方向的访问呢?答案是肯定的,这就是远程SSH隧道的用途。
与本地SSH一样,我们在建立远程SSH隧道之前要清楚下面几个参数:
需要访问内部机器的远程机器的IP地址(这里是123.123.123.123)
需要让远程机器能访问的内部机器的IP地址(这里因为是想把本机映射出去,因此IP是127.0.0.1)
需要让远程机器能访问的内部机器的端口号(端口:22)
在清楚了上面的参数后,我们使用下面的命令来建立一个远程SSH隧道
ssh -N -f -R 2222:127.0.0.1:22 123.123.123.123
现在,在IP是123.123.123.123的机器上我们用下面的命令就可以登陆公司的IP是192.168.0.100的机器了。
ssh -p 2222 localhost
-N,-f 这两个参数我们已经在本地SSH隧道中介绍过了。我们现在重点说说参数-R。该参数的三个部分的含义分别是:
远程机器使用的端口(2222)
需要映射的内部机器的IP地址(127.0.0.1)
需要映射的内部机器的端口(22)
例如:-R X:Y:Z 就是把我们内部的Y机器的Z端口映射到远程机器的X端口上。
建立SSH隧道的几个技巧
自动重连
隧道可能因为某些原因断开,例如:机器重启,长时间没有数据通信而被路由器切断等等。因此我们可以用程序控制隧道的重新连接,例如一个简单的循环或者使用 djb’s daemontools . 不管用哪种方法,重连时都应避免因输入密码而卡死程序。关于如何安全的避免输入密码的方法,请参考我的 如何实现安全的免密码ssh登录 。这里请注意,如果通过其他程序控制隧道连接,应当避免将SSH客户端放到后台执行,也就是去掉-f参数。
保持长时间连接
有些路由器会把长时间没有通信的连接断开。SSH客户端的TCPKeepAlive选项可以避免这个问题的发生,默认情况下它是被开启的。如果它被关闭了,可以在ssh的命令上加上-o TCPKeepAlive=yes来开启。
另一种方法是,去掉-N参数,加入一个定期能产生输出的命令。例如: top或者vmstat。下面给出一个这种方法的例子:
ssh -R 2222:localhost:22 123.123.123.123 "vmstat 30"
检查隧道状态
有些时候隧道会因为一些原因通信不畅而卡死,例如:由于传输数据量太大,被路由器带入stalled状态。这种时候,往往SSH客户端并不退出,而是卡死在那里。一种应对方法是,使用SSH客户端的ServerAliveInterval和ServerAliveCountMax选项。ServerAliveInterval会在隧道无通信后的一段设置好的时间后发送一个请求给服务器要求服务器响应。如果服务器在ServerAliveCountMax次请求后都没能响应,那么SSH客户端就自动断开连接并退出,将控制权交给你的监控程序。这两个选项的设置方法分别是在ssh时加入-o ServerAliveInterval=n和-o ServerAliveCountMax=m。其中n, m可以自行定义。
如何将端口绑定到外部地址上
使用上面的方法,映射的端口只能绑定在127.0.0.1这个接口上。也就是说,只能被本机自己访问到。如何才能让其他机器访问这个端口呢?我们可以把这个映射的端口绑定在0.0.0.0的接口上,方法是加上参数-b 0.0.0.0。同时还需要打开SSH服务器端的一个选项-GatewayPorts。默认情况下它应当是被打开的。如果被关闭的话,可以在/etc/sshd_config中修改GatewayPorts no为GatewayPorts yes来打开它。
如何寻找中间服务器
如果你家里使用ADSL上网,多半你会比较幸运。一般的ADSL(例如 联通 的ADSL)都是有互联网地址的。你只需要在家里的路由器上一台装有OpenSSH server机器的SSH端口映射出去即可。同时一些提供SSH访问的虚拟主机也可以用于这一用途。例如: Hostmonser 或者 Dreamhost .
通过SSH隧道建立SOCKS服务器
如果我们需要借助一台中间服务器访问很多资源,一个个映射显然不是高明的办法(事实上,高明确实没有用这个方法)。幸好,SSH客户端为我们提供了通过SSH隧道建立SOCKS服务器的功能。
通过下面的命令我们可以建立一个通过123.123.123.123的SOCKS服务器。
ssh -N -f -D 1080 123.123.123 # 将端口绑定在127.0.0.1上
ssh -N -f -D 0.0.0.0:1080 123.123.123.123 # 将端口绑定在0.0.0.0上
通过SSH建立的SOCKS服务器使用的是SOCKS5协议,在为应用程序设置SOCKS代理的时候要特别注意。
总结
至此,我们已经对如何利用SSH隧道有一个基本的认识了。现在,文章开始时的那些问题应该迎刃而解了吧。这里要特别说一下,由于SSH隧道也使用了SSH加密协议,因此是不会被防火墙上的内容过滤器监控到的。也就是说一切在隧道中传输的数据都是被加密的。当然,离开隧道后的数据还是会保持自己原有的样子,没有加密的数据还是会被后续的路由设备监控到。
服务器上有花生壳域名,路由器有做端口映射到服务器,那你完全可以直接连接内网服务器了呀,3389远程桌面(windows)或者SSH连接(linux)或者你可以通过 VPN 进行连接,系统现在都自带了这个功能
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)