首页 » Linux » 升级OPENSSL和OPENSSH

升级OPENSSL和OPENSSH

 
文章目录

升级openssh

参考:https://blog.csdn.net/lqy461929569/article/details/76148598
https://blog.csdn.net/huhuhuemail/article/details/79309178

做等保的时候第三方检测要求升级openssh,因为openssh7.7之前的版本都能枚举到用户信息。

漏洞可以参考:http://secdna.seczone.cn/?p=3552

所以接下来要升级openssh和openssl一起。 查看版本ssh -V

准备工作

为了保证系统能够在ssh不能用的情况下,也能连上去,可以暂时开通telnet功能。

  1. 系统环境:centos 7.4
  2. 关闭selinux
  3. 原版本信息:
[root@basic-node2 ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

安装telent

安装很简单,直接yum安装就可以了。

yum install -y telnet-server
yum install -y xinetd 
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd

默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容:

echo  'pts/0'  >>/etc/securetty
echo 'pts/1' >>/etc/securetty

service  xinetd  restart 

可以直接在本地telnet ip验证一下是否可以登录,端口是23要记得开。

备份工作

备份以下:

cp /usr/lib64/openssl /usr/lib64/openssl.old -ra
cp /usr/bin/openssl  /usr/bin/openssl.old
cp /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl_old -ar

#如下两个库文件必须先备份,因系统内部分工具(如yum、wget等)依赖此库,而新版OpenSSL不包含这两个库
#安装之后假设yum,wget不能使用了,就可以恢复,正常情况下是可以使用的。
cp /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old
cp /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old


cp /etc/ssh /etc/ssh.old -ar

openssh和openssl下载地址如下: openssh download
openssl downlaod

安装openssl

  1. 安装之前不需要停止ssh服务。
  2. 相应软件装备工作
yum -y install pam-devel.x86_64 zlib-devel.x86_64
yum -y install gcc make perl zlib zlib-devel pam pam-devel

卸载openssl和openssh

rpm -e --nodeps `rpm -qa|grep openss`  #全部卸载,注意一定要加 --nodeps,这个是不删除相关依赖

#单独卸载如下:
rpm -qa |grep openssl|xargs -i rpm -e --nodeps {}
rpm -qa |grep openssh|xargs -i rpm -e --nodeps {}

安装如下:

tar -zxvf openssl-1.0.2p.tar.gz
cd openssl-1.0.2p
./config --prefix=/usr/ --openssldir=/etc/ssl --shared zlib && make && make install

恢复共享库
ln -s /usr/lib64/libcrypto.so.1.0.0  /usr/lib64/libcrypto.so.10
ln -s /usr/lib64/libssl.so.1.0.0  /usr/lib64/libssl.so.10

#查看版本。
openssl version -a

安装openssh

cd openssh-7.9p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
echo $?
make -j 2 && make install
chmod 600 /etc/ssh/ssh_host_ed25519_key
cp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
cp contrib/redhat/sshd.init /etc/init.d/sshd

配置/etc/ssh/sshd_config文件,把root登录和密码登录打开, /etc/init.d/sshd restart

然后测试是否能够正常登录 。

查看版本ssh -V

最重要一步,

把sshd加入到开机启动。

chkconfig --add sshd 
chkconfig sshd on
chkconfig --list

测试正常后,去掉telnet

systemctl disable xinetd
systemctl disable telnet.socket
systemctl stop telnet.socket
systemctl stop xinetd

实践命令如下:

yum install -y telnet-server
yum install -y xinetd 
yum install -y telnet-server
systemctl enable xinetd.service
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl start xinetd
echo  'pts/0'  >>/etc/securetty
echo 'pts/1' >>/etc/securetty
service  xinetd  restart
systemctl status firewalld
getenforce
yum -y install pam-devel.x86_64 zlib-devel.x86_64
cp /usr/lib64/openssl /usr/lib64/openssl.old -ra
cp /usr/bin/openssl  /usr/bin/openssl.old
cp /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl_old -ar
cp /usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old
cp /usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old
cp /etc/ssh /etc/ssh.old -ar
yum -y install gcc make perl zlib zlib-devel pam pam-devel
mkdir tools
cd tools/
wget https://www.openssl.org/source/openssl-1.0.2p.tar.gz
wget https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.9p1.tar.gz
tar -zxvf openssl-1.0.2p.tar.gz 
tar -zxvf openssh-7.9p1.tar.gz 
cd openssl-1.0.2p
rpm -e --nodeps `rpm -qa|grep openss` 
./config --prefix=/usr/ --openssldir=/etc/ssl --shared zlib 
echo $?
make -j 2 && make install
echo $?
ln -s /usr/lib64/libcrypto.so.1.0.0  /usr/lib64/libcrypto.so.10
ln -s /usr/lib64/libssl.so.1.0.0  /usr/lib64/libssl.so.10
openssl version -a
cp /etc/ssh /etc/ssh_old -ar
cd ..
cd openssh-7.9p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords
echo $?
make -j 2 && make install
echo $?
chmod 600 /etc/ssh/ssh_host_ed25519_key
cp contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
cp contrib/redhat/sshd.init /etc/init.d/sshd
vim /etc/ssh/sshd_config
ssh -V
systemctl disable xinetd
systemctl disable telnet.socket
systemctl stop telnet.socket
systemctl stop xinetd
netstat -lntp|grep 23
vim /etc/securetty

 

原文链接:升级OPENSSL和OPENSSH,转载请注明来源!

0