OpenSSH 远程升级到 9.4p1

OpenSSH 远程升级到 9.4p1

文章目录

  • OpenSSH 远程升级到 9.4p1
    • 背景
    • 升级前提
      • 1. 升级 OpenSSL
      • 2. 安装并启用Telnet
    • 升级OpenSSH


背景

最近的护网行动,被查出来了好几个关于OpenSSH 的漏洞。这是因为服务器系统安装后,直接使用了系统自带版本的OpenSSH ,此版本已经很老了,存在很多高低危漏洞。

系统信息如下:
centos: 7
openssh: 1.0.1


升级前提

  • 升级OpenSSH后,原有公钥失效,信任关系需要重新配置;
  • 升级过程需要停止sshd服务,会导致ssh和sftp无法使用;
  • 升级需要关闭防火墙服务;
  • 升级需要关闭selinux服务;
  • 升级前需要开启telnet,防止升级失败,系统无法登录,对应的防火墙需要开启23端口,安装需要telnet相关包
  • 升级过程中需要刷新lib库:ldconfig -v;
  • 升级顺序:顺序是 openssl -> openssh;
  • 升级需要gcc、make、perl、zlib、zlib-devel、pam、pam-devel依赖包;

1. 升级 OpenSSL

安装OpenSSH :9.4p1 需要最少 OpenSSL :1.1.1 以上,因此请先查看文章OpenSSL升级

2. 安装并启用Telnet

  • 安装telnet服务端
	yum -y install xinetd telnet-server

默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容。或者可以添加一个可以登录的用户,登录并su到root用户(建议采用此方法,保证系统安全)。此步骤可跳过!

允许root用户通过telnet登陆:
编辑/etc/pam.d/login,注释掉下面这行

 	vi /etc/pam.d/login
 	#把auth的限制去掉
	auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

开启root用户远程登陆。此步骤可跳过!

	vi /etc/pam.d/remote

	auth required pam_securetty.so
  • 重启telnet和xinetd服务 【telnet服务依赖于xinetd服务】
	systemctl restart telnet.socket
	systemctl restart xinetd
  • 将 23端口(系统默认23为telnet端口)添加到防火墙允许的端口的列表中。
 	firewall-cmd --zone=public --add-port=23/tcp --permanent

升级OpenSSH

  • 关闭SElinux
	#检查是否关闭:
	getenforce
	#如果未关闭,关闭之
	setenforce 0

上面只是临时关闭了,重启后不生效。下面改配置文件,使永久生效。

	vi /etc/selinux/config
	#修改:
  SELINUX=disabled
	#保存退出。
  • 安装相关依赖包
	yum -y install gcc make perl zlib zlib-devel pam pam-devel
	# 安装完毕后执行下面命令,确保所有依赖包正常安装
	rpm -qa | egrep "gcc|make|perl|zlib|zlib-devel|pam|pam-devel"
  • 升级openSSH(注意从这步开始,通过Telnet登录到服务器,务必)
	#停止ssh服务
	systemctl stop sshd

	#备份ssh配置文件
	cp -r /etc/ssh /etc/ssh.old

	# 查看系统原有openssh包
	rpm -qa | grep openssh
	#删除旧版本
	rpm -e --nodeps `rpm -qa | grep openssh`

	#解压新版本
	tar -zxvf openssh-9.4p1.tar.gz 
	cd openssh-9.4p1

	# 编译配置  这里请注意--with-ssl-dir 是你openssl安装的目录
	./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --with-tcp-wrappers --with-ssl-dir=/usr/local/ssl  --without-hardening

	#编译安装
	make && make install

	#调整文件权限
	chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

	#复制配置文件
	cp -a contrib/redhat/sshd.init /etc/init.d/sshd 
	chmod u+x /etc/init.d/sshd

	#还原 原配置文件
	mv ../sshd.backup /etc/pam.d/sshd 
	mv ../sshd_config.backup /etc/ssh/sshd_config

	#添加自启动
	chkconfig --add sshd 
	chkconfig sshd on

	#重启服务
	systemctl restart sshd

	# 查看版本, 验证结果 - 显示9.4p1即成功
	ssh -V

在这里插入图片描述


你可能感兴趣的:(系统运维,ssh)