升级OPENSSH 和 OPENSSL
首先安装telnet服务,防止在操作过程中导致ssh远程中断
# 安装Telnet
yum install telnet-server -y chkconfig telnet on
# 允许root登录 mv /etc/securetty /etc/securetty.bak
# 防火墙记得放行23号端口
安装之前记得安装gcc
# 安装gcc yum install gcc -y
安装zlib
# 如果之前有安装过zlib,请先卸载 rpm -ql zlib # 记下之前rpm安装的zlib的文件位置,然后卸载它 rpm -e --nodeps zlib tar -xf zlib-1.2.11.tar.xz ./configure --prefix=/usr/local/zlib make && make install # 之后把我们源码编译安装的zlib的对应文件复制到原来的位置 cp /usr/local/zlib/lib/libz.so.1.2.11 /lib64 ln -s /lib64/libz.so.1.2.11 /lib64/libz.so.1
安装pam-devel
yum install pam-devel -y
升级OPENSSL
tar -xf openssl-1.0.2o.tar.gz cd openssl-1.0.2o ./config --prefix=/usr/local/openssl --shared make && make install mv /usr/bin/openssl /usr/bin/openssl.old.bak mv /usr/include/openssl /usr/include/openssl.old.bak ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl ln -s /usr/local/openssl/include/openssl /usr/include/openssl echo "/usr/local/openssl/lib" >>/etc/ld.so.conf 验证结果: ldconfig -v openssl version -a # 原来的文件改个名字,移动到其他目录去吧 rm -f /usr/lib64/libssl.so.10 mv /usr/lib64/libssl.so.1.0.1e ~/libssl.so.1.0.1e.old.bak cp /usr/local/openssl/lib/libssl.so.1.0.0 /usr/lib64 ln -s /usr/lib64/libssl.so.1.0.0 /usr/lib64/libssl.so.10 # 原来的文件改个名字移动到其他目录去吧 rm -f /usr/lib64/libcrypto.so.10 mv /usr/lib64/libcrypto.so.1.0.1e ~/libcrypto.so.1.0.1e.old.bak cp /usr/local/openssl/lib/libcrypto.so.1.0.0 /usr/lib64/ ln -s /usr/lib64/libcrypto.so.1.0.0 /usr/lib64/libcrypto.so.10
升级OPENSSH
# 先备份原来ssh的配置文件 mv /etc/ssh /etc/ssh.old.bak tar -xf openssh-7.7p1.tar.gz cd openssh-7.7p1 ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-ssl-dir=/usr/local/openssl --with-zlib=/usr/local/zlib --with-md5-passwords --with-pam make && make install cp contrib/redhat/sshd.init /etc/init.d/sshd /usr/sbin/sshd -t -f /etc/ssh/sshd_config chkconfig --add sshd chkconfig sshd on chkconfig --list|grep sshd /etc/init.d/sshd restart # 启动SSHD,记得关闭SELINUX 不然会报权限拒绝 #允许root登录SSH vim /etc/ssh/sshd_config #PermitRootLogin prohibit-password PermitRootLogin yes
最后的收尾工作
chkconfig telent off # 关闭telnet yum remove telnet-server # 卸载telnet mv /etc/securetty.bak /etc/securetty iptables -D INPUT 1 # 删除telnet防火墙规则