ssh更新


目前,不少 Linux 发行版本中集成的 SSH 软件版本都比较老,存在一些漏洞和安全隐患,于是升级 SSH 服务成为 Linux 系统安全中很是重要的一个环节。下面就根据近期的一次实例来说述如何升级SSH 服务。linux

SSH 有许多标准,一般 Linux 中(Redhat, CentOS, SuSE 等)使用的是开源的OpenSSH,因此我这里也是对OpenSHH 进行升级。在升级 OpenSSH 以前,须要升级系统中的 OpenSSL (OpenSSL 能够为 OpenSSH 提供加密传输支持,是 OpenSSH 的一个中间件)版本和 Zlib (提供压缩传输支持)版本,以达到更好的安全性。安全

在开始升级前必定要确认系统中安装了GCC 编译器!rpm -qa |grep gcc ,若是没有显示gcc的包,就yum -y install gcc ,注意: redhat6的yum源在redhat5系统里是不能用的,不过能够用redhat6的repodata生成redhat5的repodata.xml 文件。ssh

1、升级 Zlib
一、下载最新版本 Zlib
Zlib 官方网站:http://www.zlib.net/
目前最新版本的 Zlib 是 zlib-1.2.8.tar.gz
# cd /usr/local/src
# wget -c http://www.zlib.net/zlib-1.2.8.tar.gz测试

二、编译安装 Zlib
# tar xzvf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure --prefix=/usr/local/zlib
# make
# make install网站

这样,就把 zlib 编译安装在 /usr/local/zilib 中了。加密

2、升级 OpenSSL
 一、下载最新版本 OpenSSL
 OpenSSL 的官方网站:http://www.openssl.org
目前最新版的 OpenSSL 是 openssl-1.0.2c.net

# cd /usr/local/src
# wget -c http://www.openssl.org/source/openssl-1.0.1e.tar.gzrest

二、编译安装 OpenSSL
# tar xzvf openssl-1.0.2c.tar.gzxml

# cd openssl-1.0.2c中间件

# ./config --prefix=/usr/local/openssl
# make
# make test
# make install

make test (这一步很重要哦!是进行 SSL 加密协议的完整测试,若是出现错误就要必定先找出哪里的缘由,不然一味继续,可能最终致使 SSH 不能使用,后果很严重的!)

3、升级 OpenSSH
 一、下载最新版本 OpenSSH
 OpenSSH 的官方网站:http://www.openssh.com
目前最新版的 OpenSSH 是 openssh-6.8p1

# cd /usr/local/src
# wget -c http://openbsd.org.ar/pub/OpenBSD/OpenSSH/portable/

二、编译安装 OpenSSH
# tar xzvf openssh-6.8p1.tar.gz

# cd openssh-6.8p1

# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords

若是configure提示未安装openssl-devel和pam

须要执行如下命令:

 rpm -ivh   zlib-devel-1.2.3-29.el6.x86_64.rpm
 rpm -ivh libsepol-devel-2.0.41-4.el6.x86_64.rpm
 rpm -ivh libselinux-devel-2.0.94-5.3.el6.x86_64.rpm
 rpm -ivh libcom_err-devel-1.41.12-14.el6.x86_64.rpm
 rpm -ivh keyutils-libs-devel-1.4-4.el6.x86_64.rpm
 rpm -ivh krb5-devel-1.10.3-10.el6.x86_64.rpm

 rpm -ivh  openssl-devel-1.0.0-27.el6.x86_64.rpm


# make
# make install

 这样就完成了升级 SSH 的工做,在升级完成后,咱们还须要修改一下 OpenSSH 的配置文件来进一步提高安全性。经过以上步骤完成的升级工做,OpenSSH 的配置文件在 /etc/ssh 下,其中 SSH Server 的配置文件是 sshd_config。
# vi /etc/ssh/sshd_config

找到:
#Protocol 2,1修改成:
Protocol 2这样就禁用了 ssh v1 协议,只使用更安全的 ssh v2 协议。

X11Forwarding yes 修改成:X11Forwarding no  (禁用 X11 转发。)
修改后保存退出。
生成ssh服务管理脚本:
进入ssh解压目录
#cd /usr/local/src/openssh-6.8p1/contrib/redhat/
#cp sshd.init /etc/init.d/sshd
#chmod +x /etc/init.d/sshd (直接覆盖,权限会继承)
#chkconfig --list |grep sshd  检查ssh服务是否开机启动,若是没有,执行下面命令
#chkconfig --add sshd

退出机器后,使用root用户没法ssh登录,我用普通用户ssh登陆后,

一、修改SSHD服务的配置文件/etc/ssh/sshd_config

   将#PermitRootLogin no 改成PermitRootLogin yes

二、重启sshd服务使配置生效

   /etc/rc.d/init.d/sshd restart


   最后,启动 SSH 服务使修改生效:
# /etc/init.d/sshd restart 或者 service sshd restart

重启后确认一下当前的 OpenSSH 和 OpenSSL 是否为新版:
# ssh -V

其实在我编译安装完成ssh后,执行ssh -V 命令,显示已经是新版本了。

相关文章
相关标签/搜索