SSH(Secure Shell)简介
SSH 为 Secure Shell 的缩写,由 IETF 的网络工作小组(Network Working Group)所制定;SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。更多SSH信息请查阅:SSH–维基百科;SSH–百度百科;SSH Communications Security Corporation的网站;开源OpenSSH组织官方。
SSH基本架构
SSH协议框架中最主要的部分是三个协议:传输层协议(The Transport Layer Protocol)、用户认证协议(The User Authentication Protocol)、连接协议(The Connection Protocol)。同时还为许多高层的网络安全应用协议提供扩展支持。各种高层应用协议可以相对地独立于SSH基本体系之外,并依靠这个基本框架,通过连接协议使用SSH的安全机制。
- 传输层协议:传输层协议提供服务器认证,数据机密性,信息完整性等的支持。
- 用户认证协议:用户认证协议为服务器提供客户端的身份鉴别。
- 连接协议:将加密的信息隧道复用成若干个逻辑通道,提供给更高层的应用协议。
通过使用SSH,你可以把所有传输的数据进行加密,这样”中间人”这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。使用SSH,还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTP、PoP、甚至为PPP提供一个安全的”通道”。
SSH的安全验证
在客户端来看,SSH提供两种级别的安全验证。
第一种级别(基于密码的安全验证),知道帐号和密码,就可以登录到远程主机,并且所有传输的数据都会被加密。但是,可能会有别的服务器在冒充真正的服务器,无法避免被“中间人”攻击。
第二种级别(基于密匙的安全验证),需要依靠密匙,也就是你必须为自己创建一对密匙,并把公有密匙放在需要访问的服务器上。客户端软件会向服务器 发出请求,请求用你的密匙进行安全验证。服务器收到请求之后,先在你在该服务器的用户根目录下寻找你的公有密匙,然后把它和你发送过来的公有密匙进行比 较。如果两个密匙一致,服务器就用公有密匙加密“质询”(challenge)并把它发送给客户端软件。从而避免被“中间人”攻击。
在服务器端来看,SSH也提供安全验证。
在第一种方案中,主机将自己的公用密钥分发给相关的客户端,客户端在访问主机时则使用该主机的公开密钥来加密数据,主机则使用自己的私有密钥来解密数据, 从而实现主机密钥认证,确定客户端的可靠身份。
在第二种方案中,存在一个密钥认证中心,所有提供服务的主机都将自己的公开密钥提交给认证中心,而任何作为客户端的主机则只要保存一份认证中心的公开密钥 就可以了。在这种模式下,客户端必须访问认证中心然后才能访问服务器主机。
开启FreeNAS的SSH服务
开启FreeNAS,打开“FreeNAS WebGUI”登录。找到“Services–>SSH”。在Services|SSH里进行设置。选中右上侧的“Enable”开启SSH管理。
- TCP port:设置SSH的TCP监听端口,默认22端口,为增强系统安全,义无反顾的换一个端口吧,1024以内的系统保留最好不用,如1049、1050这些随便。
- Permit root login:是否允许超级管理员登录,选中此项。默认不允许,设置一个普通用户进行远程管理,是个不错的安全想法哦。不方便?自己想办法解决去。
- Password authentication:设置密码验证方式,是否使用键盘交互验证(keyboard-interactive authentication),默认使用。能增强安全,为什么不用?
- Compression:是否启用压缩,默认为不启用。启用此项,可以有效提高传输速度,提高其安全性。
我这里用来测试,选择默认,你可以根据需要进行自由化设置。比如改端口,禁止管理员登录,指定特定用户登录以增强系统安全。切记,点“Save and Restart”保存,使设置生效。
使用SSH登录FreeNAS
1、你可以在Shell下,输入“SSH”获得ssh命令的使用帮助,详细说明了如何使用SSH进行登录操作。
2、登录测试。在shell下,输入“ssh -l root 192.168.0.21”。依照提示输入密码后登录成功。是用root管理员登录成功后显示的欢迎见面
3、使普通用户具有SHH的登录权限。打开“Access–>Users”,找到“budeyan”用户进行编辑。在“Edit”页面最下方选中的“Shell access”,给予“budeyan”用户Shell使用权限(Give full shell access to user. )。
在shell下,输入“ssh -l 5ihllcom 192.168.0.21”。依照提示输入密码后登录成功。下面是欢迎界面,用户拥有相应Shell使用权限。在没给budeyan用户“Shell access”使用权限时的状态。