升级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功能。
- 系统环境:centos 7.4
- 关闭selinux
- 原版本信息:
[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
- 安装之前不需要停止ssh服务。
- 相应软件装备工作
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,转载请注明来源!