*本例为一次安全加固中操作示例
操作系统:SUSE SP3
版本:从6.2升级之7.2p1
*准备工作
openssh升级依赖依赖openssl、zlib,从官网下载之
#################openssh升级-2016-1-27
1、备份原配置文件
cp/etc/init.d/sshd /ssh5bak
cp/etc/ssh /ssh5bak
2、zlib安装
tar -zxf zlib-1.2.8.tar.gz //先安装zlib库,否则会报zlib.c错误无法进行
cd zlib-1.2.8
./configure –shared
//这里说明一下以上的–shared参数,shared参数表示使用共享库或者动态库,相对的一种叫做静态库,前者一般后缀位.so,后者一般后缀位.a,linux下常见的库路径为/lib、/lib64、/usr/lib、/usr/lib64. 静态库是将引用库的实际代码也编译进当前编译文件,故高效,后者则比较便利
make && make install
3、安装openssl
tar -zxf openssl-1.0.1.tar.gz
cd openssl-1.0.1
./config shared
make
make install
mv /usr/bin/openssl /usr/bin/openssl.BACKUP
mv /usr/include/openssl /usr/include/openssl.BACKUP
//如果系统存在此文件可忽略
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
//将新编译的程序使用原有的openssl路径,防止其他调用openssl项异常
ln -s /usr/local/ssl/include/openssl /usr/include/openssl
//移走原openssl,将自己编译产生的新文件进行链接。如不存在可忽略
4、配置库文件搜索路径
echo “/usr/local/ssl/lib” >>/etc/ld.so.conf
ldconfig //加载新模块
/sbin/ldconfig -v
openssl version -a
//查看新加载模块
5、安装openssh
rpm –qa|grep openssh | rpm -e {} –nodeps //卸载
./configure–prefix=/usr/ –sysconfdir=/etc/ssh –with-zlib –with-ssl-dir=/usr/local/ssl –with-md5-passwords mandir=/usr/share/man
make&&make install
6、为了平滑过度进行一下步骤切换
进入源码包目录,编写shell脚本执行一下内容,脚本在“后台”运行
文件替换前先停止服务
cp -p contrib/suse/rc.sshd /etc/init.d/sshd
chmod +x /etc/init.d/sshd
chkconfig –add sshd
cp -f -r sshd_config /etc/ssh/sshd_config
//修改root可登录,否则升级后可能root不能登录
cp -f -r /usr/sbin/sshd /usr/sbin/sshd_BACKUP
cp -f -r usr/sbin/ssh /usr/sbin/ssh_BACKUP
cp -f -r sshd /usr/sbin/sshd
cp -f -r ssh /usr/bin/ssh
操作执行完成后在脚本中重启sshd服务
注意问题
attention01:注意里依赖包版本
attention02:注意使用新安装程序路径与原有程序路径保持一致
attention03:在一次安全加固后出现了sftp不能使用,这种问题一般是ssh加密问题,注意在sshd_config再确认一下加密。