|
|
 |
※相关文章※ |
|
|
| |
 |
※推荐文章※ | |
|
| | |
| 升级OpenSSH堵住你的安全漏洞 |
| 作者: 文章出处:
发布时间:2005-10-29 点击:
字体: 【小 中 大】
|
OpenSSH顾名思义是一个提供SSH服务的免费软件,由于常见的telnet、rlogin、rcp、ftp等服务的数据传输甚至口令传输都是以明文的方式在网络中进行的,存在被监听、窃取、劫接和网络攻击的危险,而SSH加密了包括口令在内的所有传输数据,所以很多场合,SSH已经逐渐取代了telnet、rlogin等服务,很多的Linux版本比较早之前就已经 OpenSSH来代替telnet等了。但是使用了OpenSSH不代表就不存在安全隐患了,作为系统管理人员要注意留心OpenSSH可能存在安全漏洞影响。比如去年OpenSSH就暴露出了一个严重的安全漏洞,受此安全漏洞影响的是版本2.3.1至3.3。如果有人恶意使用此安全漏洞,则有可能在运行OpenSSH的服务器程序的机器上远程运行任意程序。这些程序通过sshd的权限(通常为root权限)运行。时间过去一年多,但很遗憾地是,笔者发现许多用户仍然在使用OpenSSH 3.3甚至以下的版本,比如是对于Redhed Linux的用户,象Redhed 7.2带的OpenSSH版本是2.9p2,Redhed7.3带的版本是3.1p1,当年使用这些版本的用户不在少数,而至今仍在使用的用户却忽略了对于软件的升级工作,其安全性也就可想而知了。希望本文能提醒这些系统管理员们,快去升级OpenSSH,堵住你的安全漏洞。下面就介绍一下OpenSSH的升级及安装方法:
升级方法
Redhed 8.0的OpenSSH版本升级到了3.4p1,Redhed 9.0升级到了3.5p1,使用RPM的用户可以从这些发行版中取得新的RPM包进行升级。或者可以重新安装新版的Linux。如果是要新架设Linux服务器,建议选用较新的Linux版本,但要兼顾到新版本、稳定性、兼容性三方面的平衡。如果需要的是最新版本,可以从openssh.org上找到最新版的OpenSSH的RPM包。
安装方法
使用RPM包这也是最简单的升级方法。另一种做法就是放弃并删除原有的OpenSSH,然后重新安装一个最新版本。目前最近OpenSSH的版本是于2003年4月1日发布的OpenSSH 3.6.1。采用RPM安装OpenSSH非常简单,这里介绍另一种从tar包开始安装的方式:
OpenSSH需要用到openssl,从网上下载openssl-0.9.7b.tar.gz,然后执行以下命令:
tar -xzpvf openssl-0.9.7b.tar.gz cd openssl-0.9.7b ./config --prefix=/usr/local/openssl make make test make install
增加一个用户sshd useraddsshd
从网上下载openssh-3.6.1p2.tar.gz,然后执行以下命令:
tar -xzpvf openssh-3.6.1p2.tar.gz
cd openssh-3.6.1p2/ ./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl/ make make install
编译成功后,执行make install应该看到类似以下的信息:
Generating public/private rsa1 key pair. Your identification has been saved in /usr/local/openssh/etc/ssh_host_key. Your public key has been saved in /usr/local/openssh/etc/ssh_host_key.pub. The key fingerprint is: 8e:b4:be:40:e0:10:b0:83:d5:f3:12:bd:fc:a6:83:5froot@terry.linux.mykms.org Generating public/private dsa key pair. Your identification has been saved in /usr/local/openssh/etc/ssh_host_dsa_key. Your public key has been saved in /usr/local/openssh/etc/ssh_host_dsa_key.pub. The key fingerprint is: 99:04:d9:12:49:e6:99:c6:0d:aa:12:a1:bc:4d:09:47 root@terry.linux.mykms.org Generating public/private rsa key pair. Your identification has been saved in /usr/local/openssh/etc/ssh_host_rsa_key. Your public key has been saved in /usr/local/openssh/etc/ssh_host_rsa_key.pub. The key fingerprint is: 68:c6:c2:d9:30:8e:b3:a2:a3:c5:94:dd:76:1a:8a:ebroot@terry.linux.mykms.org /usr/local/openssh/sbin/sshd -t -f /usr/local/openssh/etc/sshd_config
可以从上面的信息中看到,系统产生了rsa1、dsa、rsa的公匙、私匙、fingerprint等信息,而所有的配置文件和可执行文件都放在/usr/local/openssh的对应目录中,将它们安装到这个目录是为了和rpm的安装目录相区别。
启动OpenSSH,可以用以下命令:
/usr/local/openssh/sbin/sshd &
可以将些命令加入到/etc/rc.d/rc.local中,以便每次启动时自动执行。
安装完毕之后,不做任何配置已经可以运行了。不过这里给出一个很好的建议:只允许使用基于密匙的安全验证。这也是笔者一贯的做法。大家知道OpenSSH提供两种安全级别:
1.基于口令的安全验证 2.基于密匙的安全验证
基于密匙的安全验证需要用户上传一个自己的专用密匙到OpenSSH主机上,举个例子来说明这种方式的好处:比如当外人从其它的途径(比如社交工程、欺骗等)得到了主机的一个用户账号甚至是root账号,如果你使用的是基于口令的安全验证,对方就能进入你的主机了。而采用只允许基于密匙的安全验证方式,对方没有账号的私匙,依然无法进入你的主机。
注意:默认的配置中基于口令的安全验证是有效的,所以我们要将它关掉。编辑/usr/local/openssh/etc/sshd_config,加入下面一行:
PasswordAuthentication no
这样就不能通过口令验证来登录OpenSSH主机了。
对于使用密匙的安全验证的用户来说,要用ssh-keygen命令产生对应加密方式的公匙、私匙,通常会保存在用户目录的.ssh目录中,比如:
/home/user/.ssh/id_dsa /home/user/.ssh/id_dsa.pub,这是一对以dsa加密方式的公匙、私匙。
然后分发公匙,就是将公匙id_dsa.pub传到远程主机的/home/user/.ssh/目录中,命名为authorized_keys等(视具体配置而定)。
然后配置客户端(配置文件是~/.ssh/config,最重要的是本地~/.ssh/中有你的私匙),就可以通过OpenSSH的基于密匙的安全验证进入远程主机。
虽然OpenSSH在早先的版本中出现了一些安全漏洞,但在后来的版本中都得到了修正,而且由于SSH协议在设计上对安全的强调,所以对于用户来说OpenSSH不失为一个非常安全的工具,使用它也将很好的提高你整个系统的安全性。
续:美国卡内基美隆大学计算机应急反应小组9月16日发布了关于OpenSSH安全漏洞的警告,这是一个关于缓冲区管理的安全漏洞,这个安全漏洞出现在身份识别之前,这就意味着用户不需要权限就可以登录并且利用这个安全漏洞。OpenSSH的安全漏洞影响3.7.1版本以前的软件。可以按上文的方法安装2003年9月16日推出的OpenSSH 3.7.1来应对此安全漏洞。详见http://www.cert.org/advisories/CA-2003-24.html
|
|
| 【返回顶部↑】
【推荐好友】 【查看评论】 |
|
| |