赞
踩
ssh协议简介
Secure Shell(SSH) 是由 IETF(The Internet Engineering Task Force) 制定的建立在应用层基础上的安全网络协议。它是专为远程登录会话(甚至可以用Windows远程登录Linux服务器进行文件互传)和其他网络服务提供安全性的协议,可有效弥补网络中的漏洞。通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的,所以可以加快传输的速度。目前已经成为Linux系统的标准配置。
SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。本文主要介绍OpenSSH免费开源实现在Ubuntu中的应用,如果要在Windows中使用SSH,需要使用另一个软件PuTTY。
SSH的安全机制
SSH之所以能够保证安全,原因在于它采用了非对称加密技术(RSA)加密了所有传输的数据。传统的网络服务程序,如FTP、Pop和Telnet其本质上都是不安全的;因为它们在网络上用明文传送数据、用户帐号和用户口令,很容易受到中间人(man-in-the-middle)攻击方式的攻击。就是存在另一个人或者一台机器冒充真正的服务器接收用户传给服务器的数据,然后再冒充用户把数据传给真正的服务器。
但并不是说SSH就是绝对安全的,因为它本身提供两种级别的验证方法:
第一种级别(基于口令的安全验证):只要你知道自己帐号和口令,就可以登录到远程主机。所有传输的数据都会被加密,但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器,也就是受到“中间人攻击”这种方式的攻击。
第二种级别(基于密钥的安全验证):你必须为自己创建一对密钥,并把公钥放在需要访问的服务器上。如果你要连接到SSH服务器上,客户端软件就会向服务器发出请求,请求用你的密钥进行安全验证。服务器收到请求之后,先在该服务器上你的主目录下寻找你的公钥,然后把它和你发送过来的公钥进行比较。如果两个密钥一致,服务器就用公钥加密“质询”(challenge)并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私钥在本地解密再把它发送给服务器完成登录。与第一种级别相比,第二种级别不仅加密所有传输的数据,也不需要在网络上传送口令,因此安全性更高,可以有效防止中间人攻击。
原文链接:https://blog.csdn.net/li528405176/article/details/82810342
两台linux(red-hat6.5) -- 一台ssh-server 一台ssh-client
dhcp自动获取ip
1.red-hat6.5默认安装了 openssh
2.修改SSH服务配置文件
(1) vim /etc/ssh/sshd.config
禁止root用户 (默认开启,要关闭,防止被弱口令爆破)
限制登录用户为lisi
(2) 限制登录客户端的IP地址
vim /etc/hosts.allow
vim /etc/hosts.deny
匹配规则,先在hosts.allow里找,若匹配到就直接应用
未匹配到就去hosts.deny里找
3、建立用户zhangsan、lisi,并设置其用户密码
在SSH服务器端创建:lisi用户,密码为:123
在SSH客户端创建:zhangsan用户,密码为:123
4、测试:
1)在Linux客户端以ssh方式登录ssh服务器,登录用户名为lisi,登录成功,退出
(这里图有点问题,找不到原图了不影响,只是为了测试启用了”只允许lisi登陆“)
2)再次以ssh方式登录ssh服务器,登录用户名为lisi,故意输错3次密码后,登录失败(默认三次机会)
3)再次以ssh方式登录ssh服务器,登录用户名为root,登录失败
4)在Windows 10客户端,使用终端工具(putty、SecureCRT、Xshell等)登录ssh服务器,登录用户名为lisi,登录失败
5)查看SSH服务器的安全日志,是否存在Linux客户端和Windows 10客户端的IP地址信息
cat /var/log/secure
会被服务端的安全日志记录下来,,登陆成功或失败
1、在Linux客户端、服务器端分别创建:zhangsan、lisi用户的公钥、私钥
1)创建服务器端lisi用户的公钥、私钥对
su切换到lisi用户状态
创建lisi用户的公钥、私钥对
2)创建客户端zhangsan用户的公钥、私钥对
su切换到zhangsan用户状态
创建zhangsan用户的公钥、私钥对
上传zhangsan用户的公钥文件到ssh服务器的lisi宿主目录中的.ssh中
scp id_rsa.pub lisi@192.168.129.165:/home/lisi/.ssh/zhangsan.pub
cd /home/lisi/.ssh
到服务端lisi .ssh目录下查看,,张三的公钥已经传过来了
cat zhangsan.pub >> authorized_keys
将公钥文件导入到 authorized_keys(自己创建)
因为配置文件里,识别的是authorized_keys文件里的公钥信息
2、修改SSH服务配置文件
vim /etc/ssh/sshd.comfig
1)禁用密码认证
2)启用公钥验证
修改规则后要重启sshd服务
service sshd restart
此时只有zhangsan与lisi有公私密钥对
1、在Linux客户端lisi用户状态,以ssh方式登录ssh服务器,成功
2、在Linux客户端root用户状态,以ssh方式登录ssh服务器,失败
3、查看SSH服务器的安全日志,是否存在Linux客户端的IP地址信息
1、在SSH服务器上通过TCP Wrapper机制(hosts.allow,hosts.deny)限制特定客户机的登录IP地址
只允许ssh-client客户机的ip登陆
2、验证TCP Wrapper机制,非法主机是否能正常登录SSH服务器
此时在win10本机(其他ip)用SecureCRT上通过ssh2登陆lisi
再没加规则前,可以登陆
规则启动后:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。