赞
踩
SSH 是 Secure Shell Protocol 的简写,由 IETF 网络工作小组(Network Working Group )制定;在进行数据传输之前,SSH先对联机数据包通过加密技术进行加密处理,加密后在进行数据传输。确保了传递的数据安全。
SSH是专为远程登录会话和其他网络服务提供的安全性协议。利用 SSH 协议可以有效的防止远程管理过程中的信息泄露问题,在当前的生产环境运维工作中,绝大多数企业普遍采用SSH协议服务来代替传统的不安全的远程联机服务软件,如telnet(23端口,非加密的)等。
在默认状态下,SSH服务主要提供两个服务功能:1.提供类似telnet远程联机服务器的服务,即上面提到的SSH服务。2.类似FTP服务的sftp-server,借助SSH协议来传输数据的.提供更安全的SFTP服务(vsftp,proftp)。
1.1.1 ssh远程连接排错过程
1.2.1 SSH加密技术
简单的说,SSH加密技术就是将人类可以看得懂的数据,通过一些特殊的程序算法,把这些数据变成杂乱的无意义的信怠,然后,通过网络进行传输,而当到了目的地后,在通过对应的解密算法,把传过来的加密的数据信息解密成加密前的可读的正常数据。因此,当数据在互联网上传输时即使被有心的黑客监听窃取了,也很难获取到真正黑要的数据。
当前,网络上的数据包加密技术一般是通过所谓的一对公钥与私钥(Publickey and Pivatekey)组合成的密钥对进行加密与解密操作。如下图,A-Server要给B_Client传数据,首先会通过本地的公钥加密后再到发到网络上传输。而加密的数据到达B_Client端后,再经由B_Client本地的私钥将加密的数据解密出来。由于在internet上传输过程中的数据是加密过的,所以,传输的数据内容一般来说是比较安全的。
图1-1 ssh认证连接的过程
1.2.2 ssh实现安全链接建立,利用要是和锁头
1. 钥匙=私钥 锁头=公钥,私钥可以解密公钥。
2. 公钥可以再网络中传输,私钥再本地主机保存。
1.2.3 ssh加密算法
v1漏洞: 密钥不更换。
v2 定期更换密钥。
利用Diffie-Hellman机制定期更新密钥。
ssh是安全的加密协议,用于远程链接linux服务器。
ssh 默认端口是22,安全协议版本sshv2,出来2之外还有1(有漏洞)。
ssh服务端主要包括两个服务功能 ssh远程链接和sftp服务。
linux ssh 客户端包括ssh 远程链接命令,以及远程拷贝scp命令等。
1.4.1 什么是ssh服务
SSH服务端是一个守护讲程 (daemon).他在后台运行并响应来自客户端的连接请求。 SSH服务端的讲程名为sshd,负责实时监听远程SSH客户端的远程连接请求,并进行处理,一般包括公共密钥认证、密钥交换、对称密钥加密和非安全连接等。这个SSH服务就是我们前面基础系统优化中保留开机自启动的服务之。ssh客户端包含ssh以及像scp(远程拷贝) slogin(远程登陆) sftp(安全FTP文件传输)等应用程序。ssh的工作机制大致是本地的ssh客户端先发送一个连接请求到远程的ssh服务端,服务端检查连接的客户端发送的数据包和IP地址,如果确认合法,就会发送密钥给 SSH的客户端,此时,客户端本地再将密钥发回给服务端,自此连接建立。
1.4.2 ssh软件安装
客户端
[root@nfs01 ~]# rpm -qf `which ssh`
openssh-clients-5.3p1-122.el6.x86_64
服务端软件
[root@nfs01 ~]# rpm -qf `which sshd`
openssh-server-5.3p1-122.el6.x86_64
1.4.3 openssh-clinets 软件的主要内容:
[root@nfs01 ~]# rpm -ql openssh-clients
/etc/ssh/ssh_config #ssh客户端配置文件
/usr/bin/.ssh.hmac
/usr/bin/scp #远程复制命令
/usr/bin/sftp #远程文件传输服务
/usr/bin/slogin #远程登陆命令
/usr/bin/ssh #ssh远程登陆管理主机
/usr/bin/ssh-add
/usr/bin/ssh-agent
/usr/bin/ssh-copy-id #ssh服务分发公钥命令
/usr/bin/ssh-keyscan
1.4.4 openssh-server 软件的主要内容:
[root@nfs01 ~]# rpm -ql openssh-server
/etc/rc.d/init.d/sshd #ssh服务启动脚本
/etc/ssh/sshd_config #ssh服务配置文件
/etc/sysconfig/sshd #ssh创建密钥有关
/usr/sbin/.sshd.hmac #ssh加密算法有关文件
/usr/sbin/sshd #ssh服务进程启动命令
注意:使用sshd采用绝对路径进行启动
[root@test ~]# sshd
sshd re-exec requires execution with an absolute path
[root@test ~]# ssh 10.0.0.250
The authenticity of host '10.0.0.250 (10.0.0.250)' can't be established.
RSA key fingerprint is d3:41:bb:0d:43:88:da:a3:2c:e8:36:91:11:c9:e4:9c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '10.0.0.250' (RSA) to the list of known hosts.
root@10.0.0.250's password: #需要输入密码
Last login: Mon Oct 16 21:13:58 2017 from 10.0.0.1
[root@test ~]#
1.6.2 基于密钥的安全认证方法
基于密钥的安全验证方式是指,需要依靠密钥,也就是必须事先建立一对密钥对,然后把公用密钥(锁头)(Public key)放在需要访问的目标服务器上,另外,还需要把私有密钥(钥匙)(Private key)放到SSH的客户端或对应的窖户端服务器上。
私钥不能在网络中传输—私钥可以解密公钥。
公钥可以再网路中传输—公钥不能解密私钥 。
此时,如果要想连接到这个带有公用密钥的SSH服务器,客户端SSH软件或者客户端服务器就会向SSH服务器发出请求,请求用联机的用户密钥进行安全验证。SSH服务器收到请求之后,会先在该SSH服务器上连接的用户的家目录下寻找事先放上去的对应用户的公用密钥,然后把它和连接的SSH客户端发送过来的公用密钥进行比较。如果两个密钥一致,SSH服务器就用公用密钥加密”质询”(challenge)并把它发送给SSH客户端。
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用。
1.1.1普通型弱口令
普通型弱口令就是常见的密码,比如,目前网络上也有人特地整理了常用的弱口令(Top 100):
123456 a123456 123456a 5201314 111111 woaini1314 qq123456
123123 000000 1qaz2wsx 1q2w3e4r qwe123 7758521 123qwe
a123123 123456aa woaini520 woaini 100200 1314520 woaini123
123321 q123456 123456789 123456789a 5211314 zhang123 aptx4869
123123a 1q2w3e4r5t 1qazxsw2 5201314a 1q2w3e aini1314 31415926
q1w2e3r4 123456qq woaini521 1234qwer a111111 520520 iloveyou
abc123 110110 111111a 123456abc w123456 7758258 123qweasd 159753
qwer1234 qq5201314 12345678 000000a 456852 as123456 1314521 112233
521521 qazwsx123 zxc123456 abcd1234 asdasd 666666 love1314 QAZ123
aaa123 q1w2e3 aaaaaa a123321 123000 11111111 wang123 159357 1A2B3C4D
asdasd123 584520 753951 147258 1123581321 110120 qq1314520
对于网站后台而言,一般为:
admin、manager、admin123、admin888、admin666…
具体来说,不同的后台类型拥有不同的弱密码:
数据库(phpmyadmin)
账号:root
密码:root、root123、123456
tomcat
账号:admin、tomcat、manager
密码:admin、tomcat、admin123、123456、manager
jboss
账号:admin、jboss、manager
密码:admin、jboss、manager、123456
weblogic
账号:weblogic、admin、manager
密码:weblogic、admin、manager、123456
1.1.1条件型弱口令
条件型弱口令就是和用户信息相关的密码,比如生日+手机号、姓名首字母+生日、爱人姓名首字母+生日+常用字母(520、1314 等)。我们可以使用这个猜密码的网站来生成条件弱口令字典。
比如我们知道一个人,他的信息如下:姓名:王小二;邮箱:412391882@qq.com;英文名:twowang;手机号:110。那我们就可以在这个网站上输入这些信息,然后点击下方的“提交”。
然后我们就得到了这个最有可能的密码。
1.2弱口令漏洞
弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。
设置密码通常遵循以下原则:
(1)不使用空口令或系统缺省的口令,这些口令众所周之,为典型的弱口令。
(2)口令长度不小于8个字符。
(3)口令不应该为连续的某个字符(例如:AAAAAAAA)或重复某些字符的组合(例如:tzf.tzf.)。
(4)口令应该为以下四类字符的组合,大写字母(A-Z)、小写字母(a-z)、数字(0-9)和特殊字符。每类字符至少包含一个。如果某类字符只包含一个,那么该字符不应为首字符或尾字符。
(5)口令中不应包含本人、父母、子女和配偶的姓名和出生日期、纪念日期、登录名、E-mail地址等等与本人有关的信息,以及字典中的单词。
(6)口令不应该为用数字或符号代替某些字母的单词。
(7)口令应该易记且可以快速输入,防止他人从你身后很容易看到你的输入。
(8)至少90天内更换一次口令,防止未被发现的入侵者继续使用该口令。
1.3弱口令攻击
口令攻击的主要方法
1、社会工程学(social Engineering),通过人际交往这一非技术手段以欺骗、套取的方式来获得口令。避免此类攻击的对策是加强用户意识。
2、猜测攻击。首先使用口令猜测程序进行攻击。口令猜测程序往往根据用户定义口令的习惯猜测用户口令,像名字缩写、生日、宠物名、部门名等。在详细了解用户的社会背景之后,黑客可以列举出几百种可能的口令,并在很短的时间内就可以完成猜测攻击。
3、字典攻击。如果猜测攻击不成功,入侵者会继续扩大攻击范围,对所有英文单词进行尝试,程序将按序取出一个又一个的单词,进行一次又一次尝试,直到成功。据有的传媒报导,对于一个有8万个英文单词的集合来说,入侵者不到一分半钟就可试完。所以,如果用户的口令不太长或是单词、短语,那么很快就会被破译出来。
4、穷举攻击。如果字典攻击仍然不能够成功,入侵者会采取穷举攻击。一般从长度为1的口令开始,按长度递增进行尝试攻击。由于人们往往偏爱简单易记的口令,穷举攻击的成功率很高。如果每千分之一秒检查一个口令,那么86%的口令可以在一周内破译出来。
5、混合攻击,结合了字典攻击和穷举攻击,先字典攻击,再暴力攻击。避免以上四类攻击的对策是加强口令策略。
6、直接破解系统口令文件。所有的攻击都不能够奏效,入侵者会寻找目标主机的安全漏洞和薄弱环节,饲机偷走存放系统口令的文件,然后破译加密的口令,以便冒充合法用户访问这台主机。
7、网络嗅探(sniffer),通过嗅探器在局域网内嗅探明文传输的口令字符串。避免此类攻击的对策是网络传输采用加密传输的方式进行。
8、键盘记录,在目标系统中安装键盘记录后门,记录操作员输入的口令字符串,如很多间谍软件,木马等都可能会盗取你的口述。
9、其他攻击方式,中间人攻击、重放攻击、生日攻击、时间攻击。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。