打不死的心态活到老。

使用Openssh工具远程管理Solaris 10 ——1

上一篇 / 下一篇  2007-11-12 10:41:48 / 个人分类:linux

51Testing软件测试网8{~$Op{9x]

链接:http://www.xxlinux.com/linux/article/unix/rumen/2007-08-17/9351.html

y/?`#O#v*c4k'\051Testing软件测试网iO HD4bUI8ni

一、 SSH服务器工作原理

(m y2uU7X _6o Y8`3[9z0

N+K'j0ECe/{8F0  1.传统远程登录安全隐患51Testing软件测试网zxLU6x0z Sq%D

K~,`:B'P4Ux(d0  在异构网络中,很多用户选择Solaris 10作为网络操作系统,利用其简单的配置和用户熟悉的图形界面提供Internet服务,Telnet便是其提供的服务之一。Telnet最基本应用就是 用于Internet的远程登录,共享远程系统中的资源。它可以使用户坐在已上网的电脑键盘前通过网络进入的另一台已上网的电脑,并负责把用户输入的每个字符传递给主机,再将主机输出的每个信息回显在屏幕上。这种连通可以发生在同一房间里面的电脑或是在世界各范围内已上网的电脑。Telnet服务与其他网络应用一样属于客户机/服务器模型,一旦连通后,客户机可以享有服务器所提供的一切服务。51Testing软件测试网 UT \mj:V

U o a5GZk0  但是传统的网络服务程序telnet在本质上都是不安全的,因为它在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。而且,这些服务程序的安全验证方式也是有其弱点的,就是很容易受到“中间人”(man-in-the-middle)这种方式的攻击。所谓“中间人”的攻击方式,就是“中间人”冒充真正的服务器接收你传给服务器的数据,然后再冒充你把数据传给真正的服务器。服务器和你之间的数据传送被“中间人”转手后做了手脚之后,就会出现很严重的问题。

e8B1X2q.b0

pi B*f {0  2.SSH能保护什么51Testing软件测试网r6H5{7jg

\+[(i7VI9@M$V0  SSH可以防止IP地址欺骗、DNS欺骗和源路径攻击。SSH提供给用户身份认证的主要方法就是使用公共密钥加密法。根据所用SSH版本的不同,可以采用RSA或者Diffie-Helman和数字签名标准来实现。也可以选择使用各种不同的身份认证方法,包括公共密钥法、rhosts/shosts认证法和密码认证,这些方法都很简单安全。的确,利用SSH即便是使用.rhosts认证方式也能确保安全性。SSH所提供的是通过网络进入某个特定账号的安全方法。每个用户都拥有自己的RSA密钥。通过严格的主机密钥检查,用户可以核对来自服务器的公共密钥同先前所定义的是否一致。这样就防止了某个用户访问一个他没有相应公共密钥的主机。注意如果你想了解更多有关RSA、公共密钥加密和身份认证的知识,只需进行很小的修补,SSH就能保护一些不安全的连接,如X窗口。这将帮助你提高所管理的网络连接的安全性。由于SSH提供了主机身份认证,利用公共密钥而不是IP地址,所以它使网络更加安全可靠,并且不容易受到IP地址欺骗的攻击。这有助于辨认连接到你系统上的访问者身份,从而防止非法访问者登录到你的系统中。如果用户或系统打算采用rhosts/shosts的身份认证方式,主机就面临着公共密钥和私人密钥信息交换的挑战。否则,就得使用其他认证方式。在认证发生之前,会话已经通过对称密钥技术进行了加密,如DES、三重DES、IDEA、Twofish或Blowfish。这就使得会话自身被加密,从而防止了别人在你输入或同别人聊天时截取你的信息。同时也意味着你所输入的密码不会被他人读取,因为它也被加密了。加密技术基本上可以防止有人监听你的数据,同时也确保了数据的完整性,即防止有人肆意篡改你的信息和数据。表1列出了SSH所能防范的网络攻击。51Testing软件测试网7F]w4@&W M'v$|

  表1 SSH可以防范的网络攻击类型 

+HC:QU.Q.ba0网络攻击类型51Testing软件测试网4Yji:e0Qr

51Testing软件测试网 |`%fB2x+?

  网络攻击简述

1F;G @e[U|0

#TNM ]g Lx9g*d p+z$B8[0数据包欺骗51Testing软件测试网z7@#b5K$I-i$F

51Testing软件测试网)SK$n^y1H+R+W5g:e

  某IP数据包并不是你的,但被伪造成了你的。

pjQ(g S/U%a,Bm"]3g0

.~*N/Qq$e'Gu0IP或者主机欺骗51Testing软件测试网q$b;cut};bF \r6Xa

51Testing软件测试网M!nBIc7g*Oj

  IP或主机名被中间人使用了。51Testing软件测试网G t4sL"Zw9b

51Testing软件测试网(sIO)uCW

口令截获

QqG Y0Y'Y7b,ZH7^0
51Testing软件测试网&h9J7n$d p}'m`o

  中间人从网上截获了含有你口令的数据包。51Testing软件测试网L:u g|#Fhg wn4W

!G? ~\@0网络嗅探

O"]~&]Vt&AXi gk0

-N(b){t,h e[O0  中间人从网上读取你的包,破解分析其内容。SSH通信是加密的,即使截获会话内容,也不能将其解密。

$v'{&d5Q[uYD0
51Testing软件测试网)z,AN"x{c*_

插入攻击

&}fm-DL4F&Abm0
51Testing软件测试网E;f2s2E0k*f:\!l M@

  这种攻击可以客户和服务器之间发送的正文数据流之间插入任意数据。ssh1 1.2.25后和openssh的所有版本都专门进行了设计,来检测并防止这种攻击。这种检测程序增大了插入攻击的难度,但是并不能完全防止。ssh2使用强加密完整性检测手段来防止这个问题。可以用3DES算法来防止这种攻击。

MinPD:e0

9qJ ]1S:Pu0FW0  说明:3DES算法是系统加密算法,其符合OpenPGP标准。它基于DES,使用3个独立的56bit密钥对交换的信息进行3次DES加密,使其有效长度达到168bit。 3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,多年来,它在对付强力攻击时是比较安全的。

.Ll AZ+~y0

m i J~n*b*IPR9h0  SSH所不能保护的网络攻击:尽管SSH提供了大量的安全措施,但它仍不能为你的系统提供完全的在线保护。SSH并不

9R.Ny j:C+D051Testing软件测试网YX(YLar8e8QXJt

  能堵住所有其他端口上的全部漏洞:包括NFS攻击等。

c^*J]Nd0

epz#upop0  3. SSH服务器和客户端工作流程

Gz yt-Gx*m*L051Testing软件测试网 d(wao9?c3G:_

  SSH服务器和客户端工作流程如图13-1。51Testing软件测试网g Tb(UR3Bb$s'z*fjV

Openssh,远程管理,Solaris51Testing软件测试网4V-^"hEp.Q/R

图1 SSH服务器和客户端工作流程

G c`FA aK9O9O0

1Q:Pq~z2O^ v9G]0  1. SSH客户端发出请求连接SSH服务器,通常使用22端口;

'}l fCD}5ys051Testing软件测试网-l4H5_Bo R.e0q

  2. SSH检查申请SSH客户端数据包和IP地址;

4B&x$hHL%EO0E051Testing软件测试网.l+BNA M-|WsV2IY

  3. 如果客户端通过安全验证,SSH服务器发送密钥给ssh客户;

udm)@m6SL2E_u0

#` { [0e'S0  4. 本地sshd守护进程将密钥会送到远程sshd 服务器。51Testing软件测试网'FD;A5|!K1[

8dzwbK9c} G U0  客户端会生成一个或者文件,其中储存服务器的密钥。密钥内容通常如下:51Testing软件测试网{ D `Sfy1@*r`0?N

0^0lE(^S/t0  server 1024 35 074483188552206509288634591821480900087487603131251Testing软件测试网,GS'zETA2C

3[m/W;Kius/H0  663202636556140699569229172676719815525201670198606754982042373651Testing软件测试网Em*|NJ Q1I

51Testing软件测试网9ZJ$^ w B

  393736593998729350847306606972263971147429524250769197415119584251Testing软件测试网}p x$[P%nZ-~

51Testing软件测试网.at6`6q0L2Fj

  956063176626459842269220618785535980433268062460000169825137572651Testing软件测试网'O5QqL n J,^Etd4fD

`'v9|$B2Yi~1t0  2927556592987704211810142126175715452796748871506131894685401576

/zV4Y6Gr1^!\ vj0

'?[5pi)ac+t0  4183

'~ {S0]t/]u#j6M1t051Testing软件测试网 II`)L-O'x&xa

  另外客户端的私有密钥存储在Identity 文件中。客户端的公共密钥存储在Identity.pub文件中, 密钥内容通常如下:

i3e Q%v#Y3x;DRFE051Testing软件测试网 ]Z9fb;l

  1024 37 2590984202231997581736656902901504139087369478896425656751Testing软件测试网(e0A+@ Y a4x Bv1K|R

51Testing软件测试网#ZOY0RX4K

  2146422966722622743739836581653452906032808793901880289422764252

Q} q1dG)Tb Z051Testing软件测试网8F x1MX ``[,j

  425961463654951899845052492381148100236043947385236354222335986851Testing软件测试网0G7NDLc3a H3p

51Testing软件测试网.{,Z@f1O W{"y+e^

  114619253961948185309446681933562979774158070860950587770774247351Testing软件测试网'dMs)d UO!u

51Testing软件测试网4n Ee`B

  7311773531850692230437799694611176912728474735224921771041151

mdo;J3dXR(m051Testing软件测试网/m(BJ5^9APg-o1Z

  这样至此为止ssh客户端和远程SSH服务器建立了一个加密会话。
6p(Q8\S-l6a/k:@$B ^e"E0二、在Solaris 10服务器上配置ssh服务

2YW{TM]!T0

:mr!zW)^.z3t051Testing软件测试网(];g K~xFT$r's

  SSH(Secure Shell)最初由芬兰的一家公司开发,但由于受版权和加密算法的限制,很多人转而使用免费的替代软件OpenSSH。SSH是由客户端和服务端的软件组成的,有两个不兼容的版本,分别是:1.x和2.x。用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x

4kk+[ Y Fm+v\051Testing软件测试网 tI|)? n0d-DA s+_ Hl

  solaris10使用的ssh服务器是opensshd,当然也有付费的商业版本的sshd出售。就目前的情况看来,openssh已经在你安装操作系统的时候默认安装在系统上了,而且这个服务会随系统自动运行。可以使用命令svcs查看ssh是否正常运行,如图2 如果已经正常运行可以关闭不安全的telnet服务。51Testing软件测试网&j ]*{H(F4p&MS

Openssh,远程管理,Solaris51Testing软件测试网B-Za fq'e

图2 关闭不安全的telnet服务

Pz&Kb\2t$~ ]051Testing软件测试网-Lp7i,coTu\pJ

  下面需要理解OPENSSH配置文件/etc/ssh/sshd_config。

}H-{v1z*p&}P2n0

+V\1|6rhV-H!y0  “/etc/ssh/sshd_config” 配置文件是OpenSSH的配置文件,允许设置选项改变这个守护进程的运行。这个文件的每一行包含“关键词-值”的匹配,其中“关键词”是忽略大小写的。下面列出来的是最重要的关键词。编辑“sshd_config”文件(vi /etc/ssh/sshd_config),加入或改变下面的参数(#后是说明文字):

d:c/K!D5L0@"h8L-Q"X051Testing软件测试网-v&f@1^/C

Protocol 2
#使用版本2协议#
51Testing软件测试网D7`#y^)@id

  Port 22  51Testing软件测试网\ A*?,JttZ+Q

`;`.Dn[*I0  # “Port”设置sshd监听的端口号。#

aCfX1r:Kj0

R]'BE~P4B#V p0  ListenAddress ::51Testing软件测试网B;P+Owg;I+SG

6V c(g[/t)y8P1D0  #“ListenAddress”设置sshd服务器绑定的IP地址。#

b:r~[6Q,W"qeJ!s0
AllowTcpForwarding no
#是否许可端口转发#
GatewayPorts no
#是否许可使用网关端口#
X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost yes

`.j*U_I[0  #“X11Forwarding”设置是否允许X11转发。#51Testing软件测试网Yq(N Snm`!Q*r

0t rTW,w@#j)|0  PrintMotd no

i$BT2un6u/W"r0

;Q` B:^3Y;]9Ra(a @0   #“PrintMotd”设置sshd是否在用户登录的时候显示“/etc/motd”中的信息。#

+A x!`.\{$U/EW dw0
KeepAlive yes
SyslogFacility auth
LogLevel info
51Testing软件测试网5GB&Fjy~e$u

  #“LogLevel”设置记录sshd日志消息的层次。INFO是一个好的选择。查看sshd的man帮助页,已获取更多的信息。#  

J xI:b;m&d!u/s4A|Z4]0
HostKey /etc/ssh/ssh_host_rsa_key  
HostKey /etc/ssh/ssh_host_dsa_key
51Testing软件测试网g1z QS;L ]CR6i

  #“HostKey”设置包含计算机私人密匙的文件。#51Testing软件测试网 Z6pNDZ"[y U

51Testing软件测试网2^],w,_ W8q2fb8d

  ServerKeyBits 768  #“ServerKeyBits”定义服务器密匙的位数。#51Testing软件测试网 G3XB4cKvYzoN

KeyRegenerationInterval 3600

Z(l(s*? Pj/W-}+{0  #“KeyRegenerationInterval”设置在多少秒之后自动重新生成服务器的密匙(如果使用密匙)。重新生成密匙是为了防止用盗用的密匙解密被截获的信息。#

yCzrD mG[&N0
StrictModes yes
51Testing软件测试网,F%l-[guc\8f v s.T

  # StrictModes”设置ssh在接收登录请求之前是否检查用户家目录和rhosts文件的权限和所有权。这通常是必要的,因为新手经常会把自己的目录和文件设成任何人都有写权限#

1A%~Z~L4nn];S/Q0
LoginGraceTime 600
MaxAuthTries     6
MaxAuthTriesLog  3
PermitEmptyPasswords no
#是否许可空密码登录#
PasswordAuthentication yes

_B&R8im'j P4W \_0  #“PasswordAuthentication”设置是否允许口令验证。#51Testing软件测试网 @a&s1kHWCb

PAMAuthenticationViaKBDInt yes
PermitRootLogin no
#是否许可root用户登录#
# sftp subsystem
Subsystem   sftp     /usr/lib/ssh/sftp-server
IgnoreRhosts yes
RhostsAuthentication no
RhostsRSAAuthentication no

x ? w1`THgi-U0  #“RhostsAuthentication”设置只用rhosts或“/etc/hosts.equiv”进行安全验证是否已经足够。#

Y'J)U7{&O!Je(EA/c0
RSAAuthentication yes
51Testing软件测试网j$s*k/k*}?4V^1N

  #“RSAAuthentication”设置是否允许只有RSA安全验证。#51Testing软件测试网6j-otC l]v

51Testing软件测试网Zupbd*G8?!@+i

el+g;M)Fs wMy,S0  另外一个配置文件是“/etc/ssh/ssh_config”文件是OpenSSH系统范围的配置文件,允许你通过设置不同的选项来改变客户端程序的运行方式下面逐行说明上面的选项设置: 51Testing软件测试网hW J+Ity2w

51Testing软件测试网FQ*]#B'EG

+hZAt c \1n-H0Host * :选项“Host”只对能够匹配后面字串的计算机有效。“*”表示所有的计算机。 51Testing软件测试网;D S`!pw0[.Cw
ForwardAgent no :“ForwardAgent”设置连接是否经过验证代理(如果存在)转发给远程计算机。 51Testing软件测试网)a2lQ\rD
ForwardX11 no :“ForwardX11”设置X11连接是否被自动重定向到安全的通道和显示集(DISPLAY set)。 51Testing软件测试网],G,Em$G#u?H3v2f
RhostsAuthentication no :“RhostsAuthentication”设置是否使用基于rhosts的安全验证。 
k7J\1|x8Ww0RhostsRSAAuthentication no :“RhostsRSAAuthentication”设置是否使用用RSA算法的基于rhosts的安全验证。 
0Y1j"[4p{q5b5EuU0RSAAuthentication yes :RSAAuthentication”设置是否使用RSA算法进行安全验证。 51Testing软件测试网(|"bTz1h9k-b
PasswordAuthentication yes :“PasswordAuthentication”设置是否使用口令验证。 51Testing软件测试网6IR#L-Z"j X
FallBackToRsh no:“FallBackToRsh”设置如果用ssh连接出现错误是否自动使用rsh。 
H1P*o'^&i0UseRsh no :“UseRsh”设置是否在这台计算机上使用“rlogin/rsh”。
4r${-x O7q0h&~-F0BatchMode no :“BatchMode”如果设为“yes”,passphrase/password(交互式输入口令)的提示将被禁止。当不能交互式输入口令的时候,这个选项对脚本文件和批处理任务十分有用。 51Testing软件测试网,Zq}1o`E:_+j
CheckHostIP yes :“CheckHostIP”设置ssh是否查看连接到服务器的主机的IP地址以防止DNS欺骗。建议设置为“yes”。 
z}2D?P(Eg8b'G0StrictHostKeyChecking no :“StrictHostKeyChecking”如果设置成“yes”,ssh就不会自动把计算机的密匙加入“$HOME/.ssh/known_hosts”文件,并且一旦计算机的密匙发生了变化,就拒绝连接。 
%Ft8T5WXUN"IfD8r0IdentityFile ~/.ssh/identity :“IdentityFile”设置从哪个文件读取用户的RSA安全验证标识。 51Testing软件测试网zeY2ND3l&K
Port 22 :“Port”设置连接到远程主机的端口。 
fl-N/E!Du0Cipher blowfish :“Cipher”设置加密用的密码。 51Testing软件测试网5t+Vtl4R5NC7p ^
EscapeChar ~ :“EscapeChar”设置escape字符。 51Testing软件测试网8u$a[yP E,H? wO:h

5~EGu5k$twAz)f/I5f0

s]3~3OMKW0  你可以修改这两个配置文件以获得更好的安全性。51Testing软件测试网 wDpu#Z f^qC

Empire CMS,xxlinux.com

e;_(\ L#cN%s#N4bh0

TAG: 学习资料 linux

 

评分:0

我来说两句

Open Toolbar